Linux 如何设置用户 sudo 指定命令不需要密码,而其他命令需要输入密码?

2018-09-16 22:26:01 +08:00
 kaiser1992
我发现当用户这个指定命令 sudo 不需要输入密码时,其他命令就不能 sudo 了,报错:
Sorry, user xxxx is not allowed to execute 'sudo 命令' as root on xxx.

除非设置所用命令不需要输入密码。

那如何设置用户 sudo 指定命令不需要密码,而其他命令需要输入密码?
7429 次点击
所在节点    Linux
16 条回复
singerll
2018-09-16 22:37:32 +08:00
没看太明白,sudo 都不用密码了,其他命令为什么还需要密码。。。
hanbaobao2005
2018-09-16 22:39:19 +08:00
AngelCriss
2018-09-16 22:41:33 +08:00
你仔细看看 sudo 的权限就会发现这是个 setuid 程序,只不过加了密码验证而已。
所以,你可以自己写一个,不需要密码验证即可。
当然你也可以创建一个组,将某个用户加入这个组,在 sudo 的配置目录新建配置,写入"%yourgoup ALL=(ALL) NOPASSWD: ALL"即可
kaiser1992
2018-09-16 22:49:29 +08:00
%yourgoup ALL=(ALL) NOPASSWD: ALL 是设置所有命令 sudo 都不需要密码,
但当设置指定命令不需要密码如 %yourgoup ALL=(ALL) NOPASSWD: a 命令 ,现在只想 sudo a 命令不需要输入,其他命令仍希望 sudo 输入密码应该怎么设置呢?
humansjl
2018-09-16 23:01:51 +08:00
sudo 可以指定命令啊,指定了就可以免密,没有的话 sudo 时就要密码,或者没有 sudo 的权限
wml
2018-09-16 23:06:02 +08:00
指定单独命令免密,其他命令 sudo 报错 not allowed to execute as root
wml
2018-09-16 23:07:05 +08:00
能否让其他命令 sudo 输入密码执行呢?
pcmid
2018-09-17 01:22:32 +08:00
yemenchun1
2018-09-17 06:36:48 +08:00
哈哈,遇到过这个问题,你改下 sudoer 的内容,对于需要免密执行的命令程序加入 sudoer 里面就行了,比如 systemctl suspend 之类的
yemenchun1
2018-09-17 06:37:50 +08:00
其实我没看懂你的问题,只看懂了最后一句
msg7086
2018-09-17 08:48:34 +08:00
test ALL=(ALL) ALL
test ALL=(ALL) NOPASSWD:/bin/ls


test@debian-ws:/root/test$ sudo ls
01
test@debian-ws:/root/test$ sudo vim
[sudo] password for test:
test@debian-ws:/root/test$

看到你的帖子我就猜到大部分人猜不出你想问什么。
rrfeng
2018-09-17 10:01:29 +08:00
哈哈哈这个知识点真的是许多人不知道
rock6y
2018-09-17 10:30:49 +08:00
有很多发行版 Linux 都是直接在 Shadow 文件里去掉 x root 就不用输入密码了
999V2
2018-09-17 14:27:54 +08:00
@msg7086 看你回复的就知道是楼主想要的
visitantzj
2018-09-17 14:52:38 +08:00
哈哈,昨天刚百度过这问题……

ssh 远程运行需要提权的脚本时候挺有用的
wml
2018-09-17 15:51:27 +08:00
@msg7086 是这样

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/489903

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX