我正在尝试在 /etc/sudoers 中创建一行,允许“用户”组的成员在自己的主目录内的任何位置安装 cifs 共享。在我的第一次尝试中,我尝试了:
%users ALL=/bin/mount -t cifs /home, /bin/umount /home
...诚然,这并没有将它们限制在自己的主目录中。作为用户,当我尝试命令时:
sudo mount -t cifs ~/mount //hostname/sharename -o username=myuserid,domain=mydomain
...我收到密码提示,然后收到错误:
Sorry, user myuserid is not allowed to execute '...command...' as root on servername.
有什么方法可以强制 sudoers 指定我想要的内容吗?
答案1
我想出了如何做到这一点,减少了您在自己目录中的限制:
%users localhost, hostname = NOPASSWD: /bin/mount -t cifs //*/* /home/* -o username=*, /bin/umount /home/*
有谁知道如何将用户限制在自己的主目录中?
答案2
您最好让用户能够使用 FUSE 文件系统挂载其 cifs 共享。
答案3
值得注意的是,除非安装点位于 /etc/fstab 中,否则某些最新版本的 mount.cifs 会失败,即使它们安装了 setuid,因此我预计您的 sudo 方法在这些版本中会失败。
http://fedoraforum.org/forum/showthread.php?p=1329591
https://bugs.launchpad.net/ubuntu/+bug/657900
作为替代方案,您可以尝试以下方法之一:
答案4
我不禁想到 pam_mount 通过让用户能够在会话开始时安装此类网络卷来解决一半的难题。