在Linux系统(特别是CentOS)中,除了常见的读(r)、写(w)、执行(x)权限外,还存在三种特殊的权限位:SUID、SGID和Sticky Bit。这些权限对于系统安全和多用户协作至关重要。本教程将用通俗易懂的方式,帮助Linux初学者全面掌握这三种CentOS特殊权限的原理、作用及使用方法。
SUID(Set User ID)是一种特殊权限,仅对可执行文件有效。当一个文件设置了SUID后,任何用户在执行该文件时,都会临时获得该文件所有者的权限。
举个常见例子:/usr/bin/passwd 命令用于修改用户密码。普通用户没有权限直接写入 /etc/shadow 文件,但因为 passwd 命令设置了SUID,执行时会以root身份运行,从而可以修改密码文件。
使用 chmod 命令设置SUID:
# 设置SUID(数字方式)chmod 4755 filename# 或者使用符号方式chmod u+s filename# 查看文件权限(注意第一个 's')ls -l filename-rwsr-xr-x 1 root root 12345 Jan 1 10:00 filename
SGID(Set Group ID)有两种应用场景:
# 对文件设置SGIDchmod 2755 script.sh# 对目录设置SGIDchmod g+s /shared/project# 查看效果(注意组权限中的 's')ls -ld /shared/projectdrwxrwsr-x 2 user devgroup 4096 Jan 1 10:00 /shared/project
Sticky Bit(粘滞位)主要用于公共可写目录,如 /tmp。它确保用户只能删除自己创建的文件,即使其他用户对该目录有写权限。
例如,在 /tmp 目录中,所有用户都可以创建文件,但只有文件所有者或root才能删除自己的文件,防止恶意删除他人文件。
# 设置Sticky Bitchmod 1777 /public# 或使用符号方式chmod o+t /public# 查看权限(注意其他用户权限中的 't')ls -ld /publicdrwxrwxrwt 2 root root 4096 Jan 1 10:00 /public
特殊权限在数字权限中用千位表示:
因此,chmod 4755 表示 SUID + rwxr-xr-x。
虽然这些SUID权限、SGID权限和Sticky Bit权限非常有用,但滥用可能导致安全风险。例如,给 shell 脚本设置 SUID 是无效且危险的(多数现代系统已禁用)。建议仅在必要时使用,并定期审计系统中的特殊权限文件:
# 查找所有SUID文件find / -perm -4000 -type f 2>/dev/null# 查找所有SGID文件find / -perm -2000 -type f 2>/dev/null# 查找所有Sticky Bit目录find / -perm -1000 -type d 2>/dev/null
掌握CentOS特殊权限是Linux系统管理的重要一环。通过合理使用SUID、SGID和Sticky Bit,你可以在保障系统安全的同时,提升多用户环境下的协作效率。希望本教程能帮助你从零开始理解并应用这些关键概念!
本文由主机测评网于2025-12-17发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025129109.html