切换用户命令

在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
原文地址:https://www.cnblogs.com/nufangrensheng/p/3458343.html