使用“sudo su -”进行无密码更改用户

使用“sudo su -”进行无密码更改用户

我希望在我的服务器上,用户可以以无密码的方式fox成为/更改用户(用户没有密码,他们使用 SSH 密钥登录)::user42fox

srv6:/etc# grep user42 /etc/sudoers
fox     ALL=(ALL:ALL) NOPASSWD: /bin/su user42
srv6:/etc# 

如果他们这样做,效果会很好sudo su user42

fox@srv6:~$ sudo su user42
user42@akd6:/home/fox$ 

但如果我尝试使用sudo su - user42NOPASSWD 清除 shell,则不起作用

fox@srv6:~$ sudo su - akd
[sudo] password for fox: 

答案1

它不会起作用,因为sudo su - user42它不映射到您在规则中授予的内容。该规则不包含破折号-,因此它不映射。

你不妨这样做:

fox ALL=(user42) NOPASSWD: ALL

授予 fox 以 user42 身份执行任何操作的权限,无需密码,

然后在sudo -ui user42哪里-i

-i, --login 将目标用户的密码数据库条目指定的 shell 作为登录 shell 运行。这意味着登录特定的资源文件(如 .profile 或 .login)将被 shell 读取。

我相信这是你想要的结果。

相关内容