【用户身份切换】
在 Linux 中,一般都是使用普通用户来登录系统的,当需要进行系统维护或软件更新时,才会转为 root 用户来操作
将普通用户转为 root 用户主要有两种方式:
- 使用
su
命令,直接将身份变为 root,但该命令需要使用 root 密码 - 使用
sudo
命令,执行 root 的命令串,但sudo
需要提前设置且需要用户输入自己的密码
【su 命令】
su
命令可以实现任何用户身份间的切换,命令格式为:su [选项] [username]
常见选项有:
- -l:后跟 username,即要切换的用户账号
- -m:表示使用目前的环境设置,不读取新用户的配置文件
- -c:后接命令串,仅执行一次命令
需要注意的是,单纯输入 su
并输入 root 密码后,虽然切换到了 root 身份,但由于读取变量设置方式为 non-login shell 方式,此时如 PATH 等环境变量并没有被改变
因此,在使用 su
命令切换 root 身份时,一般常采用 su -
以 login shell 的方式切换成 root 用户
此外,在使用 root 用户切换成任何用户时,均不需要输入用户密码,若想退出 su
环境,输入 exit
命令即可
【sudo 命令】
当主机是多人管理的环境时,若大家都需要使用 su
命令来切换 root 身份,那么就需要这些人都知道 root 密码,密码太多可能会流传出去,存在安全隐患
sudo
命令,可以以普通用户的身份去执行使用 root 身份来执行的命令,但该命令并非所有用户都可执行,默认情况下,系统仅限 root 用户来执行 sudo
,因此,若想让某些用户能够执行 sudo
的话,需要使用 root 用户来对 /etc/sudoers
文件进行更改,将可以使用 sudo
命令的用户添加进该文件中
sudo
命令格式为:sudo [-b] [-u username] 命令
,其中各选项含义如下
- -b:后续的命令让系统自动执行,不与当前 Shell 产生影响
- -u:后接欲切换的用户,若无该项则代表切换身份为 root 用户