Linux基础命令su详解
su
是 Linux 和 Unix 系统中的一个命令,用于切换到另一个用户的身份,默认是切换到 superuser(root)身份。通过 su
命令,用户可以执行需要更高权限的操作。
基本用法
su [OPTION] [USER]
常用选项详解
-
-l, --login
使用户以登录身份切换,这将加载目标用户的环境变量(如PATH
、HOME
、USER
等)。示例:
su -l username
-
-c, --command=COMMAND
允许用户在切换到目标用户身份后直接执行指定的命令。示例:
su -c "ls /root" username
-
-s, --shell=SHELL
使用指定的 shell 而不是默认 shell 进行切换。示例:
su -s /bin/bash username
-
-m, --preserve-environment
保持当前用户的环境变量,而不改为目标用户的环境变量。通常这是一个不常用的选项。示例:
su -m username
-
-p
和-m
选项相同,也是保留当前用户的环境变量。示例:
su -p username
-
USER
指定要切换到的目标用户,如果不提供用户名,则默认切换到 root 用户。示例:
su
使用示例
-
切换到 root 用户:
su
提示输入 root 用户的密码。
-
切换到指定用户:
su username
提示输入指定用户的密码。
-
使用登录模式切换到指定用户:
su -l username
以目标用户的登录身份切换,加载其环境变量。
-
以指定用户身份执行命令:
su -c "mkdir /home/username/new_directory" username
在指定用户下创建一个新的目录。
-
切换到指定用户并使用特定 shell:
su -s /bin/zsh username
以
zsh
shell 切换到指定用户。
注意事项
- 使用
su
命令时,必须使用目标用户的密码进行身份验证,通常是 root 用户。 - 使用
su
切换到 root 用户时,不要与sudo
混淆。sudo
允许用户以更细粒度的权限执行命令,而不需要全程切换用户。 - 根用户和非根用户在系统中执行命令的权限可能相差甚远,因此谨慎使用 root 权限进行操作。
总结
su
命令是Linux和Unix系统中实现用户切换的基本工具,通过它可以在必要时获取较高权限来执行需要管理员权限的操作。熟练掌握 su
的用法对于系统管理和维护是十分重要的。