su


举例描述: 在Debian中fdisk是需要root身份才能使用的,假设在Debian 10中采用如下方式进入root身份并使用fdisk: 会出现下面的执行结果: 例子中问题的解决办法: 有sudo的话,使用sudo也行: 原因: Debian官网有对应这个问题的解答,我把对应原文翻译了过来: buster中的su命令由util-linux源包提供,而不再是shadow源包,并且默认情况下不再更改PATH变量。这意味着在执行su之后,您的PATH可能不包含/sbin之类的目录,并且许多系统管理命令将失败。有几种解决方法: 使用su -代替su。这将启动一个登录shell,它会强制更改PATH,但也会更改其他所有内容,包括工作目录。 请改用sudo。sudo仍然使用更改的PATH变量运行命令。 要获得具有正确PATH的常规root shell,可以使用sudo -s。 要以root身份获取登录shell(相当于su -),您可以使用sudo -i。 在/etc/login.defs中写入ALWAYS_SET_PATH yes以达到与旧行为相似的表现。在man手册su(1)中记录了这种方法,但却没有记录在login.defs(5)中。这种方法还可能导致在某些情况下出现无害的错误消息(请参阅905564) 将系统管理目录(/sbin、/usr/sbin、/usr/local/sbin)放在常规帐户的PATH中(有关此问题的帮助,请参阅EnvironmentVariables)。 英文原文地址:https://wiki.debian.org/NewInBuster

Debian 10 通过su命令进入root身份但无法执行系统管理命令的可能原因及解决办法