一、命令简介
su
命令是 Linux 和 Unix 系统中的一个实用工具,用于切换用户身份。它允许当前登录用户在不退出登录会话的情况下,切换到另一个用户的身份。通常,su
用于从普通用户切换到 root 用户,或从 root 用户切换到其他用户。
二、命令参数
su
命令支持多个参数,以下是一些常用的参数:
-
-
:使用登录 shell,加载目标用户的环境变量和启动文件。 -
-c command
:执行指定的命令后返回到原来的用户。 -
-l
或--login
:与-
相似,强制su
使用登录 shell。 -
-m
或--preserve-environment
:保留当前用户的环境变量。 -
-s shell
:指定要使用的 shell。 -
-p
:不更改环境变量。
三、命令示例
-
切换到 root 用户:
su -
-
以用户
john
的身份执行ls
命令:su -c 'ls /home/john' john
-
切换到用户
alice
并使用bash
作为 shell:su -s /bin/bash alice
提高 su 命令的安全性
提供以下参考,自己用就别瞎折腾。
-
使用 sudo:尽量使用
sudo
命令执行需要超级用户权限的命令,而不是直接切换到 root 用户。 -
限制 su 的使用:在
/etc/pam.d/su
中配置 PAM 模块,只允许特定用户或用户组使用su
。auth required pam_wheel.so use_uid
-
设置强密码:确保所有用户,尤其是 root 用户,使用强密码。
-
审计 su 命令:启用审计功能,记录所有
su
命令的使用情况。auditctl -w /usr/bin/su -p x -k su_commands
-
密钥认证:对于远程登录,使用基于密钥的认证,减少密码认证的使用。