linux的文件权限小结

对于初接触Linux的朋友来说,会有各种不习惯和各种昏头,文件的权限就很让人不知所措。

ls命令以及字段含义

比如我们列出当前目录文件:
linux的文件权限小结

我们来看下上述大致含义:

  • 第1行显示的信息: 总用量(total) - 这个数值是该目录下所有文件及目录列表第5个字段的和(以k为单位),也就是该目录的大小。
  • 第1字段:文件属性字段,文件属性字段总共有10个字母组成
  • 第2字段:文件硬链接数或目录子目录数
  • 第3字段:文件拥有者
  • 第4字段:文件拥有者所在的组
  • 第5字段:文件文件大小(以字节为单位)
  • 第6字段:文件创建月份
  • 第7字段:文件创建日期
  • 第8字段:文件创建时间
  • 第9字段:文件名 (如果是一个符号链接,那么会有一个 "->" 箭头符号,后面根一个它指向的文件)

文件属性含义
我们来看看红色标注的文件属性字段“drwxr-xr-x”的含义:
linux的文件权限小结

  • 第一位档案类型:“-”表示普通文件;“d”表示目录;"l"表示符号链接,“c”表示字符设备,“b”表示块设备,"c"和"b"两者对应的是外部I/O设备,比如键盘、硬盘,块设备是指一次可以读取某一位置的一块数据设备如硬盘,而字符设备只能一个个以确定的顺序读写内容如串口、键盘;“f”表示FIFO即命名管道;“s”表示socket;
  • 后面的九位分别表示拥有者(user)、群组(group)和其他人(other)三者对应的权限:r(read)可读、w(write)可写和x(excute)可执行;

所以我们不难理解“drwxr-xr-x”的含义了:是目录类型,拥有者具有读写执行权限,所属于群组具有读执行权限,其他人具有读执行权限。

使用chmod命令改变文件权限

chmod的用法如下:

chmod [OPTION]... MODE[,MODE]... FILE...

OPTION选项有:

  • -c : 若该档案权限确实已经更改,才显示其更改动作
  • -f : 若该档案权限无法被更改也不要显示错误讯息
  • -v : 显示权限变更的详细资料
  • -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
  • --help : 显示辅助说明
  • --version : 显示版本

MODE的格式:

[ugoa]*([-+=]([rwxXst]*|[ugo]))+

可以归纳为

[who][opcode][permission]

  • who:u表示该档案的拥有者,g表示与该档案的拥有者属于同一个群体(group)者,o表示其他以外的人,a表示这三者皆是;
  • opcode:+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限;
  • permission:r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行;

例如我们给拥有者取消写的权限命令

chmod u-w test/

而r、w和x也可以分别用数字4、2、1来表示,所以下面的两个命令是等效的:

chmod u=rwx,g=rwx,o=rx test
chmod 775 test

分别用三个八进制来表示ugo,r(4)+w(2)+x(1)=7。

上一篇:基础DP的一些知识总结(未完成)


下一篇:Oracle 数据类型映射C#