使具有sudo级别操作的shell脚本可供其他人访问



在这个特定的Linux服务器上,我们有一个目录,人们可以在其中添加某些文件,我们希望这些文件由特定的用户所有,由特定的组编辑,并且不对公众可见。现在,我要做的是偶尔从命令行运行sudo chown this_user:that_group /foo/bar/*.ext; sudo chmod 750 /foo/bar/*.ext。我更希望我能把它变成一个其他用户可以调用的命令行程序,包括那些没有sudo访问权限的用户。想象一个名为/usr/bin/fixpermissions的程序,它将运行上面的chownchmod命令并返回成功消息。

我应该如何编写这个脚本,这样它就不会要求sudo部分的密码?我如何让其他用户可以使用它(将它放在/usr/bin/中是否足够或合适(?

这与其说是一个"如何编写脚本";,而是";如何通过sudo使其可用";。

脚本的规范位置是/usr/local/bin。。。

为了实现";作为sudo w/o密码执行";我会创建一个单独的sudoers文件:

sudo visudo -f /etc/sudoers.d/fixpermissions

具有以下内容:

%group ALL = NOPASSWD:  /usr/local/bin/fixpermissions

很明显,可以调整文件和组的名称,以匹配您的个人偏好和现有设置。

小心创建上面的sudoers文件,使用visudo以外的其他方法-如果保存了一个有语法错误的文件,你可能会把自己锁在盒子外(visudo会在退出时检查它的有效性,并提示你修复它(。

最新更新