使用systemd实现登录时自动挂载每个用户专属驱动器
使用systemd实现登录时自动挂载每个用户专属驱动器
刚好碰到过和你一模一样的多用户NAS挂载场景——之前用系统级systemd mount单元确实没法满足不同用户的私有凭证和自定义挂载点需求,给你分享两个实用的systemd方案,完全不用碰fstab,还能让每个用户自主控制,不用sudo权限:
方案一:用户级systemd服务+mount.cifs命令
这个方案最灵活,完全在用户自己的环境里配置,不需要管理员插手:
- 首先让每个用户自己创建想要的挂载点,比如
mkdir ~/my-nas-private,想放哪个位置都行,不用root权限。 - 然后创建自己的SMB凭证文件
~/.smbcredentials,记得把权限设成chmod 600 ~/.smbcredentials,只有自己能读,内容格式:
username=你的NAS用户名 password=你的NAS密码
- 接下来创建用户级systemd服务文件,路径是
~/.config/systemd/user/nas-mount.service,内容如下:
[Unit] Description=挂载我的私有NAS SMB共享 After=network.target # 确保网络通了再挂载 [Service] Type=oneshot RemainAfterExit=yes # 让服务在启动后保持激活状态,对应挂载状态 ExecStart=/usr/bin/mount.cifs //你的NASIP/你的私有共享名 %h/my-nas-private -o credentials=%h/.smbcredentials,uid=%U,gid=%G,iocharset=utf8 ExecStop=/usr/bin/umount %h/my-nas-private # 注销时自动卸载 [Install] WantedBy=default.target # 用户登录时自动触发
这里的%h会自动替换成用户的家目录,%U和%G是用户的UID和GID,不用硬编码,每个用户的配置文件可以直接复用模板。
- 最后用户自己启用服务就行:
systemctl --user enable --now nas-mount.service
这样登录后就自动挂载,注销时会自动卸载,完美适配多用户场景。
方案二:用户级systemd挂载单元+Polkit授权
如果你还是偏爱systemd mount单元的结构化写法,可以通过Polkit给普通用户开放挂载权限:
- 首先需要管理员配置一条Polkit规则,让普通用户能管理自己的用户级mount单元,创建文件
/etc/polkit-1/rules.d/10-allow-user-mount-cifs.rules,内容:
polkit.addRule(function(action, subject) { if (action.id == "org.freedesktop.systemd1.manage-units" && action.lookup("unittype") == "mount" && subject.isInGroup("users")) { return polkit.Result.YES; } });
这个规则允许所有普通用户管理自己的mount单元,不用每次输入密码。
- 然后每个用户创建自己的mount单元文件
~/.config/systemd/user/mnt-my-nas.mount,内容:
[Unit] Description=挂载私有NAS共享 [Mount] What=//你的NASIP/你的私有共享名 Where=%h/my-nas-private # 用户自定义的挂载点 Type=cifs Options=credentials=%h/.smbcredentials,uid=%U,gid=%G,iocharset=utf8 [Install] WantedBy=default.target
- 同样用户自己启用单元:
systemctl --user enable --now mnt-my-nas.mount
一些注意事项
- 一定要确保凭证文件的权限是
600,避免其他用户看到你的NAS密码; - 如果NAS用的是主机名而不是IP,确保局域网能正常解析(可以在
/etc/hosts里加静态映射,或者用局域网DNS); - 配置前可以先手动运行
mount.cifs命令测试挂载是否成功,再配置systemd单元,减少排查问题的麻烦; - 如果挂载失败,可以用
journalctl --user -u nas-mount.service查看用户级日志,找错误原因。
备注:内容来源于stack exchange,提问作者Grzzlwmpf
相关产品推荐
相关产品推荐

