我们知道,在我们使用Windows系统时,用户对文件夹或文本文件有一定的权限,如完全控制、修改、读取和执行、列出文件夹内容、读取、写入等。无独有偶,Linux操作系统中也存在权限问题,大家来跟小生看一下吧。
灰色:文本 |
绿色:可执行文件 |
红色:压缩文件 |
蓝色:目录 |
浅蓝色:软连接 |
蓝底白字:硬链接 |
文件类型问题:
-:文本 |
d:目录 |
l:链接文件 |
字母数字表示权限:
权限 |
读 |
写 |
执行 |
读 |
写 |
执行 |
读 |
写 |
执行 |
字符 |
r |
w |
x |
r |
w |
z |
r |
w |
z |
数字 |
4 |
2 |
1 |
4 |
2 |
1 |
4 |
2 |
1 |
分配 |
所有者(u):user |
所属组(g):group |
其他用户(o):other |
下面我们来看一下相关命令的使用吧。
1. chmod:修改文件或目录的权限。
格式(1): chmod [u、g、o、a] [+、-、=] [r、w、x]
格式(2): chmod nnn(数字) 文件或目录
-R:递归修改指定目录下所有子文件目录的权限。
2. chown:修改文件或目录的归属。
格式(1): chown 属主 文件或目录(只修改属主)
格式(2): chown :属组 文件或目录(只修改属组)
格式(3): chown 属主:属组 文件或目录(属主和属组都修改)
-R:递归修改指定目录下所有子文件目录的权限。
3. 附加权限:
1) SET位权限:将文件或目录中的可执行权限(“x”)替换为(“s”),对象为属主或属组。
作用:其他用户执行该文件时,将拥有属主或属组用户的权限。
类型:
i. SUID:属主位SET位权限。(4)
i. chmodu+s,g+s 文件或目录
ii. chmod 6nnn文件或名称
2) 粘滞位权限:为公共目录(权限:777)设置,将其他用户的可执行权限(“x”)替换为(“t”)。
作用:用户不能删除该目录中其他用户的文件。
格式:
i. chmod o+t文件或目录
ii. chmod 1nnn文件或目录(添加粘滞位权限)
iii. chmod 0nnn文件或目录(撤销粘滞位权限)
4. 文件ACL权限:
1) 概述:当文件所有者、所属组、其他用户不满足条件时(不够)为用户单独设定权限。类似于Windows下的单独为用户提供权限。
2) 命令:
i. df:查看磁盘使用情况。
ii. dumpe2fs-h /dev/sda1:查看分区是否开启ACL权限。
iii. mount -oremount,acl:临时挂载加入ACL权限。
v. getfacle:查看ACL命令。
格式:getfacle 文件名
vi. setfacle:设置ACL权限。
格式:setfacle 选项 [u、g、o] :用户:权限 文件名
setfacle -m:设定ACL权限。
setfacle -x:删除指定ACL权限。
setfacle -b:删除所有ACL权限。
setfacle -d:设定默认ACL权限。
setfacle -k:删除默认ACL权限。
setfacle -R(放置在权限后):递归设定ACL权限。
3) ACL最大权限:与mask有关,分配的权限与mask相与(与运算)所得到的结果才是真正拥有的权限。
与运算表(以r为例):
mask |
分配的权限 |
最终权限 |
r |
r |
r |
r |
- |
- |
- |
r |
- |
- |
- |
- |