Linux su命令:切换用户

Linux 是一种多用户操作系统,如果所有用户共享一个账号,会造成许多麻烦。因此在 Linux 中每个用户都有自己的账号,各个用户的账号可以根据需要分配不同的权限。Linux 提供了与之相关的用户操作命令。

su 命令可以用来切换用户身份,该命令的使用方式如下:

su [选项] user


除 root 外,其他用户切换身份时,需输入密码,su 命令选项说明如表 1 所示。

表 1:su 命令选项说明
选项 说明
-p 执行 su 时不改变环境参数
-c 切换到 user 用户并执行指令(command),然后切换回原来的用户。
-s Shell 指定要执行的 Shell,默认在 /etc/passwd 文件中已设置完成,若用户需改 Shell,可采用此参数。

sudo 命令用来以系统管理员的身份执行指令,该命令的使用方式如下:

sudo [选项] 命令


以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行的一样。sudo 命令选项说明如表 2 所示。

表 2:sudo 命令选项说明
选项 说明
-l 显示出执行 sudo 的用户的权限
-v sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为 5)会问密码,这个参数将重新做一次确认,如果超过 N 分钟,也会问密码。 
-k 强迫用户在下一次执行 sudo 时间密码(不论有没有超过 N 分钟)
-b 执行的指令放在后台执行
-p prompt 更改问密码的提示语,其中 %u 会代换为使用者的账号名称,%h 会显示主机名称。
-u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者账号)。
-s 执行环境变数中的 Shell 所制定的 Shell,或 /etc/passwd 里所指定的 Shell。
-H 将环境变数中的 home 目录指定为要变更身份的使用者 home 目录(如不加 -u 参数就是系统管理者 root)。