su并不是真正地切换用户,它只是改变身份的一个命令而已,你可以把它当做一种嵌套,当你以root身份执行su yph命令时,下面的命令便会以yph用户的身份执行,但是值得注意的一点是当前的环境变量、工作目录等全都没有改变,也就是说仍在root使用的环境变量中,此时执行pwd查看当前工作目录应该会输出“/root”,当再以yph身份执行su - root命令后,你便又是以root身份执行命令了,可是此时的情况应该是:
创新互联从2013年成立,先为罗江等服务建站,罗江等地企业,进行企业商务咨询服务。为罗江企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
root环境/yph身份/root身份
即当你输入logout时便会返回到:“/root环境/ypt身份”下,在此环境再输入logout则可能会显示“bash: logout: not login shell: use `exit'”,即当前yph用户所用的shell中没有logout,因为logout命令需要以root身份执行,此时正确的做法是执行exit命令,便会到退出到root下,即为刚进入root用户时的状态
su在Fedora上有的很多,你只要知道两个就可以了。
1.su
可以让你从普通账户切换到root账户
2.su -c '命令'
可以以root身分执行命令
首先确认你安装了su的软件包,然后看下是否把su的执行路径放入你的$PATH中,如果还是不行,看下是不是文件有问题
Linux登录后会自动运行用户目录下的.bashrc文件中的命令,如果命令所指向的文件找不到,就会出现问题里类似的提示。
可能是手动输入的命令路径有误,或者原始文件被改名或删除了。最简单的把~/.bashrc中对应行删除或注释掉就不会有问题了。
编辑/etc/sudoers文件,把Defaults env_reset改成Defaults ! env_reset
编辑.bashrc,最后添加alias sudo='sudo env PATH=$PATH'