文章

使用sudo为某个用户提权指定命令

我们都知道使用sudo可以切换到管理员用户,但是这样会授予其全部权限,比较危险,能不能只授予其某个权限比如添加用户或者关机命令呢?答案是可以的。

我们可以编辑/etc/sudoer文件,比如要为masterke添加useradd的权限,我们在文件中加入一行:

1
masterke ALL=(ALL) NOPASSWD: /usr/sbin/useradd

我们切到masterke用户执行命令:

1
2
3
[masterke@localhost root]$ useradd test
useradd: Permission denied.
useradd:无法锁定 /etc/passwd,请稍后再试。

但是如果这时候我们加入sudo命令在前面的话:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[masterke@localhost root]$ sudo useradd test

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。

[sudo] masterke 的密码:
[masterke@localhost root]$ exit
exit
[root@localhost ~]# id test 
用户id=1003(test) 组id=1003(test) 组=1003(test)

可以看到只需要验证masterke用户的密码即可执行useradd命令,临时提权成功。

本文由作者按照 CC BY 4.0 进行授权