博客
关于我
linux文件特殊权限:SetUID、SetGID、Sticky BIT
阅读量:795 次
发布时间:2023-02-04

本文共 1443 字,大约阅读时间需要 4 分钟。

文件特殊权限

在Unix/Linux系统中,文件和目录的权限设置中有一些特殊权限可以帮助管理员管理系统权限。这些特殊权限包括SetUID(SUID)、SetGID(SGID)和Sticky BIT(SBIT)。这些权限可以帮助系统更好地管理权限分配,提高安全性。

SetUID

SetUID权限允许一个可执行的二进制程序暂时获得其文件所有者的身份。以下是SetUID的主要特点:

  • 仅适用于可执行文件:只有可以被执行的二进制程序(如可执行文件)才能设置SetUID权限。
  • 执行者需具备X权限:执行SetUID程序的用户必须对程序拥有执行(X)权限。
  • 临时身份切换:执行程序时,用户会获得文件所有者的身份,但一旦程序结束,身份会恢复。
  • 常见用途:例如,普通用户执行某个程序时,该程序可以访问root用户的权限。

示例:普通用户执行`passwd`命令时,会临时获得root用户的权限来修改密码。

如何设置SetUID权限:

- 使用`chmod 4755 文件名`:4代表SUID,7代表读、写、执行权限,5代表其他用户不可修改。- 或者`chmod u+s 文件名`:直接设置所有者为SetUID。

如何取消SetUID权限:

- 使用`chmod 755 文件名`:移除SUID权限。- 或者`chmod u-s 文件名`:移除所有者的SetUID权限。

注意事项:

- SetUID权限只能在程序执行时生效,程序结束后身份会恢复。- 不能随意给非可执行文件设置SetUID权限,否则可能导致安全问题。

SetGID

SetGID权限允许可执行程序或目录在执行时获得指定组的临时身份。与SetUID类似,但SetGID的应用场景更广泛。

SetGID对文件和目录都有特殊功能:

  • 文件

    • 仅适用于可执行二进制文件。
    • 执行程序时,用户会获得文件所属组的身份。
    • 类似SetUID,只在程序执行时有效。
  • 目录

    • 允许普通用户进入目录,但需满足一定条件。
    • 普通用户在目录中的组会变为目录所属组。
    • 如果用户对目录有写入权限,新增文件的默认组会是目录所属组。

如何设置SetGID权限:

- 使用`chmod 2755 文件名`:2代表SGID,7代表读、写、执行权限,5代表其他用户不可修改。- 或者`chmod g+s 文件名`:直接设置组为SetGID。

如何取消SetGID权限:

- 使用`chmod 755 文件名`:移除SGID权限。- 或者`chmod g-s 文件名`:移除组的SetGID权限。

Sticky BIT

Sticky BIT(粘性位)是一种目录权限设置,用于控制用户对目录的操作权限。主要作用是限制普通用户对目录的操作权限。

Sticky BIT的特点:

- 只适用于目录。- 普通用户对目录有写入权限时,必须满足以下条件才能删除目录中的文件: - 目录有Sticky BIT权限。 - 用户对目录有写入权限。 - 用户是目录的所有者。- 否则,普通用户只能删除自己创建的文件,不得删除其他用户创建的文件。

如何设置Sticky BIT权限:

- 使用`chmod 1777 目录名`:7代表Sticky BIT权限。- 或者`chmod o+t 目录名`:直接设置其他用户的粘性位为可执行。

如何取消Sticky BIT权限:

- 使用`chmod 777 目录名`:移除Sticky BIT权限。- 或者`chmod o-t 目录名`:移除其他用户的粘性位权限。

转载地址:http://sckfk.baihongyu.com/

你可能感兴趣的文章
Linux入门必备:基础指令详解
查看>>
linux关闭不了pdf,Linux关闭和重启的命令.pdf
查看>>
linux关闭端口
查看>>
linux内存管理-内核用户空间 【转】
查看>>
Linux内存调试工具YAMD的使用
查看>>
linux内核3.4 led驱动,4.移植驱动到3.4内核-移植总结
查看>>
linux内核mem_cgroup浅析
查看>>
Linux内核TCP参数优化
查看>>
Linux内核中的hash和bucket
查看>>
Linux内核串口配置
查看>>
Linux内核之进程管理
查看>>
Linux内核分析第五章读书笔记
查看>>
Linux内核创建一个新进程的过程
查看>>
linux创建普通用户附详解
查看>>
Linux初级阶段学习笔记-本地源YUM配置
查看>>
linux删除乱码文件[转载]
查看>>
linux删除卸载npm,卸载安装node npm (Mac linux )
查看>>
linux删除路由
查看>>
linux加载动态库.so的3种方法
查看>>
linux卸载node
查看>>