Linux文件系统权限管理基础知识

一 .权限对象

  1. owner: 文件拥有者
  2. group:用户组
  3. others:非文件拥有者,或者是用户组以外的人,其他人.

二. 权限类型 rwx

[root@xiaoagiao tmp]# ls -l
total 12
-rw-r--r--. 1 root root  886 Mar  1 00:20 ac
-rw-r--r--. 1 root root    0 Mar  7 04:47 file1
-rw-r--r--. 1 root root    0 Mar  7 04:47 file2
-rw-r--r--. 1 root root  886 Mar  1 00:20 fstab
drwx-w-r-x. 3 root root 4096 Mar  9 00:46 log

例如 :rw-r–r--r-- (一共九位)
每三位为一组:

  • 前三位:属主
  • 中间三位:属组
  • 后三位 : 其他人

三. rwx

1. 对于文件而言

  • r:可以获取文件的数据
  • w:可以修改文件的数据
  • x:可以将此文件运行成为进程

2. 对于目录而言

  • r:可以使用ls命令获取目录下的文件列表
  • w:可以修改此目录下的文件列表,可以创建或者删除文件
  • x:可以cd到此目录下,并且可以使用ls -l来获取文件的详细属性信息

3. rwx可用数字代表

  • r : 4 (读)
  • w :2(写)
  • x :1(执行)

文件权限判断逻辑

  • 文件的创建与删除—>(文件所在目录有W权限)
  1. 判断用户的身份,用户以什么身份去删除文件,owner—>group—>others
  2. 如果是目录的属主:目录权限位的左三位需要有w权限,若有则成功,无则失败
  3. 如果不是目录的属主,是属组,目录权限位中三位需要有w权限,若有则成功,无则失败
  4. 如果不是目录属于其他人,目录权限位中三位需要有w权限,若有则成功,无则失败
  • 文件内容的增加与删除—>(文件本身需要有w权限)
  1. 判断用户身份。

  2. 对应权限,如果有则成功,无则失败。


四.权限管理类命令

1. chmod

  • 三类用户 (字母u,g o a 代表)
    u:属主
    g:属组
    o:其他人
    a:所有

  • 赋权表示法:rwx
    u=
    g=
    o=
    a=

chmod u=r-x file  //文件file属主权限改为r-x
chmod g=--x file  //文件file属组权限改为--x
chmod o=rwx file  //文件file其他人权限改为rwx
chmod a=rwx file  //文件file所有权限改为rwx
  • 授权表示法
    u+,u-
    g+,g-
    o+,o-
    a+,a-
chmod u+r file  //文件file属主权限有r权限
chmod g+w file  //文件file属组权限有w权限
chmod o+x file  //文件file其他人权限有x权限
chmod a+r file  //文件file所有权限有r权限
  • -R,递归修改
chmod  -R 777 file //file目录下所有文件的权限改为777。
chmod -R u=rwx file //file目录下所有文件属主权限改为rwx。

2.chown修改文件的属主或属组

chown owner : group file

chown  owner : group file //file文件的属主改为owner,属组改为group。

chown owner file

chown owner file//file文件的属主改为owner。

chown :group file

chown :group file //file文件的属组改为group。

chown -R owner : group file

chown -R owner : group file //file目录下所有文件的属主改为owner,属组改为group。

3.chgrp修改文件属组

chgrp jerry file

chgrp jerry file //file文件的属组改为jerry。

只有管理员用户可以修改文件或目录的属组,属主和其他人


五. 进程的安全上下文

  • 进程对文件访问权限的应用模型
  1. 进程的属主,与文件的属主是否相同,如果相同,则应用属主权限
    否则,检查进程的属组是否和文件的属组相同,如果相同,则应用属组的权限
    否则,使用other权限。
  2. 将一个文件运行成为一个进程,取决于用户是否对这个文件有x权限,可执行权限

六 ,ALC访问控制列表

定义: ACL(Access control list),即访问控制列表,它是一系列规则的集合,ACL通过这些规则对不同的报文分类,进而对不同的报文进行不同的处理。

要查看acl列表可以使用: getfacl filename

[root@xiaoagiao file3]# getfacl aa
#file: aa
#owner: root
#group: root
user::rw-
group::r--
other::r--
  • 显示的数据前面带 # 的表示是文件的默认属性,一二三行就是这个文件的默认属性;
  • 第四行用户名栏是空的这代表该文件所有者的权限;
  • 第五行用户组栏是空的,这代表该文件的所属用户组的 权限;
  • 第六行表示该文件的其他人权限。

acl列表的管理

setfacl

选项:

-m 配置acl
-x 删除指定的匹配规则
-b 关闭在该文件上开启的acl列表,同时删除所有的acl参数
-R 递归操作
  • -m–>setfacl -m u:user1:rwx file
