前提:主机ubuntu20.04系统,设置多用户访问和cuda配置,记录一些设置过程和存在的问题
使用GUI添加新用户,一个管理员账户和其他标准账户
cuda配置
在管理员用户下配置全局共享的cuda计算工具(省的其他用户重新安装配置一次),按照正常安装过程安装cuda 11(安装至/usr/local/)和cudnn 8.1,cudnn正常复制到对应目录,在添加环境变量的时候,修改.bashrc文件:
gedit ~/.bashrc
#添加路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
# 保存退出,激活
source ~/.bashrc
切换到其他用户下,同样修改该用户的.bashrc,(用户自行配置cuda的时候可重新指定),按照上述路径添加环境变量,但使用pycharm运行tensorflow出现问题(pytorch好像不会出现该问题),找不到相应的库文件。具体为直接使用pycharm run .py文件,按照默认configurations运行,tensorflow无法找到:
Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory
......
dynamic library libcudart.so.11.0
dynamic library libcublas.so.11
dynamic library libcublasLt.so.11
dynamic library libcusparse.so.11
dynamic library libcudnn.so.8
.......
这些文件都位于/usr.local/cuda/lib64路径下,一个解决方法是修改run的config文件的环境变量:

增加LD_LIBRARY_PATH 项,值为/usr/local/cuda/lib64,也就是刚刚报错的库文件路径。但是直接在命令行输入命令运行并不会出现上述问题,虽然没有本质的影响,但没搞清楚为啥,如:python mian.py 能够正常运行(同样是虚拟环境),猜测是bashrc环境变量的问题,pycharm继承系统环境失效。
第二个解决方法是真-全局配置;这里涉及环境变量作用域的问题,如 https://www.jianshu.com/p/464507128800,https://blog.csdn.net/smile_from_2015/article/details/80058351。
所以就直接修改全局配置:/etc/profile,增加cuda路径到PATH,增加LD_LIBRARY_PATH:
sudo gedit /etc/profile
#添加路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
# 保存退出,激活
source /etc/profile
也就是将原来写入.bashrc和环境变量写入到 /etc/profile下,提高优先级。该配置会作用到所有用户,这时候在其他用户下运行上述代码就不会出现问题,打开pycahtm run config查看系统环境变量:
成功添加之后,直接点击run则正常加载库文件:
但是样一来,配置对所有用户生效,如果是用户需要单独安装cuda的话,就单独配置bashrc,相应的pycharm环境做添加项,不使用全局配置。
公共磁盘/分区挂载
在安装系统的时候,有一个分区(作为公共磁盘)只进行了初始化ext4文件系统,没有将其挂载到特定路径。系统开机后会无法正常打开该分区,插入U盘也无法自动挂载,手动挂载提示:
Can't mount hard drive; “an operation is already pending”
于是先将其挂载至特定路径,可使用 sudo fdisk -l 查询磁盘分区信息,也可以使用GParted软件(sudo apt install gparted)进行查看UUID,然后将该将UUID写入到fstab进行系统自动挂载https://blog.csdn.net/Blateyang/article/details/84861515
。
- 创建挂载目录,如 sudo mkdir /media/HDDP,
- 配合chmod修改权限,777 对所有用户可读写,
- 编辑 /etc/fstab文件,在最后增加如下内容:
UUID=92f6c642-ad16-4463-883b-c09373cf25fe /media/HDDP/ ext4 auto,user,rw 0 0 - 重启系统后就能正确挂载了
具体参数需要查一下说明,文件系统根据具体磁盘而定,这里是ext4
1026更新:关于共享文件夹权限问题
如将HDDP权限设置为777,则开放为全权限,用户在HDDP下创建的目录会被系统开放删除(移入回收站)的选项,HDDP权限如下图
子目录权限对所有者和组root都为create and delete files;others为access files
非所有者(其他用户)选择将子目录移入回收站选项,显示权限问题,但可以直接选择立刻永久删除:
但HDDP的子目录存在其他文件夹或者文件时,且权限仍为ower & root:create and delete files;others为access files;非所有者(其他用户)选择删除则进一步显示权限不足,文件夹消失后可刷新回来:
虽然在有子目录权限限制的情况下,不会导致立刻删除操作,但强迫症很难受;将挂载目录HDDP权限更改为755 (组和其他access files)可以阻止移入回收站选项,但也就无法在改目录下修改子文件夹(如重命名,删除等)。。。
磁盘共享
选择一个文件夹,进行局域网共享,如上HDDP文件夹位置,选择 Local Network Share,选择对应选项后系统提示安装samba。
安装之后启用共享还需要根据samba的提示允许其他用户的部分权限,编辑 /etc/samba/smb.conf,global设置下增加
[global]
usershare owner only = False
也有推荐说
[share]
path=/path/to/share
available=yes
browseable=yes
writable=yes
但共享之后的多用户文件权限还是有部分问题,特别是从windows直接操作该共享目录(在windows下键入网络地址,映射磁盘驱动器),这里是手动将windows增加的文件(从windows移动到ubuntu共享路径下)修改文件权限(everyone / nobody)允许完全控制,对于文件夹还需要勾选权限继承,

