如何设置sudo某些命令需要密码

我们是菜鸟,很想起飞,请多点耐心关注和指点
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
Derrick-W
帖子: 3
注册时间: 2018-12-06 22:57
系统: Ubuntu 18.04 LTS
送出感谢: 1 次
接收感谢: 0

如何设置sudo某些命令需要密码

#1

帖子 Derrick-W » 2018-12-06 23:08

在设定
%sudo ALL=(ALL:ALL) NOPASSWD:ALL
后运行sudo命令不需要输入密码,但是怎么指定某些命令需要密码,如执行
sudo passwd user
要求输入账户密码?
头像
astolia
论坛版主
帖子: 3387
注册时间: 2008-09-18 13:11
送出感谢: 1 次
接收感谢: 566 次

Re: 如何设置sudo某些命令需要密码

#2

帖子 astolia » 2018-12-07 12:02

做不到。最多只能禁止sudo提权执行passwd

代码: 全选

%sudo ALL=(ALL:ALL) NOPASSWD:ALL, !/usr/bin/passwd
在你允许了其他所有命令的情况下,这个也很容易绕过。比如sudo sudo passwd user就搞定了
这些用户感谢了作者 astolia 于这个帖子:
Derrick-W (2018-12-07 12:49)
评价: 3.7%
Derrick-W
帖子: 3
注册时间: 2018-12-06 22:57
系统: Ubuntu 18.04 LTS
送出感谢: 1 次
接收感谢: 0

Re: 如何设置sudo某些命令需要密码

#3

帖子 Derrick-W » 2018-12-07 12:48

astolia 写了:
2018-12-07 12:02
做不到。最多只能禁止sudo提权执行passwd

代码: 全选

%sudo ALL=(ALL:ALL) NOPASSWD:ALL, !/usr/bin/passwd
在你允许了其他所有命令的情况下,这个也很容易绕过。比如sudo sudo passwd user就搞定了
感谢,突然产生这么一个想法,网上搜索结果都是教怎么不用输入密码的,就很好奇。。。
头像
susbarbatus
帖子: 2965
注册时间: 2010-04-10 16:14
系统: Arch Linux
送出感谢: 6 次
接收感谢: 68 次

Re: 如何设置sudo某些命令需要密码

#4

帖子 susbarbatus » 2018-12-07 14:48

把sudo自身和所有shell都加入例外是不是就彻底禁了……
沉迷将棋中……
头像
susbarbatus
帖子: 2965
注册时间: 2010-04-10 16:14
系统: Arch Linux
送出感谢: 6 次
接收感谢: 68 次

Re: 如何设置sudo某些命令需要密码

#5

帖子 susbarbatus » 2018-12-07 14:49

不对,只要自己写一个可执行的脚本就能绕过了……
沉迷将棋中……
Derrick-W
帖子: 3
注册时间: 2018-12-06 22:57
系统: Ubuntu 18.04 LTS
送出感谢: 1 次
接收感谢: 0

Re: 如何设置sudo某些命令需要密码

#6

帖子 Derrick-W » 2018-12-07 17:32

看来这个只能是一个想法了,我试了一下把sudo自身禁掉可以解决sudo sudo passwd user的问题,但是用户还有sudo visudo,同样锁死visudo 还可以编辑sudoers文件 [笑哭] ,看来是无解了......
头像
astolia
论坛版主
帖子: 3387
注册时间: 2008-09-18 13:11
送出感谢: 1 次
接收感谢: 566 次

Re: 如何设置sudo某些命令需要密码

#7

帖子 astolia » 2018-12-12 9:37

Derrick-W 写了:
2018-12-07 17:32
看来这个只能是一个想法了,我试了一下把sudo自身禁掉可以解决sudo sudo passwd user的问题,但是用户还有sudo visudo,同样锁死visudo 还可以编辑sudoers文件 [笑哭] ,看来是无解了......
如果仅仅是在设置了NOPASSWD:ALL的情况下禁止执行某些程序,还是可以做到的。但不是在sudo的设置里,必须要用到更底层的安全机制。
比如用ubuntu默认启用了的apparmor,可以设定成以sudo运行的所有程序以及它们再运行的其他程序都禁止执行某个程序并禁止写入某些文件,这样就能防止相关配置文件被修改。
回复

回到 “初学者园地 - Ubuntu 18.10 (Cosmic Cuttlefish)”