[root@xiaoagiao file3]# getfacl aa
#file: aa
#owner: root
#group: root
user::rw-
group::r--
other::r--

[root@xiaoagiao file3]# ll -l aa
-rw-r--r--. 1 root root 0 Mar 12 05:00 aa
[root@xiaoagiao file3]# setfacl -m u:user1:rwx aa
[root@xiaoagiao file3]# ll -l aa
-rw-rwxr--+ 1 root root 0 Mar 12 05:00 aa
//权限最后出现了加号,代表开启了acl。

[root@xiaoagiao file3]# getfacl aa
#file: aa
#owner: root
#group: root
user::rw-
user:user1:rwx  //针对user这个用户的权限是rwx,它就是我们通过setfacl 命令设置的  acl 规则
group::r--
mask::rwx  //表示此文件的权限閥值,即 所设置的用户和组的权限必须在mask所定的权限最大值以内才会生效
other::r--
  • setfacl -m g:jerry:rwx file.acl
    指定jerry这个组的用户对file.acl这个文件有rwx的权限.
  • setfacl -x u:user1 file
    —>删除指定的用户user1 的匹配规则
[root@xiaoagiao file3]# getfacl aa
#file: aa
#owner: root
#group: root
user::rw-
user:user1:rwx   //删除指定的用户user1 的匹配规则
group::r--
group:jerry:rw-
mask::rwx
other::r--

[root@xiaoagiao file3]# setfacl -x u:user1 aa
[root@xiaoagiao file3]# getfacl aa
#file: aa
#owner: root
#group: root
user::rw-
group::r--
group:jerry:rw-  //指定组的匹配规则并没有改变。
mask::rw-
other::r--
  • setfacl -x g:jerry file.acl
    —>删除指定组的acl匹配规则。
  • setfacl -b file.cal
    —>关闭在该文件上开启的acl列表,同时删除所有的acl参数
[root@xiaoagiao file3]# getfacl aa
#file: aa
#owner: root
group: root
user::rw-
user:user1:rwx
group::r--
group:jerry:rw-
mask::rwx
other::r--

[root@xiaoagiao file3]# setfacl -b aa
[root@xiaoagiao file3]# getfacl aa
#file: aa
#owner: root
#group: root
user::rw-
group::r--
other::r--
//关闭在该文件上开启的acl列表,同时删除所有的acl参数

  • setfacl -m d:g:user1 dic.acl
    —>针对目录指定acl,目录下新建的文件将继承目录的acl匹配规则。
[root@xiaoagiao file3]# setfacl -m d:u:user1:rwx dic
[root@xiaoagiao file3]# getfacl dic
#file: dic
#owner: root
#group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:user1:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

[root@xiaoagiao file3]# cd dic
[root@xiaoagiao dic]# touch ad
[root@xiaoagiao dic]# getfacl ad
#file: ad
#owner: root
#group: root
user::rw-
user:user1:rwx                  #effective:rw-
group::r-x                      #effective:r--
mask::rw-
other::r--
//新建的文件中自然会有目录的acl规则。

七, 特殊权限

SUID:

  • 只对二进制程序有效。
  • 程序需要具有可执行权限。
  • 只在执行程序过程中有效(进程)。
  • 执行者拥有属主权。

表现 :属主权限的x变为s。

[root@xiaoagiao dic]# ls -l
total 4
-rw-r--r--. 1 root root 0 Mar 12 20:12 ad

[root@xiaoagiao dic]# chmod u+s ad  //给ad文件的属主权限赋予s权限。

[root@xiaoagiao dic]# ll -l
total 4
-rwSr--r--. 1 root root 0 Mar 12 20:12 ad
//属主权限。X出变为s。
//当程序成为进程时,执行者拥有属主权限。

SGID

  • 只对二进制程序有效。
  • 执行者将拥有属组权限。
  • 程序需要有可执行权。
  • 主要作用于目录,目录下创建新的文件,新的文件数组与目录属组权限相同。
[root@xiaoagiao file3]# ll -l dic
total 4
-rw-r--r--. 1 root root 0 Mar 12 20:12 ad
[root@xiaoagiao file3]# chmod g+s dic
[root@xiaoagiao file3]# ll
total 4
drwxr-sr-x. 2 root root 4096 Mar 12 20:12 dic
//属组权限的执行权限变为s。

SBIT

  • 只对目录有效。
  • 用户在此目录下创建的文件只有所属用户和root可删除。
[root@xiaoagiao file3]# chmod o+t dic
[root@xiaoagiao file3]# ll
total 4
drwxr--r-t. 2 root root 4096 Mar 12 20:49 dic  
//其他人权限的执行权限变为t。
//该目录下创建的文件只有所属用户和root可删除。


你可能感兴趣的:(linux学习笔记(基础知识))