Linux——特殊权限管理

Linux中的特殊权限(setuid、setgid、sticky bit)扩展了基本的文件权限机制,提供了更精细的控制。以下是详细说明:


1. SetUID(SUID)

  • 作用:允许用户以文件所有者的权限执行文件。

    • 例如:/usr/bin/passwd 设置了SUID,普通用户执行时临时拥有root权限以修改/etc/shadow

  • 设置方法

    chmod u+s file       # 符号模式
    chmod 4755 file      # 数字模式(4表示SUID)
  • 权限显示

    • 若用户有执行权限:-rwsr-xr-x

    • 若无执行权限:-rwSr--r--(大写S表示异常)


2. SetGID(SGID)

  • 作用

    • 文件:以文件所属组的权限执行。

    • 目录:新创建的文件/目录继承父目录的组。

      • 例如:共享目录设置SGID后,所有新建文件自动归属同一组。

  • 设置方法

    chmod g+s dir        # 符号模式
    chmod 2775 dir       # 数字模式(2表示SGID)
  • 权限显示

    • 组执行位显示为s(如drwxrwsr-x)。


3. Sticky Bit(粘滞位)

  • 作用:用于目录,用户仅能删除自己的文件(即使有写权限)。

    • 典型应用:/tmp 目录(权限drwxrwxrwt)。

  • 设置方法

    chmod o+t dir        # 符号模式
    chmod 1777 dir       # 数字模式(1表示粘滞位)
  • 权限显示

    • 其他用户执行位显示为t(如drwxrwxrwt)。


查看与查找特殊权限

  • 查看权限

    ls -l file           # 观察权限位的s/S或t/T
  • 查找特殊权限文件

    find / -perm -4000   # 查找SUID文件
    find / -perm -2000   # 查找SGID文件
    find / -perm -1000   # 查找粘滞位目录

安全注意事项

  • SUID/SGID风险:避免随意设置,尤其是对root所属文件。定期检查:

    find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;
  • 脚本与SUID:脚本的SUID可能被忽略,建议通过sudo替代。


示例场景

  1. SUID:赋予脚本临时root权限(需谨慎):

    sudo chmod u+s /usr/local/bin/custom_script
  2. SGID目录:团队协作目录:

    mkdir /shared
    chmod g+s /shared   # 新建文件自动继承组
  3. 粘滞位:公共临时目录:

    chmod +t /tmp       # 用户只能删除自己的文件

通过合理使用特殊权限,可以增强系统功能与安全性,但需严格遵循最小权限原则。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值