linux特殊权限位

1.改变权限命令

chmod:更改文件权限

chgrp:修改文件所属组

chown:修改文件拥有者

2.目录的读、写和执行权限含义

对于文件的读写执行的含义,都比较了解,对于目录的权限和文件的权限是不一样的。

目录的读权限位意味着可以列出其中的内容;写权限位意味着可以在该目录中创建文件,如果不希望其他用户在你的目录中创建文件,可以取消相应的写权限位;执行权限位则意味着搜索和访问(进入)该目录,因此在创建目录的时候一般都是具有可执行权限的。

如果把同组用户或其他用户针对某一目录的权限设置为--x,那么他们将无法列出该目录中的文件。如果该目录中有一个执行位置位的脚本或程序,只要用户知道它的路径和文件名,仍然可以执行它。用户不能够进入该目录并不妨碍他的执行。--x仅能进入目录且可以执行已知文件名的可执行文件

3.特殊权限介绍

名称

SUID

SGID

  SBIT(粘滞位)

全称

set user id

set groud id

  sticky bit

 功能简述

以文件属主用户身份运行

 获得文件属组权限

自己的东西自己决定命运

出现位置

   --- --- ---

    --- --- ---

    --- --- ---

表示

     S   s

      S   s

   T   t

8进制表示

     4

      2

     1

小结:如果本来在x位上已经设置了x的时候,设置这些位将会显示小写(s,s,t),否则会显示为大写的(S,S,T)。这三位如果转化为8进制表示的话,分别对应的是4(SUID)2(SGID)1(sticky bit),0(什么也不是)。

添加方法:

chmod u+s  filename

chmod g+s filename

chmod o+t filename

chmod 4551 filename // 权限: r-sr-x--x    放在数字第一位
chmod 2551 filename // 权限: r-xr-s--x
chmod 1551 filename // 权限: r-xr-x--t

   4. SUID

当一个设置了SUID 位的可执行文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,他都有文件所有者的特权。
    如果所有者是 root 的话,那么执行人就有超级用户的特权了。
SUID的设置出现在文件拥有者的x位置上,如果之前用户有x权限,设置SUID后,x就会成为s(小写的s);如果之前没有x权限,即-,设置之后就会成为S(大写S)。

一般SUID使用在脚本文件上的。

例如,/usr/bin/passwd的文件权限为:


 这个脚本的所属主和所属组为root。我们当然可以以root的用户的身份执行它,但是如果在某种场合,普通用户也需要执行这个脚本来修改自己的密码的时候,也需要调用这个脚本,于是,我们设置了SUID位,也就是我们看到的那样,在所属主的标志位上有个s。这样一来,其他人有读取和执行的权限,而且可以假如我们现在有个普通用户名为sunny,现在切换到sunny,执行此脚本,表面上我们看是执行成功了,其实我们是借助root用户的身份来执行它的,而不是sunny,这就是SUID的作用。

 5.SGID

 当一个设置了SGID 位的可执行文件运行时,该文件将具有所属组的特权, 任意存取整个组所能使用的系统资源。
若一个目录设置了SGID,则所有被复制到这个目录下的文件, 其所属的组都会被重设为和这个目录一样,除非在复制文件时加上-p (preserve,保留文件属性)的参数,才能保留原来所属的群组设置。

比如“/charles”目录的拥有组是charles,当“/charles”目录拥有SGID属性时,任何用户在该目录中建立的文件或子目录的拥有组都会时charles;SGID属性应用在可执行文件上时,其他用户在使用该执行文件时就会临时拥有该执行文件拥有组的权限。比如/sbin/apachectl文件的拥有组是httpd,当/sbin/apachectl文件有SGID属性时,任何用户在执行该文件时都会临时拥有用户组httpd的权限。

[root@srv tmp]# ll

total 4

drwxr-sr-x 2 root root 4096 Feb 15 22:25 test4

-r-xr-sr-x 1 root root  6144 Feb 15 22:25 test6

如果在浏览文件时,发现拥有组权限的第三位是一个大写的“S”则表明该文件的SGID属性无效,比如将SGID属性给一个没有执行权限的文件。

6.SBIT

这个就是粘滞位,这一位只针对目录和对文件的效果是不一样的。(主要用于目录)

当某一个文件设置了这一位的时候,这个可执行程序退出后,操作系统会在内存当中保存该程序的内存映像,这样做是为了节约大型程序的启动时间,但是也要占用系统资源。因此,设置这个粘滞位,到不如把自己的程序写得更好些。

对于目录而言,这一位可以理解为防止删除位。例如sunny用户创建了一个目录A,并且给这个目录设置了SBIT位,这个目录的权限是rwxrwxrwt,设置了这一位之后,就算所有用户对目录具有读写的权限,但也只有sunny用户和root用户对其中创建的文件或者目录进行删除。其他用户只能在其中添加,而不能删除。

/tmp/目录就是设置了这个标识位。假如现在有一个普通用户abc,然后在tmp目录中创建了一个文件test,然后将这个文件的权限修改为777,之后切换到其他的普通用户sunnysunny看着这个文件test不爽,sunny去删除这个文件test,发现时删除不了的。

 即当一个目录被设置为"粘着位"(用chmod o+t),则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除
也就是说,即便该目录是任何人都可以写,但也只有文件的属主才可以删除文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值