关于sudo

本文详细介绍了如何使用sudoers文件进行权限管理,包括如何为特定用户或组分配特定机器上的命令执行权限,以及如何设置无需密码的权限,简化超级用户操作流程。通过实例演示了如何为用户分配杀死特定进程的权限,以及如何引入自定义文件进行更精细化的权限控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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命令来引入自定义的文件


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值