Linux文件权限
Linux文件的权限用16位的域来表示。最高4位表示文件类型,接下来3位是修饰位,剩下的9位是访问权限位。
4位的文件类型 | 3位修饰位 | 9位访问权限位 |
4位文件类型:
文件类型 | 符号常量 | 掩码(8进制) | POSIX |
---|---|---|---|
所有文件类型 | S_IFMT | 0170000 | N |
套接字文件 | S_IFSOCK | 0140000 | N |
符号链接文件 | S_IFLNK | 0120000 | N |
普通文件 | S_IFREG | 0100000 | N |
块设备文件 | S_IFBLK | 0060000 | N |
目录文件 | S_IFDIR | 0040000 | N |
字符设备文件 | S_IFCHR | 0020000 | N |
FIFO文件 | S_IFIFO | 0010000 | N |
3位修饰位:
3位修饰位分别是setuid,setgid,sticky bit。
9位访问权限位:
9位权限位共分三组,分别表示user,group,other三种用户对该文件或目录的访问权限。
如果是文件,每种用户用3位来表示读,写,执行三种权限,即r,w,x。
如果是目录,每种用户用3位来表示读本目录中的文件名,写信息到目录中,搜索目录三种全选。
比如,要user要访问某个目录则必须具有读权限和搜索目录权限,只有读权限而没有搜索目录权限,是不能cd进该目录的和访问目录中的文件。
如果有写权限,则可以创建、删除或修改目录下的任何文件或子目录。
修改文件或目录的owner,用命令chown,修改文件或目录的group,用命令chgrp,修改文件或目录的权限,用命令chmod。
只有文件或目录的所有者或者超级用户才能修改文件或目录的权限。