1.权限管理

3种基本权限

代表字符 权限 对文件的含义 对目录的含义
r 读权限 可以读文件的内容 可以列出目录的文件列表
w 写权限 可以修改文件 可以在该目录中创建,删除文件
x 执行权限 可以执行该文件 可以使用cd切进目录

linux基本权限位含义

权限位 含义
1 文件类型
2-4 文件所属主的权限
5-7 文件所属组的权限
8-10 其他用户权限

当某用户访问系统中的某文件时:
(1.)若访问的uid与文件的UID匹配,应用用户user权限。

(2.)否则,若访问者的GID与文件的GID匹配,应用群组group的权限。

(3.)如果都不匹配,应用其他用户other权限。

更改权限操作

格式:`chmod[ugoa][+-=][rwxugo]<文件名/目录名>

第一个选项表示要赋予权限的用户

选项 说明 选项 说明
u 表示属主user o 表示其他用户
g 表示所属组用户group a 表示所有用户all

第二个选项表示要进行的操作

选项 说明 选项 说明
+ 增加权限 = 分配权限,同时将原有权限删除
- 删除权限 —— ——

第三个选项是要分配的权限

选项 说明 选项 说明
r 允许读取 u 和属主的权限相同
w 允许写入 g 和所属组用户权限相同
x 允许执行 o 和其他用户的权限相同

格式:chmodn1n2n3<文件名/目录名>

r:4 w:2 x:1

更改属主和同组人

格式:chowm[-R]<用户:组><文件/目录>

设置文件和目录的生成掩码

默认的生成掩码使得创建一个新文件或目录时不应该赋予它的权限。

格式:umask[-S][u1][u2][u3]

u1:不允许属主的权限

u2:不允许同组人有的权限

u3:不允许其他人有的权限

eg:

1
2
3
4
umask      #查看默认的掩码值
0022
umask -S #默认掩码值情况下新建文件的权限分配
u=rwx,g=rx,o=rx

特殊权限设置

1.SUID、SGID和syicky-bit

文件的特殊权限说明:

特殊权限 说明
SUID 以该文件所有者的身份运行,而不是命令执行者的权限。无论谁来执行,都是文件所有者的权限,任意存取该文件拥有者能使用的全部系统资源。
SGID 以该文件所属组的身份运行,而不是命令执行者的权限。无论谁来执行,都是文件所属组的权限,任意存在整个组能使用的系统资源。

目录的特殊权限说明:

特殊权限 说明
SGID 在目录中创建以及其他文件被复制到该目录时,其所有组都会被重设为和该目录一致。除了复制时加上-p 保留文件属性参数。
stick-bit 存放在该目录的文件仅准许其所属主执行删除、移动等操作。

2.SUID、SGID和stick-bit的表示

SUID占用属主的x位置来表示的,SGID是占用组的x的位置来表示的,stick-bit是占用其他人的x位置来表示的。

字符设定:

相应位置上s、t参数设置

数字设定:

SUID s:4 SGID s:2 stick-bit t:1

eg:

1
2
3
4
5
6
chmod u+s 1.txt  为1.txt文件设置SUID权限
chmod g+s 1.txt 为1.txt文件设置GUID权限
chmod o+t /usr/bin 为/usr/bin设置stick-bit权限
chmod 4755 1.txt
chmod 2755 /usr/bin
chmod 1755 /usr/bin

使用ACL权限

UGO:传统的UNIX/linux设置权限的方式

ACL:访问控制表

  • 存取ACL,针对文件和目录访问控制列表、
  • 默认ACL,只能针对目录设置。

使用setfacl设置ACL权限

格式:setfacl[-R]{-m|-x}<rules><files/directory>

选项 说明
-R 对目录进行递归操作
-m 修改ACL权限
-x 删除ACL权限
<rules> 指定ACL规则
[d:]u:uid:perms: 为指定的用户设置ACL权限
[d:]g:gid:perms: 为指定的组设置ACL权限
[d:]o:[:]perms: 为其他用户设置ACL权限
[d:]m:[:]perms: 设置有效的访问掩码

使用d:前缀时用于设置默认ACL(d:只能对目录设置)
perms为r、w、x、-或其组合

eg:setfacl -m u:chen:rwx 1.txt

使用getfacl查看ACL权限

格式:getfacl<file/directory>

若目录已经设置了默认的ACL,新建的文件从其目录继承默认ACL。

使用mv、cp -p操作文件是将保持ACL设置。


未完待续……

人们只愿看到自己想看到的一切,分不清是非对错,黑白颠倒。–Hades