在Linux中,文件的权限对于每一位操作过Linux的人都是非常熟悉的,“w”写的权限、“r”读的权限、“x”执行权限,但是在Linux中除了这三种权限外还有特殊权限,我做了以下使用说明。
Linux的特殊权限
1.SUID权限:临时获取文件拥有者的权限,只针对文件。
2.SGID权限:既可以作用于目录,也可以作用于文件,作用于文件,同SUID相同。作用于目录,继承父级目录,而且一直继承下去,不会停止。
3.SBIT权限:只有文件拥有者才可以修改,删除该目录下的文件,只针对目录。
上图的图1,我们看到有一个s权限,图2有一个t权限。那么这两个代表说明含义呢。
这表示,
1).当s出现在拥有者的x权限位置时,表示拥有者有SUID权限。
2).当s出现在所属组的x权限位置时,表示所属组有SGID权限。
3).当t出现在其他人的x权限位置时,表示其他人有SBIT权限。
使用命令 chmod g+s /文件路径/文件名称,就可以给文件或目录赋予了s权限,t也可以相同操作。
g表示时给群组给与的权限。u表示拥有者,o表示其他人。
那么我们给文件赋予了s或者t的权限,那文件是否还有x权限呢。
我们修改文件的权限,可以使用命令:
chmod g+x /文件路径/文件名称
这样文件就有了x的权限,此时的s时小写字母。
chmod g-x /文件路径/文件名称
此时查看文件属性,你会发现s变成了大写的S。
所以,s和t时有大小写之分的,大写表明,没有x权限,相反,小写就表明,有x权限。
那么t又是什么呢,我们看图2,图2的tmp文件的权限时文件中最大的权限,也就时所有人都可以对这个目录下的文件做任何事情,所有Linux就在其他人的x权限位置下加上t权限,表明,除了root用户外,只有目录下文件的拥有者才可以对文件最初修改。
在上面的修改特殊权限中我们使用字母来写,那么能不能使用数字来修改呢,是可以的。
我们使用命令 chmod 777 /文件路径/文件名称,表示修改文件拥有最大的权限,那我们修改命令为
chomd 4777 /文件路径/文件名称 ,就表示修改文件拥有最大权限时候,同时也有s权限,这和文件权限的数字使用是相同的。
这其中:SUID:4,SGID:2,SBIT:1
所有要修改文件的最大权限,并且给与s权限和t权限,就可以写成
chmod 7777 /文件路径/文件名称
Linux系统文件的特殊权限就先总结到这里,还有许多其他的好玩的东西,我会慢慢的总结出来。