目录标题
- 文件权限
- 文件和目录的一般权限
- 文件的权限针对三类对象进行定义
- 文件和目录中,r、w、x的作用
- 设置文件和目录的一般权限
- 修改文件或目录的权限—chmod(change mode)命令
- 权限值的表示方法—使用3位八进制数表示
- 权限值的表示方法—使用字符串表示
- 修改文件或目录的属主和属组—chown(change owner)命令
- 文件和目录的特殊权限
- 设置ACL权限
- 给用户和用户组添加ACL权限
文件权限
文件和目录的一般权限
第1个字符:表示该文件的类型,其类型标识符和对应的文件类型。
标识符 | 文件类型 |
---|---|
d | 目录文件 |
- | 普通文件 |
l | 软链接文件 |
b | 块设备文件 |
c | 字符设备文件 |
p | 管道问价 |
s | 套接字文件 |
第2~4个字符:表示该文件的属主用户(文件的所有者)对该文件的访问权限。
第5~7个字符:表示该文件的属组用户(与属组用户同组的各成员用户)对该文件的访问权限。
第8~10个字符:表示其他所有用户对该文件的访问权限。
第11个字符:用来表示是否有一个可替换的访问控制措施应用在该文件上。ACL
文件的权限针对三类对象进行定义
owner 属主,缩写u
group 属组,缩写g
other 其他,缩写o
每个文件针对每类访问者定义三种主要权限
r:Read 读
w:Write 写
x:eXecute 执行
另外 X:针对目录加执行权限,文件不加执行权限
注:root账户不受文件权限的读写限制,执行权限受限制
文件和目录中,r、w、x的作用
权限 | 对文件 | 对目录 |
---|---|---|
r(读取) | 可以读取文件的内容 | 可以列出目录的内容(文件名) |
w(写入) | 可以更改文件内容 | 可以创建或删除目录中的任一文件 |
x(可执行) | 可以作为命令执行文件 | 可以访问目录的内容(取决于目录中的文件权限) |
设置文件和目录的一般权限
修改文件或目录的权限—chmod(change mode)命令
命令格式:
chmod [-选项] [ugoa] [+-=] [rwx] 文件或目录...
chmod [-选项] nnn 文件或目录...
ugoa ——表示权限设置所针对的用户类别,可以是其中字母中的一个或组合。
u(user)表示文件或目录的属主(所有者);g(group)表示属组内的用户;o(others)表示其他任何用户;a(all)表示所有用户(即u+g+o)。
±= ——表示设置权限的操作动作,+代表添加某个权限;-代表取消某个权限;=表示只赋予给定的权限,并取消原有的权限。
rwx ——用字符串形式表示的所设置的权限,可以是其中字母的一个或组合。
nnn ——用三位八进制数字表示的所设置的权限。
常用选项:
-R——递归修改指定目录下所有文件、子目录的权限。
权限值的表示方法—使用3位八进制数表示
权限值的表示方法—使用字符串表示
命令格式:
chmod [-R] {[ugoa][+-=][rwxst]} <文件名或目录名>
若通过r、w、x、s表示方式来更改权限,则只需在chmod命令中表达出权限需要改变的部分即可,该
方法可视为是相对修改法。
修改文件或目录的属主和属组—chown(change owner)命令
修改文件或目录的拥有者
命令格式:
chown [-选项] 新属主[:[新属组]] 被改变归属的文件和目录
修改文件或目录的属组
命令格式:
chown [-选项] :新属组 被改变归属的文件或目录
chgrp [-选项] 新属组 被改变归属的文件或目录
文件和目录的特殊权限
在linux系统中,除了一般权限,还有SUID、SGID、SBit三种特殊权限,用于对文件或目录进行更加灵活方便的访问控制。
- SET UID(SUID)
- SET GID(SGID)
- Sticky Bit(SBit,粘滞位)
u+s 可执行文件所属用户的强制位,作用让进程文件的所属用户不再属于发起者的身份,而是程序文件
自身的所属用户。
g+s 可执行文件所属组的强制位,作用让进程文件的所属组不再属于发起者的身份,而是程序文件自身
的所属组。
o+t 仅对目录生效 该目录下用户只能删除自己的文件不能删除别人创建的文件
设置ACL权限
命令格式:
getfacle 文件名 #查看ACL权限
setfacl 选项 文件名 #设定ACL权限
选项 | 作用 |
---|---|
-m | 设定ACL权限。如果是给予用户ACL权限,则使用"u:用户名 : 权限"格式赋予;如果是给予组ACL权限,则使用"g:组名 : 权限"格式赋予 |
-x | 删除指定的ACL权限; |
-b | 删除所有的ACL权限; |
-d | 设定默认ACL权限。只对目录失效,指目录中新建立的文件拥有此默认权限; |
-k | 删除默认ACL权限; |
-R | 递归设定ACL权限。指设定的ACL权限会对目录下的所有子文件生效; |
给用户和用户组添加ACL权限
给用户设定ACL权限
setfacl -m u:用户名 指定文件名
给用户组设定ACL权限
setfacl -m g:组名:权限 指定文件名