摘要

本文将讨论 Linux 中如何切换用户身份。

引言

我们用一个例子来说明为什么需要切换用户身份。

测试样例:我们目前是以普通用户的身份来登录终端的,当我们使用 ls /root 命令列出 /root 目录下的文件时,会提示权限不够。原因很简单,/root 目录的读写权限是 dr-xr-x---,即对其它用户没有任何权限。而我们当前用户既不是文件拥有者,也不从属于 root 组。因此,当前用户既不能切换到该目录中,也不能列出该目录下的文件,更无法在该目录下创建、修改或删除文件。

$ ls /root
ls: 无法打开目录 '/root': 权限不够

在 Linux 中,我们得用适当的身份来完成与其相对应的任务,因此我们就需要切换用户身份。

切换用户身份的命令是 su(switch user 的缩写),只要将要切换为的用户名跟在命令后面就可以了。一般来说,我们还带一个 -l 选项,即使用 su -l 用户名,这样不仅切换了用户身份,同时也切换了用户的 shell 运行环境。如果没有特殊情况,强烈建议带上 -l 选项。-l 选项可以简化为 -

$ su - root # 正确输入 root 用户的密码即可切换为 root 用户
密码:
# ls /root # 切换成功后就能正常列出 /root 目录下的文件了
test  nginx exp

安全起见:输入密码时终端窗口不会以任何方式回显你的输入(包括星号字符),因此初学者不要怀疑是自己键盘坏了。

需要注意:从普通用户切换到根用户或其它用户是需要输入密码,从根用户切换到普通用户不需要密码。

参考

中国大学 MOOC | Linux 系统管理 | 主题 06 管好用户 | 小节 3 切换用户身份

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