一、文件权限结构
ll
查看某一个目录会得到一个7字段的列表。第一个字段是文件属性字段(eg: drwxr-xr-x
),文件属性字段总共10个字母:
第一个字符代表文件类型:
-:普通文件
d:目录dirtectory的缩写(目录或者是特殊文件,这个特殊文件存放其他文件或目录的相关信息)
l:链接文件。link(链接)的缩写,类似于windows下的快捷方式。
b:块设备文件(block),一般置于/dev目录下,设备文件是普通文件和程序访问硬件设备的入口,是很特殊的文件。没有文件大小,只有一个主设备号和一个辅设备号。一次传输数据为一整块的被称为块设备,如硬盘、光盘等。最小数据传输单位为一个数据块(通常一个数据块的大小为512字节)。
c:字符设备文件(character),一般置于/dev目录下,一次传输一个字节的设备被称为字符设备,如键盘、字符终端等,传输数据的最小单位为一个字节。
p:命令管道文件。与shell编程有关的文件。
s:sock文件。与shell编程有关的文件。
后面9个字母代表文件或目录权限位
三种权限:r表是读 (Read) 、w表示写 (Write) 、x表示执行 (execute) 。
其中,前3字母表示拥有者(owner,缩写u)权限,中间3字母表示所属组(group,缩写g)的其他用户权限,末3位表示除同组外其他用户(others,缩写o)权限。
每3位是一个二进制数,即权重依次为4 2 1,因此:
111表示数7,即用户拥有rwx权限
110表示数6,即用户拥有rw权限
101表示数5,即用户拥有rx权限
注意: 一般只对目录加执行权限x,文件不加执行权限(因文件具备执行权限有安全隐患),并且root账户不受文件权限的读写限制,执行权限受限制。
对于文件和目录来说,r,w,x有着不同的作用和含义:
针对文件:
r:读取文件内容
w:修改文件内容
x:执行权限对除二进制程序以外的文件没什么意义
针对目录:目录本质可看做是存放文件列表、节点号等内容的文件
r:查看目录下的文件列表
w:删除和创建目录下的文件
x:可以cd进入目录,能查看目录中文件的详细属性,能访问目录下文件内容(基础权限)
用户获取文件权限的顺序: 先看是否为所有者,如果是,则后面权限不看;再看是否为所属组,如果是,则后面权限不看。
二 chown
chown(英文全拼:change owner),用于设置文件所有者和文件关联组的命令,chown 需要超级用户 root 的权限才能执行此命令。hown更改每个给定文件的用户和/或组所有权。如果只提供了所有者(用户名或数字用户ID),则该用户将成为每个给定文件的所有者,并且不会更改文件组。如果所有者后跟冒号和组名(或数字组ID),且两者之间没有空格,则文件的组所有权也会更改。如果用户名后面有冒号,但没有组名,则该用户将成为文件的所有者,并且文件组将更改为该用户的登录组。如果给出了冒号和组,但省略了所有者,则只更改文件组;在这种情况下,chown执行与chgrp相同的功能。如果只给出一个冒号,或者如果整个操作数为空,则所有者或组已更改。
- chown 用户:组 -R 目录
- chown sl:sl -R ./test
注:不知道用户名和组名的可以用ll命令查看文件详情,再根据其他文件的用户和组参考着改
三 chmod
chmod 764 file
给file文件添加rwxrw-r–
权限chmod -R +X dir
给dir目录添加X执行权限,dir目录下文件不添加执行权限
(如果dir目录下有文件已具备执行权限,则添加该文件执行权限)