文件权限

组成结构

-rwxr-xr--

第一个字符表示文件的类型:

  • -:文件,如文本文件、二进制文件等。
  • d:目录。
  • l:符号链接,Symbolic link (Soft link)。
  • b:块设备,如硬盘、光盘等。
  • c:字符设备,如终端设备、键盘等。
  • p:管道,进程间通信。
  • s:套接字,网络通信,进程间数据交换。

后面的字符 3 个为一组(r=可读、w=可写、x=可执行),分别对应:

类别权限描述
拥有者rwx可读/可写/可执行
用户组r-x可读/不可写/可执行
其它人r--可读/不可写/不可执行

目录的可执行权限

和文件的可执行权限一样,如果要对目录进行操作,目录也必须有可执行权限。

cd /home
ls /home

如果没有可执行权限,上面的命令会执行失败。

Umask

创建一个文件或目录时,系统会使用 umask 的值来计算文件的权限。

umask
0002
  • 第一位:特殊模式,这里不展开。
  • 第二位:Owner,拥有者。
  • 第三位:Group,组。
  • 第四位:Others,其它人。

全权限

  • 新文件:666(默认不需要执行权限)。
  • 新目录:777(目录都需要执行权限)。

权限计算

权限 = 全权限 - umask

  • 文件:666 - 002 = 664
  • 目录:777 - 002 = 775

umask 是掩码,代表不想授予的权限。

chmod

修改文件权限的命令。

chmod - change file mode bits

八进制模式

chmod 755 file
-rwxr-xr-x 1 kuga kuga   16 Aug 23 11:08 file

字符模式

u 代表用户:给用户添加执行权限。

chmod u+x file

g 代表组:给组去掉写权限。

chmod g-w file

o 代表其它人:给其他人添加读权限。

chmod g+r file

a 代表上面 3 个:给所有人添加执行权限。

chmod a+x file

chown

修改文件的拥有者和组。

chown - change file owner and group

更改所有者

chown user file

递归更改所有者

chown -R user dir

更改所有者和组

chown user:group file

递归更改所有者和组

chown -R user:group dir

只更改组

chown :group file

chgrp

chgrp - change group ownership
chgrp group file