Linux文件权限
在Linux终端下输入ls -al
,可以看到当前文件夹下文件的详细信息,其通常的形式为:
|
|
其中前10个字符-rwxr--r--
便代表着文件类型与权限。
第1个字符代表文件类型,
-
为文件,d
为目录,l
为链接,b
表示设备文件中的可随机存取装置(U盘、硬盘等),c
表示设备文件中的串行端口设备(鼠标、键盘等一次性读取装置)。接下来的9个字符,每3个为一组,均为
rwx
的组合。r
表示可读,w
表示可写,x
表示可执行,如果没有对应的权限,则对应位置为-
。
之所以会存在3组,是因为在Linux下文件的权限可分为文件拥有者的权限、文件所属群组的权限与其他人的权限。由于Linux系统是针对多用户设计的,这种分别是为了保证多用户场景下的数据安全。比如文件拥有者是小明,而小明是三年二班这个群组的班长,小明发布了一份公告文件,小明希望这份文件他自己可以查看和修改,所有班级成员都可以查看,但是其他班级的人不能够看到,则可以设置这个文件的权限为rw- r-- ---
,这样的话,便满足了要求。
文件权限修改
Linux下的文件权限是与使用者、群组相关的,系统提供了三个用来修改文件权限的命令:
chgrp
:改变文件所属群组;chown
:改变文件拥有者;chmod
:改变文件的读、写、执行权限。
改变群组chgrp
用法:chgrp [-R] FILE_OR_DIR
,其中-R
为进行递归变更,常用在变更目录内所有文件权限。
改变拥有者chown
用法与chgrp
类似:chown [-R] USER:GROUP FILE_OR_DIR
,可以同时修改拥有者和群组,比较方便。
改变权限chmod
权限的使用有两种方法,一种是利用数字类型改变文件权限,一种是利用符号类型改变文件权限。
对于数字类型改变权限,rwx
三者对应的数值为421
,因此3组权限可以用对应数值累加来计算权限,比如rwxr-xr--
便可以用数字表示为754
,因此设置权限为:
|
|
对于符号类型改变权限,3组权限可由ugo
分别代表user,group,others三种身份,此外a
代表全部身份;而rwx
则代表读写权限,因此设置权限为:
|
|
例如要设置一个文件权限为-rwxr-xr-x
,则可以为chmod u=rwx,go=rx FILE_OR_DIR
。此外,若不知道原先文件属性,只想增加每个人均可以写入的权限,则可以为chmod a+w FILE_OR_DIR
。
注意
对于文件来说,
w
权限代表可以编辑、新增或修改文件内容,但是不可以修改文件。对于目录来说,
w
权限代表可以新建、删除、重命名目录与文件(与该目录下的文件名异动有关);x
代表可以进入目录成为工作目录,若目录权限中只有r
而没有x
,则无法进入该目录。