麒麟系统限制普通用户su命令有四种方法:一、启用PAM wheel组限制;二、在sudoers中禁止/bin/su调用;三、修改su文件权限为4750;四、通过kysec框架全局禁用su。

如果您在麒麟操作系统中需要限制普通用户使用su命令切换身份,则可能是出于多用户环境下的最小权限管控需求。以下是实现该目标的多种操作方法:
一、启用PAM wheel组限制机制
该方法通过PAM模块强制要求仅wheel组成员可执行su命令,是银河麒麟V10沿袭RHEL系安全模型的核心控制手段。它在认证阶段即拦截非授权调用,不依赖sudoers配置。
1、以管理员身份打开PAM su配置文件:sudo vim /etc/pam.d/su
2、定位到包含pam_wheel.so的行,确保以下配置未被注释:auth required pam_wheel.so use_uid
3、保存退出后,将需授权的用户加入wheel组:sudo usermod -aG wheel username
4、验证当前用户是否在wheel组中:groups 或 getent group wheel
二、在sudoers中显式禁止su调用
此方法通过sudo权限策略层拦截对/bin/su的直接调用,适用于已启用sudo机制但需细化命令白名单的场景。它不影响su本身功能,仅限制通过sudo间接调用的路径。
1、以管理员身份运行visudo编辑器:sudo visudo
2、在文件末尾添加以下两行规则:%admin ALL=(ALL) ALL,!/bin/su
3、继续添加:%sudo ALL=(ALL:ALL) ALL,!/bin/su
4、保存并退出,确保语法无误(visudo会自动校验)
三、修改su二进制文件权限实现硬性屏蔽
该方式通过移除普通用户对su程序的执行权限达成物理级禁用,无需依赖PAM或sudo服务状态,适用于高安全等级隔离环境。但需注意可能影响系统维护脚本的兼容性。
1、检查当前su文件权限:ls -l /bin/su
2、若输出显示权限为-rwsr-xr-x,则执行以下命令移除其他用户执行位:sudo chmod 4750 /bin/su
3、确认所属组为root且无others执行权限:ls -l /bin/su
4、测试普通用户执行su:su -c 'echo test' 应返回Permission denied
四、通过kysec加固框架全局禁用su
针对麒麟深度定制的安全增强框架kysec,在enforce模式下可统一拦截su系统调用链。该方法作用于内核态与用户态交界处,覆盖所有执行路径,包括shell内置调用和LD_PRELOAD劫持等绕过方式。
1、检查kysec服务当前状态:sudo kysec status
2、若返回enforcing,进入策略目录:cd /etc/kysec/
3、编辑su策略文件:sudo vim sudo_policy.conf
4、将allow_su = true改为:allow_su = false
5、重启kysec服务使策略生效:sudo kysec reload


















