切换用户命令
在Linux系统中,root用户拥有至高无上的权限,使用root用户登录可能会由于人为的误操作导致数据丢失.因此一般情况下都不建议使用root用户登录系统,以免无意中损坏数据.通用的做法是使用普通用户登录并使用系统,当需要执行管理操作时,再切换到root用户执行管理操作.
1、临时切换用户命令su
su命令用于临时切换到指定的用户。当用户使用此命令切换用户后,执行的操作将以切换后的用户身份执行,直到用户执行exit命令为止。
(1)例如要切换到root用户:
[zhu@localhost ~]$ whoami zhu [zhu@localhost ~]$ su root Password: [root@localhost zhu]# whoami root [root@localhost zhu]#
普通用户切换到root用户时,必须输入root用户的密码;root用户切换到普通用户时,可以不输入密码。
注意:在RHEL5.3中,使用su命令虽然可以切换到root用户身份,但切换之后使用的环境变量仍然没有改变(有些系统也可以获得root用户的环境变量,例如Fedora)。因此执行一些管理命令时,可能会提示没有找到命令,此时可以使用输入命令的全路径的方式执行相关命令(例如使用/sbin/ficonfig替代ficonfig命令)。
(2)完成相关的功能后,要退出临时使用的用户,可以使用exit命令。
2、以root用户身份运行命令sudo
su命令虽然提供了使用root用户身份的方法,但是将root用户密码告诉许多人是很危险的,此时可以使用sudo命令。
sudo命令工作时,先切换到root用户,并以root用户身份执行命令,然后返回到当前用户。当前用户能否使用sudo命令执行操作取决于当前用户是否在/etc/sudoers文件中获得授权。也就是说,并非所有人都能够执行sudo,而是仅有/etc/sudoers内的用户才能够执行sudo这个命令。
[zhu@localhost ~]$ ls -ald myroot drwxr-xr-x 2 root root 4096 Dec 19 22:14 myroot [zhu@localhost ~]$ chmod o+w myroot chmod: changing permissions of `myroot': Operation not permitted [zhu@localhost ~]$ sudo chmod o+w myroot #使用sudo命令时需要输入当前用户密码(非root用户密码) Password: #验证成功后即可执行命令 [zhu@localhost ~]$ ls -ald myroot drwxr-xrwx 2 root root 4096 Dec 19 22:14 myroot [zhu@localhost ~]$
sudo命令不提供root用户的登录环境,因此执行的命令有时需要使用全路径的方法运行。
sudo的常用选项:
u:指定欲切换的用户,若无此选项代表切换到root用户。
[root@localhost zhu]# touch testsudo [root@localhost zhu]# ls -al testsudo -rw-r--r-- 1 root root 0 Dec 20 08:23 testsudo [root@localhost zhu]# sudo -u zhu touch testsudo1 [root@localhost zhu]# ls -al testsudo1 #特别留意,这个文件的权限是由zhu所创建的 -rw-r--r-- 1 zhu zhu 0 Dec 20 08:24 testsudo1