但共享路径下出现了名为core的文件,权限为none,可以全权限操作,百度一下是Linux核心转储文件,内含进程终止时内存映像的一个文件,并不是很清楚该文件为什么出现在共享文件夹中,大小为4.3MB,删除之后还会产生,也就没有管。
10.11: 更新:linux windows文件夹共享连接,设置完成后无权限问题
参照此内容设置
sudo vim /etc/samba/smb.conf
sudo smbpasswd -a user
sudo gedit /etc/samba/smbusers
sudo /etc/init.d/samba restart
smbpasswd -a 增加用户(要增加的用户必须以是系统用户)
smbpasswd -d 冻结用户,就是这个用户不能在登录了
smbpasswd -e 恢复用户,解冻用户,让冻结的用户可以在使用
smbpasswd -n 把用户的密码设置成空. 要在global中写入 null passwords -true
smbpasswd -x 删除用户
配置文件中的内容简单的写上述[share]内容,smb添加用户需要是系统用户。
在windows下键入网络地址,映射磁盘驱动器:

远程连接
多用户远程连接,如果使用ssh的话是比较简单的,但如果是可视化界面的远程连接,就没那么方便设置。这里安装openssh-server进行ssh连接,非局域网下需要路由器映射22端口,这里赞一下MobaXterm,用来进行远程连接(支持连接方式较多)。
可视化界面的远程控制,这里使用xrdp,网上的教程比较多,也可以使用windows自带的远程桌面连接。
但是存在两个问题,第一个是 XRPD会在远程 Linux 主机的home目录下创建一个 thinclient_drives 目录(多用户也一样),用于驱动器的映射,强迫症表示很难受。按照https://butui.me/post/little-issue-about-xrdp/中卸载之后,重新登陆还是会出现,难受。。。
第二个是访问卡顿的问题,在局域网下访问速度比较快,但非局域网下桌面环境会非常卡顿,正常应用的操作界面却不会出现该情况(网络带宽是够的):
可能是gnome桌面环境的问题,但没换xfce试过。
可移动磁盘挂载
主机接入移动硬盘或者U盘时,若无登录用户则需要使用管理员权限挂载至管理员用户路径:/home/admin/U disk,本希望利用udev修改挂载规制,将挂载点修改到其他指定位置。https://blog.csdn.net/hktkfly6/article/details/23393145
https://blog.csdn.net/jchen1218/article/details/12948851
在/etc/udev/rules.d/下新增挂载规则如下:
ACTION=="add", KERNEL=="sd[b-z][0-9]", RUN+="/bin/mkdir -p /media/usbhd-%k"
ACTION=="add", KERNEL=="sd[b-z][0-9]", RUN+="/bin/mount /dev/%k /media/usbhd-%k"
ACTION=="remove", KERNEL=="sd[b-z][0-9]", RUN+="/bin/umount -l /media/usbhd-%k"
ACTION=="remove", KERNEL=="sd[b-z][0-9]", RUN+="/bin/rm -rf /media/usbhd-%k"
在插入u盘和拔出u盘时能观察到/meida/目录下新建文件夹和删除文件夹的操作,如/media/usbhd-sdb4,但u盘还是被挂载至用户目录下,而非指定位置,暂时没有解决这个问题。如果有什么解决办法再更在这儿吧
Authentication required
(2021-4-8)使用远程连接每次连接登陆都会询问root密码,刷新repositories,颜色管理也会有同样的问题:
Authentication required to refresh system repositories
Authentication required to create managed color device
查到的方法(记下来再说)是直接授权给所有用户(在root用户下操作:sudo -i,不然无法直接访问这个路径):在/etc/polkit-1/localauthority/50-local.d下创建规则 46-allow-update-repo.pkla,编辑如下内容:
[Allow Package Management all Users]
Identity=unix-user:*
Action=org.freedesktop.packagekit.system-sources-refresh
ResultAny=yes
ResultInactive=yes
ResultActive=yes
颜色设备管理同理:同路径下创建规则45-allow-colord.pkla,内容为:
[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes
具体内容在这里这里这里:http://c-nergy.be/blog/?p=14051,