Linux基础之权限管理

在Linux中,权限管理是通过文件系统中的权限位来实现的。

通用权限的管理

每个文件或目录都有一个所有者、一个用户组和其他用户的权限设置。主要的权限包括读取、写入和执行。

文件权限包括读、写和执行权限:

  • 读权限(r):允许用户读取文件的内容或列出目录的内容

  • 写权限(w):允许用户修改文件的内容或在目录中创建、删除和重命名文件

  • 执行权限(x):允许用户执行文件,或允许用户进入目录

文件权限共有九个位,分为三组,每组三个位,分别为:

  • 所有者权限:指定文件所有者的权限

  • 所属组权限:指定文件所属组的权限

  • 其他用户权限:指定除所有者和所属组以外的其他用户的权限

数字权限表示法

---		000		0
--x		001		1
-w-		010		2
-wx		011		3
r--		100		4
r-x		101		5
rw-		110		6
rwx		111		7

三位二进制所对应的10进制数。

修改权限chmod

  1. 使用数字权限表示法:
chmod 755 filename

# 将文件的权限设置为755

即所有者具有读、写、执行权限,组用户和其他用户只有读和执行权限。

  1. 使用符号权限表示法:

使用 u g o a 分别代表 user group other all

使用 + - = 进行权限赋值

比如:

chmod u+x filename

# 将文件的所有者权限设置为可执行
chmod g-r filename

# 将文件的组用户权限设置为不可读
chmod o=rwx filename

# 将文件的其他用户权限设置为读、写、执行

扩展权限的管理

FACL (File Access Control List) 文件访问控制列表,更细粒度地管理文件和目录的权限。

ACL 权限分配:给指定的用户指定目录分配指定的权限

当设置扩展权限之后 . 会变成 +

setfacl 设定ACL权限
    -m 添加扩展权限	u:用户名 g:用户组名:权限字(rwx) 文件名
    -x 取消扩展权限	u:用户名 g:用户组名 文件名
    -b 还原扩展权限

getfacl 获取扩展权限列表
    getfacl 文件名

比如:

要为文件example.txt设置用户smileleooo的读取和写入权限

setfacl -m u:smileleooo:rw example.txt

特殊权限的管理

  1. Setuid(SUID): 当执行文件时,该文件将以所有者的身份而不是执行者的身份运行。
chmod u+s filename
  1. Setgid(SGID): 当执行文件时,该文件将以组的身份而不是执行者的身份运行。
chmod g+s filename
  1. Sticky Bit: 当应用于目录时,只有目录的所有者、文件的所有者和root用户才能删除目录中的文件。
chmod +t directory

权限掩码

umask 是一个位掩码,用于确定新建文件的默认权限。它指定了在创建新文件或目录时,系统将从权限中掩码掉的位。

umask 值是一个八进制数,表示为三位数字,每个数字代表了用户、组和其他用户的权限位掩码,其中 1 表示屏蔽,0 表示保留。

例如,如果umask值为022,则新建文件的默认权限为666(rw-rw-rw-)减去022,得到644(rw-r--r--)。

umask的设置会影响新建文件的默认权限,但不会影响现有文件的权限。 umask值越低,新文件的默认权限越高。


若有错误,欢迎指正!o( ̄▽ ̄)ブ

热门相关:无敌大佬要出世   全民女神,重生腹黑千金   不负荣光,不负你   帝少夜宠:小甜妻,乖!   绝色符师:龙皇的狂傲妃