插件窝 干货文章 linux chmod能否设置特殊权限

linux chmod能否设置特殊权限

chmod 权限 设置 文件 75    来源:    2025-05-13

是的,Linux 的 chmod 命令可以设置特殊权限(Special Permissions),包括:

  1. SetUID (SUID)

    • 作用:当用户执行该文件时,程序将以文件所有者的权限运行
    • 设置方法:chmod u+s 文件名chmod 4xxx 文件名(如 4755)
    • 显示为:-rwsr-xr-x(所有者执行位变为 s)
  2. SetGID (SGID)

    • 对文件:以文件所属组的权限运行
    • 对目录:在该目录下创建的新文件继承目录的组
    • 设置方法:chmod g+s 文件名chmod 2xxx 文件名(如 2755)
    • 显示为:-rwxr-sr-x(组执行位变为 s)
  3. Sticky Bit

    • 作用:仅文件所有者/root可以删除/重命名该目录下的文件(常见于 /tmp)
    • 设置方法:chmod o+t 目录名chmod 1xxx 目录名(如 1777)
    • 显示为:drwxrwxrwt(其他用户执行位变为 t)

数字表示法说明: - 特殊权限作为第4位数字: - SUID = 4 - SGID = 2
- Sticky = 1 - 例如:chmod 4755 file(SUID + 755常规权限)

注意事项: 1. 大写 S/T 表示该位原本没有执行权限 2. 特殊权限可能带来安全风险,需谨慎设置 3. 查看权限时特殊权限会显示在 x 的位置(s/t)

示例:

# 设置SUID
sudo chmod u+s /usr/bin/passwd

# 设置SGID目录
chmod g+s /shared_dir

# 设置Sticky Bit
chmod o+t /tmp