当前位置: 首页 > Linux > 正文

Linux 文件权限

之前遇到一个文件权限是 rws–x–x 的问题,对这个 -s 属性很是不太明白,就仔细的找了些资料;
赶紧记录下来,以免后面又忘了

1. 基本权限

权限位一共是10位,下面这个图表比较清楚的解释了每一位的作用

1	2	3	4	5	6	7	8	9	10
File	User Permissions	Group Permissions	Other Permissions
Type	Read	Write	Execute	Read	Write	Execute	Read	Write	Execute
d	r	w	e	r	w	e	r	w	e
  • 1位是type: – 常规文件, d 目录, l 链接.
  • 2-4位表示文件拥有者的权限:分别是读、写、和执行
  • 5-7位表示同组用户的权限:分别是读、写、和执行
  • 8-10位表示其他用户的权限:同样,分别是读、写、和执行

文件的权限一个共有5种,分别是

  • r = 读 – r权限只在read位置出现
  • w = 写 – w权限只在write位置出现
  • x = 执行 – w权限只在execute位置出现
  • s = setuid – s权限只在execute位置出现
  • - 表示没有权限

type位一共有这么几种

  • d = 目录
  • l = 符号链接
  • s = socket
  • p = 命名管道
  • - = 普通文件
  • c= character (没有缓冲的) 设备,如键盘,鼠标
  • b= block (有缓冲的) 设备,如IDE硬盘

文件的 Set ID 位

  • 当owner的execute被设置为s时,表示任何程序在执行这个文件时就好像文件的owner一样(可以接触到相关的系统资源和权限等)
  • 同理,当group的execute被设置为s时,表示任何程序在执行这个文件时就好像文件的group中成员一样可以接触到相关的系统资源和权限
  • 最后,other肯定是没有s位的,不然就太恐怖啦(你能使用other的权限,那还得了?)
  • import:设置s时,首先要保证在该位上有x权限(常识啦,没有x就没有意义么)


目录有两个特殊的权限位,分别是

  • t 表示在这个目录中,用户只能删除或者修改属于自己的或者自己有写权限的文件,比如/tmp就有这个权限
  • s 设置group id,一般来说,一个用户建立一个文件时,文件的组一般为自己所属的组。。当目录设置了该位时,该目录下建立的文件组和目录所属的组相同,而不是建立文件的用户所属组

umask设置

文件默认的权限为
777 可执行文件
666 普通文件

文件默认的权限会让所有用户对可执行文件有所有权限,对所有普通文件有读写权限,设置umask可以改变这个系统行为

如,umask为022时,普通文件的权限就变成了 666 – 022 = 644, 可执行文件权限变成了 777 – 022 = 755

over

参考文档
Linux Files and File Permission

    分享到:

本文固定链接: http://klwang.info/linux-file-permission/ | 数据库|Linux|软件开发

该日志由 klwang 于2013年06月02日发表在 Linux 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: Linux 文件权限 | 数据库|Linux|软件开发
关键字: ,
【上一篇】
【下一篇】

Linux 文件权限:等您坐沙发呢!

发表评论

*
快捷键:Ctrl+Enter