Ubuntu 22.04共享

桌面共享

如果使用 WaylandMicrosoft Remote Desktop 连接会黑屏——不过对于 MRD 来说其实无所谓,反正无论选什么都很不稳定,往往第一次能连上,但断开后就再也连不上了。

VNC 的话,我这边一定要选 Require a password,如果选 New connections must ask for access会无法连接。 选择后者,即使能连接,也需要在 Ubuntu 桌面弹出的连接请求中点击允许,没有远程的意义。

论效果 MRD 要好很多,VNC 哪怕本地千兆鼠标还是感觉有延迟。不过 VNC 方便,如果是 macos,用 Scree Sharing app 就可以了。

Ubuntu 只能登录之后才可以进行桌面共享,如果没有登录,可以使用 sudo loginctl unlock-sessions 解锁。

目录文件共享

共享使用的还是 samba 服务。需要先创建用户和密码:

sudo smbpasswd -a $USER

以本地用户为用户名,输入密码即可。如果要查看有哪些 samba 用户,可以使用命令 :

sudo pdbedit -L

Ubuntu 22.04 桌面版有两种方式设置 samba 共享:

Local Network Share

通过文件管理器右键的菜单可以看到这个选项,进行共享很方便。需要注意的是这种方式进行的文件共享不会修改到 /etc/samba/smb.conf 这个配置文件,但还是和这个文件有关联的,比如如果你要分享的目录权限是 root,它可能要求你在smb.conf 中的 [global]设置 usershare owner only = false

通过这种方式共享的文件,它的配置存放在 /var/lib/samba/usershares 目录下,但是直接修改是无法生效的,需要通过命令 net usershare 来操作。比如增加一个共享:

net usershare add music /mnt/backups/Misc "" "S-1-1-0:R,S-1-22-1-1000:F"

它的格式是:net usershare add <sharename> <path> "<description>" "<ACL>",其中 ACL 的 usershare_acl=<SID>:<permissions>,<SID>:<permissions>,...

Classic

传统的分享方式就是编辑/etc/samba/smb.conf ,比如添加:

[videos]
comment = Movies
path = /mnt/shared/Movie
browseable = yes
read only = no
guest ok = no
valid users = root, user1

没有特殊需求,valid users 行也可以完全省略。之后重启 samba 服务即可:sudo service smbd restart

总结

Linux 功能很强大,但是总给人不是一个统一的产品,而更像是一个缝合怪。一个相同的功能,有多种方式可以实现,遗憾的是每一种都或多或少会有些问题,除了桌面共享和文件共享,更严重的是网络方面的设置和管理。有时候只提供唯一的、好用的一种方法,或许就足够了。