我的 sudoers 文件中有以下内容:
User_Alias DU=%domain\ users
DU ALL = NOPASSWD:NOEXEC: /sbin/mount.cifs \\\\* /home/* -o sec=krb5\,* ,/bin/umount -t cifs /home/*
这是可行的,属于正确组并拥有 Kerberos 票证的用户可以在家中某处安装他们的共享。
但是现在,任何用户可以在任何/home 下的目录(因为/home/*
),从而惹恼了其他用户。
如果我能将其更改为例如/home/$username
,$username
呼叫用户的名字在哪里,那就好多了。
有没有办法在 sudoers 文件中做到这一点?
否则,我将不得不创建包装器来限制人们可以安装和卸载的位置。
答案1
我一直在寻找相同的答案,但我没有找到任何可用的答案。据我所知,这是不可能的,因为 sudoers 文件是纯文本,不会以任何方式解释。因此,变量的 $ 扩展是 shell 功能,但对于 sudo 程序来说,它只是 \$username。在 sudoers 文件中声明变量的特殊语法不存在,至少到目前为止我还没有找到。
一种解决方法是将 mount 命令放入脚本文件中,然后将该脚本放入 sudoers 文件中。删除其他用户的写入权限 (chmod ow scriptfile),这样就可以了。