为什么我只能使用连字符来切换用户?

为什么我只能使用连字符来切换用户?

如果我尝试使用它来切换用户sudo su - kshitiz,那么它会起作用,并且不会要求我输入任何密码。

但如果我sudo su kshitiz这样做,它会要求我输入该用户的密码。

这是为什么?我知道连字符会加载该用户的环境变量,而没有连字符会保留我自己的环境变量。

那么为什么当我想切换同时保留我自己的变量时它会要求我输入目标用户的密码,但是当我切换并加载目标的配置文件时却不要求我输入密码呢?

答案1

在最近的 util-linux 版本中,su和分别su -l使用不同的 PAM 配置 –/etc/pam.d/su/etc/pam.d/su-l。后一种配置可能在您的系统中缺失,或者没有常用pam_wheel模块(通常允许 root 切换到任何其他用户)。

直接使用sudo -s -u kshitizsudo -i -u kshitiz即可;su是多余的。

相关内容