Linux的文件权限

1 文件权限的表示

  (1)字母表示法

  Linux中所有文件(普通文件、目录文件、字符特殊文件、块特殊文件、管道或FIFO、符号链接、套接字)都有9个权限,如下图所示:

  -rw-rw-r--就是文件a的权限了。首先最左边的-表示了文件类型,如果是目录的话,就是d;接下来的三位rw-表示了a的用户(Andy)权限、再接下来的三位rw-表示了a的组(Andy)权限,最后三位代表了其他用户对文件a的权限。

  每组三个权限位依次代表了文件的读(r)、写(w)、执行(x)权限。如果某一位上是-就代表着该位不具有某一权限。

  (2)数字表示法

  Linux允许以数字来代表文件的权限,r为4,w为2,x为1。则上述的4的权限为(4+2)(4+2)(4)=664。

2 更改权限

  (1)字母法

  u、g、o分别代表了文件的用户权限、组权限、其他用户权限。我们可以使用chmod命令如下操作:

  chmod u+x a  //赋予用户执行权限

  chmod o-r a  //取消其他用户读权限

  这样a的权限就变成了-rwxrw----,也就是740

  (2)数字法

  简单粗暴:直接用你要更改的目标权限的数字:

  chmod 740 a

3 默认权限

  新建一个普通文件或目录,它们的默认权限是怎么样的呢?Linux是有默认值的。我们用umask命令可以获得: 

  

  这个0002代表什么意思呢?从名字中我们可以知道,它是一个掩码来的。也就是用某一个值来减这个值,就获得了默认权限,对文件来说,是666,目录来说是777。为什么是这样呢?因为Linux不允许文件默认是可执行的,所以一个文件默认是不可执行的。那为什么umask是4位的呢?第一位是特殊权限位,下边再讲,所以这里的umask的其他权限位是002,对应文件的默认权限是664,目录的默认权限是775。

  更改umask,直接umask 777,就可以把umask变成0777

4 特殊权限

  (1)Linux中的文件有三个特殊位:

    SUID:设置用户ID(set-user-ID)。对一个可执行文件,不是以发起者身份来获取资源,而是以可执行文件的属主身份来执行。
    SGID:设置组ID(set-group-ID)。对一个可执行文件,不是以发起者身份来获取资源,而是以可执行文件的属组身份来执行。
    STICKY:粘滞位,通常对目录而言。通常对于全局可写目录(other也可写)来说,让该目录具有sticky后,删除只对属于自己的文件有效(但是仍能编辑修改别人的文件,除了root的)。不能根据安全上下文获取对别人的文件的写权限。

  (2)设置
   #chmod u+s
   #chmod g+s
  同上,去除特殊位有: #chmou u-s  .等

  (3)表示
    SUID:置于 u 的 x 位,原位置有执行权限,就置为 s,没有了为 S .
    SGID:置于 g 的 x 位,原位置有执行权限,就置为 s,没有了为 S .
    STICKY:粘滞位,置于 o 的 x 位,原位置有执行权限,就置为 t ,否则为T .

  数字字表示法SUID:4,SGID:2,STICKY:1,特殊权限位于u/g/o之前。例如:对某个目录:

         #chmod  4551  file  // 权限: r-sr-x--x
         #chmod  2551  file  // 权限: r-xr-s--x
         #chmod  1551  file  // 权限: r-xr-x--t

转载于:https://www.cnblogs.com/qiaoconglovelife/p/5550900.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值