su 对自己没有密码

Pet*_*aut 3 linux debian sudo pam

如何设置它以便对于su当前登录的同一用户,即

foo$ su -c 'something' foo
Run Code Online (Sandbox Code Playgroud)

不需要密码?这不会添加或删除任何安全性,因为它应该是一个 noop。

想要这个的原因是我希望有一类“低于”root 的用户可以管理在该用户下运行的机器上的某些特定服务,例如,news或者mysql(检查他们的数据,更改配置,重新启动等.) 这些用户将获得sudo该帐户的权限,并且通常运行良好,除了在某些情况下 init 脚本调用

su -c 'start_daemon ...' daemonuser
Run Code Online (Sandbox Code Playgroud)

这使这个计划落空。当然,我可以更改 init 脚本或添加额外的sudo权限,但我想避免此类异常,因为从长远来看,它们是一团糟。

的配置su在 PAM 中,所以正确的魔法可能就在那里。

EEA*_*EAA 7

您应该sudo为此使用,而不是su. 使用sudo,你可以指定NOPASSWD/etc/sudoers

username  ALL=/path/to/command  NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)