linux为安全计,把普通用户设置为默认的账户;这一点跟windows不一样,windows的默认用户是管理员。由于linux的默认账户是普通用户,而更改系统文件或者执行某些命令,必需要root(即linux中的管理员)身份才能进行,这就需要从当前用户切换到root用户。
linux中切换用户的命令是su或su-。今天我在使用fsdisk这个命令时,终于体会到这两者的区别了。
我首先是用su命令切换到root身份的,但是运行fdisk时,出现错误:command not found!这时必须加上路径/sbin/fdisk才可以运行。
经论坛高手指点,才明白原由:是因为没有为这个命令设置环境变量,所以要加绝对路径才能运行!但是/sbin这个路径是系统设置好的呀,怎么会出现没有设置环境变量的错误呢?问题就出现在这个用su命令切换过来的root用户上!
原来,切换root用户最好用su-命令,而不是su命令!
su命令和su-命令最大的区别,就是:前者只是切换了身份,但SHELL环境仍然是普通用户的SHELL;而后者连用户和SHELL环境一起切换成root了。只有切换了SHELL环境才不会出现PATH环境变量错误。
下面一幅图片能说明这个问题:
从图片上可以看到用su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户lqs的工作目录;而用su-命令切换以后,工作目录变成root的工作目录了!
再来看一下环境变量的不同:
你可以在自己的电脑上用echo $PATH命令看一下su-以后的环境变量有何不同。
以此类推,要从当前用户切换到其它用户也一样,应该使用su-命令。
学习过程中细节问题一定要注意,这样才能少走弯路!
本文出自 51CTO.COM技术博客