对于debian或者一些linux系统中使用普通账户无法获得root权限,即使使用su或者sudo命令,会出现命令不存在或者错的 提示。bash: service: command not found。经过分析主要在于su 或者 su root:的话只是将当前身份转为root,用户shell并没有改变.所以有些系统命令不能使用. su -或者su -l或者su -l root,可以完全的将当前环境转为root环境.如同root直接登陆.
例如service的路径为/sbin/service 如果shell没有改变,那么你的PATH中默认没有/sbin,所以不行,而如果用su -命令环境改为root,PATH中就包含/sbin。
解决办法就是要么使用su -或者su -l或者su -l root,使得当前环境完全切换为root真实环境;
或者仍然使用su命令,但是需要让系统自适应当前的环境变量,我们需要提前修改/etc/bashrc或者~/.bashrc的环境配置文件中加入:PATH=$PATH:$HOME/bin:/sbin:/usr/bin:/usr/sbin
更新生效后,即可使用su直接切换root环境变量
发表回复