![什么 sudoer 规范允许用户挂载 cifs 共享?](https://linux22.com/image/756/%E4%BB%80%E4%B9%88%20sudoer%20%E8%A7%84%E8%8C%83%E5%85%81%E8%AE%B8%E7%94%A8%E6%88%B7%E6%8C%82%E8%BD%BD%20cifs%20%E5%85%B1%E4%BA%AB%EF%BC%9F.png)
我正在尝试在 /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 通过让用户能够在会话开始时安装此类网络卷来解决一半的难题。