Linux之文件权限
介绍Linux文件权限的概念以及操作
文件权限
Linux为每个文件都维护了一组文件权限,权限分为三种:读、写、执行。对于不同的文件类型,权限含义不同,如下
-
普通文件(非目录):读权限允许用户读取该文件,写权限允许用户写该文件,执行权限允许用户执行该文件。对于不可执行的文件来说,执行权限没有用。权限可以结合使用,例如,修改文件需要读写权限,允许脚本需要读和执行。
-
目录:读权限允许用户读取目录中的文件名,写权限允许用户修改目录,执行权限允许用户搜索目录。
还有一个特殊的权限setuid
,它可以让普通用户以root权限,例如passwd程序。
root用户可以无视权限
查看文件权限
使用命令ls -l
可以查看文件的权限,输出示例如下
total 8
drwxr-xr-x 2 root root 4096 Jan 12 21:56 blank
-rw-r–r-- 1 root root 8 Jan 12 21:43 temp3
其中第一个字符右边的9个字符就是文件权限,每3个一组,分别表示属主、组成员、其他用户的读、写、执行权限
r
:读权限w
:写权限x
:执行权限-
:没有该位置的权限
例如:rwxr-xr-x
说明文件属主有读、写、执行权限,组成员有读和执行权限,其他用户有读和执行权限。
组
在Linux中,每个用户都属于一个主组,还可以属于多个辅组。可以使用id
来查看自己属于哪个组。id
命令的输出如下
uid=0(root) gid=0(root) groups=0(root)
但是目前组用的不太多,所以通常组的权限和其他用户是一样的。
修改文件权限chmod
Linux使用三位数字来表示一个文件的完整权限,这三个数字称为文件模式,简称模式。
文件模式使用二进制来表示,有权限为1,没权限为0。
例如对于权限rwx r-x r--
,可以表示为111 101 100
,将其转为十进制得到754
,754
就是这个文件的模式。
当修改文件权限时,可以使用命令chmod
,语法为
chmod mode file…
其中mode
为要修改成的文件模式,file
为要修改的文件,例如
chmod 751 blank temp3
新文件的权限
Linux根据文件类型的不同,会有不同的文件初始模式:
- 不可执行普通文件:666
- 可执行普通文件:777
- 目录:777
当Linux在创建文件时,会将初始模式-用户掩码作为新文件的权限。
例如,你的用户掩码是022
,那创建可执行普通文件时,模式为755
,即除自己外其他用户没有写权限。
修改和查看用户掩码可以使用命令umask
,语法为
umask [mode]
其中mode
为要修改成的用户掩码,例如 umask 077
,这是最保险的掩码,其他用户没有任何权限(除了root用户)
使用无参的umask
可以查看自己当前的用户掩码