Linux特殊权限

Linux下的文件,除了常见的rwx这些权限外,还有一些特殊的权限有些时候也会用到,做个了解

1、s权限

  • s权限对于一个文件来说,该文件首先必须是一个可执行文件,即需要有x权限,而一般的可执行文件只有拥有该文件执行权限的用户才可以执行,如果想要别的用户执行该用户下的执行文件,就需要用到s权限。

  • setuid,该权限是让普通用户可以以root用户的角色来运行只有root帐号才能运行的程序或者命令,例如"passwd"这个命令,实际上最终更改的是"/etc/shadow"这个文件,而这个文件只有root权限的用户才能更改,那一般的用户使用"passwd"这个命令修改自己的密码时是怎么实现的呢,可以查看下"/usr/bin/passwd"这个命令文件的权限,设置了setuid位,所以普通用户能临时变成root来间接的修改"/etc/shadow"这个文件以达到修改自己密码的需求。

  • setgid,该权限只对目录有效,目录被设置该权限后,任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。

2、t权限

  • sticky bit,可理解成为防删除的权限。一个文件是否可以被某用户删除,主要取决于该用户是否拥有该文件所在目录的写权限,如果没有写权限,则这个目录下的所有文件都不可以被该用户删除,但是同时也不能添加文件。如果希望该用户可以在此目录下添加文件,但是不能删除文件,就可以对文件设置t权限。(以CentOS7实测下来该权限的功能便没有完全实现,rm带f参数后依旧可以删除,后续有机会再学习一下)

3、其他特殊权限

  • i,不可修改权限,添加之后文件不可修改;
  • a,只追加权限,添加之后文件只能追加,不能删除。

4、设置权限方式

  • 与一般权限类似,这些特殊权限也是用 chmod 命令来设置,也可是采用八进制的方式,这里就不过多表述。

5、t和T,s和S

  • 一个文件添加了t或s权限之后,该文件若本来在该位上有x权限的,则这些特殊标志显示为小写字母,没有x权限的,则显示为大写字母。
posted @   灬夜露沁心灬  阅读(147)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示