移除二进制程序的 others 执行权限(o+x)可有效限制非属主、非同组用户直接运行,需用 ls -l 识别风险文件,通过 chmod o-x 或 chmod 750 加固,验证时用 sudo -u nobody 测试并检查 mac 机制,批量可用 find 处理,但系统命令和 setuid 程序等例外需谨慎评估。

直接移除二进制程序的 others 执行权限(即去掉 `o+x`),能有效限制非属主、非同组用户的直接运行能力,是系统加固中简单但关键的一环。
确认当前权限并识别风险文件
先用 ls -l 查看目标二进制文件权限,重点关注末三位(others 权限)是否含 x:
-
-rwxr-xr-x→ others 可执行(存在风险) -
-rwxr-xr--→ others 不可执行(较安全)
常见需加固的路径包括:/usr/local/bin/ 下自编译工具、运维脚本、第三方安装的二进制(如某些旧版 Redis、Nginx 插件等),尤其当它们不属于系统包管理器维护时。
使用 chmod 移除 others 执行位
执行以下命令即可安全禁用:
-
chmod o-x /path/to/binary—— 仅移除执行权限,保留读/写(若原本有) -
chmod 750 /path/to/binary—— 直接设为rwxr-x---(推荐,更清晰)
注意:不要用 744 或 755,它们都赋予 others 读或执行权限;750 表示仅属主和同组用户可执行,others 完全无访问权。
验证与持续管控
加固后必须验证:
- 用非属主、非同组普通用户尝试执行:
sudo -u nobody /path/to/binary,应提示Permission denied - 检查 SELinux/AppArmor 等 MAC 机制未被绕过(如有启用)
对批量管理场景,可用 find 配合 chmod 自动处理:
find /usr/local/bin -type f -perm -o+x -exec chmod o-x {} \;
注意事项与例外情况
不是所有二进制都适合直接禁用 others 执行:
- 系统级服务二进制(如
/bin/ls)通常需保持755,因其被所有用户合法调用 - 若程序通过 setuid/setgid 运行(如
/usr/bin/passwd),移除o+x一般不影响功能,但仍需测试 - 容器或 systemd 用户实例中,若 others 权限用于特定上下文(如共享 bin 目录),应结合最小权限原则重新设计访问控制










