Ubuntu 22.04共享
桌面共享
如果使用 Wayland,Microsoft 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] | 
没有特殊需求,valid users 行也可以完全省略。之后重启 samba 服务即可:sudo service smbd restart。
总结
Linux 功能很强大,但是总给人不是一个统一的产品,而更像是一个缝合怪。一个相同的功能,有多种方式可以实现,遗憾的是每一种都或多或少会有些问题,除了桌面共享和文件共享,更严重的是网络方面的设置和管理。有时候只提供唯一的、好用的一种方法,或许就足够了。