如果我尝试使用它来切换用户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 kshitiz
或sudo -i -u kshitiz
即可;su
是多余的。