关于sudo

sudo的配置文件是/etc/sudoers,虽然可以手工打开、编辑、保存。但还是建议使用visudo命令来编辑,因为它能够防止多个用户同时修改,且能进行有限的语法检查从而避免因权限位出错而不被sudo认可。

比较重要的是如下的格式:
user machine=(users) commands
也就是,允许在machine登录的 user 用户以users的身份来执行commands命令。这里的machine、users和commands可以用Host_Alias、User_Alias和Cmnd_Alias来代替了。%group ALL=(ALL) ALL,和上面的一样,只不过是按组来限制权限。

举例:
让某个用户(dev)有杀死指定另外一个用户的进程的权限(比如www用户什么的),但是不能随便杀其他用户的进程。
## Processes
Cmnd_Alias PROCESSES = /bin/kill, /usr/bin/kill, /usr/bin/killall, /usr/bin/pkill
Defaults:dev runas_default=www
dev ALL=(www) PROCESSES
于是,可以执行:sudo -u www kill 1111,但有了Defaults的配置,就可以不用-u选项。


sudo命令的另一个便捷的功能,是它能够指出哪些命令在执行时不需要输入密码。这很有用,尤其是在非交互式脚本中以超级用户的身份来运行某些命令的时候。例如,想要让用户作为超级用户不必输入密码就能执行kill命令,以便用户能立刻杀死一个失控的进程。为此,在命令行前边加上NOPASSWD:属性即可:

kong ALL=(root) NOPASSWD: /bin/kill, /usr/bin/killall


可以使用#include和#includedir命令来引入自定义的文件


你可能感兴趣的:(linux,sudo)