我有许多台式机用户,每个用户在远程 samba 服务器上都有一个文件夹。我正在尝试按照此处的说明设置每个用户安装这些网络文件夹:
https://askubuntu.com/questions/67405/auto-mounting-network-shares-per-user
那篇文章建议在 sudoers 中添加以下行:
user ALL= NOPASSWD: /bin/mount -t cifs -o cred=/home/user/.Music.cred //server/music /home/user/MyMusicFolder
Run Code Online (Sandbox Code Playgroud)
该命令工作正常,但我需要挂载共享,以便它们归特定组所有。我曾尝试将行更改为如下所示:
user ALL= NOPASSWD: /bin/mount -t cifs -o cred=/home/user/.Music.cred,gid=xxx //server/music /home/user/MyMusicFolder
Run Code Online (Sandbox Code Playgroud)
但是随着 ,gid=xxx 的添加,sudoers 文件不再正确解析。我认为这是因为 NOPASSWD 命令实际上采用逗号分隔的参数列表,所以我需要在命令中转义逗号。我可以使用反斜杠来做到这一点,如下所示:
user ALL= NOPASSWD: /bin/mount -t cifs -o cred=/home/user/.Music.cred\,gid=xxx //server/music /home/user/MyMusicFolder
Run Code Online (Sandbox Code Playgroud)
现在 sudoers 文件将被解析,我可以使用 sudo 运行 mount 命令而无需输入密码。不幸的是,我现在收到此错误:
Sorry, user is not allowed to execute '/bin/ls /home/' as root on ubuntu.
Run Code Online (Sandbox Code Playgroud)
当我尝试运行任何其他命令时。如果我\,gid=xxx从行中删除 ,则不会收到此错误。那么在 sudoers 文件中转义逗号的正确方法是什么?
| 归档时间: |
|
| 查看次数: |
5554 次 |
| 最近记录: |