Linux文件权限管理

Linux程序访问文件时的权限,却决于此程序的发起者

  进程的发起者,同文件的属主;则应用文件属主权限

  进程的发起者,属于文件属组;则应用文件属组权限

  应用文件“其他”权限

 

 

 1、文件权限说明

owner    属主,u
group    属组,g
other    其他,o

1.2设置文件的所有者chown

  chown命令可以修改文件的属主,也可以修改文件属组

  格式

chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...

  用法说明

OWNER                     只修改所有者
OWER:GROUP               同时修改所有者和属组
:GROUP                    只修改属组,冒号也可用 . 替换
--reference=RFILE         参考指定的属性,来修改
-R                        递归,系选项慎用,非常危险;

 

 

1.3.1对文件的权限

r    可使用文件查看类工具,比如cat,可以获取内容
w   可修改其内容
x    可以把此文件提请内核启动为一个进程,即可以执行。此文件的内容必须时可执行(例如:脚本文件等)

1.3.2对目录的权限

r    可以使用ls查看此目录中文件列表
w   可在此目录中创建文件,也可删除此目录中的文件,而和此被删除的文件的权限无关
x    可以cd进入此目录,可以使用ls -l 查看此目录中文件元数据(须配合r权限),属于目录的可访问的最小权限

数学法的权限

权限项 文件类型 执行 执行 执行
字符表示 d|l|c|s|p r w x r w x r w x
数字表示   4 2 1 4 2 1 4 2 1
权限分配  

文件所有者权限

(属主)u

文件所属组权限

(属组)g

其他用户权限o

八进制数字

权限 二进制 八进制
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7

例如

r w - r - - - - -   640
r w x r - x r - x   755

1.4修改文件权限chmod

格式

chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...

说明:

who:u,g,o,a(a包含全部:u,g,o)

opt:+,-,=

permission:r,w,x
修改指定一类用户的所有权限
u=  g=  o=  ug=  a=  u=,g=
修改指定一类用户某个或某个权限
u+  u-  g+  g-  o+  o-  a+  a-
-R:递归修改权限,一般用于修改目录

1.5ACL权限功能

  ACL:实现灵活的权限管理;除了文件的所有者

  

setfacl 可设置ACL权限

setfacl -m u:用户:权限   FLIENAME     #\\无视文件属主和属组,对用户在此文件的权限设置

getfacl 可查看设置的ACL权限

getfacl  FILENAME


setfacl -b FLIENAME                  删除所有用户在此文件的ACL权限


  mask 权限
  

mask只影响除所有者和other的之外的人和组的最大权限
mask需要与用户的权限进行逻辑与运算后,才能变成有限的权限(Effective Permission)
用户或组的设置必须存在于mask权限设定范围内才会生效

setfacl -m mask::rx file

 

 

1.6 设定文件特殊属性

  设置文件的特殊属性,可以访问root误操作删除或修改文件

  不能删除,改名,更改

chattr  +i   file      \\增加特殊权限
chattr  -i   file       \\删除对应特殊权限

  只能追加内容,不能删除,改名

chattr  +a   file       \\增加特殊权限
chattr  -a   file        \\增加特殊权限

  显示特定属性

lsattr

 作业练习

5、创建用户user1、user2、user3。在/data/下创建目录test

(1)、目录/data/test属主、属组为user1

 

 

(2)、在目录属主、属组不变的情况下,user2对文件有读写权限

设置ACL权限

 

 对test目录访问,目录下读写文件

 

 

(3)、user1在/data/test目录下创建文件a1.sh, a2.sh, a3.sh, a4.sh,设置所有用户都不可删除1.sh,2.sh文件、除了user1及root之外,所有用户都不可删除a3.sh, a4.sh

 

 

 
设置所有用户不能删除a1.sh, a2.sh
  
除了user1及root之外,所有用户都不可删除a3.sh, a4.sh


-rw-rw-r--. 1 user1 user1 0 Apr 10 16:58 a3.sh -rw-rw-r--. 1 user1 user1 0 Apr 10 16:47 a4.sh 其他用户的权限是 r-- user3 本就没有执行权限,无法做删除操作。不做修改
user1:a3.sh, a4.sh文件,属主和主组都是user1 ,都有读写权限,可以删除

root管理员:root拥有所有用户文件最高权限a3.sh, a4.sh 也没有chattr特殊权限。可以删除

user2对test目录有ACL权限,user2有权限删除,a3.sh, a4.sh

解决方法 去除 user2 ACL的写权限mask权限是ACL权限的上限修改mask权限为rx,user2的ACL
权限同步mask权限,没了 w 读权限

 

 

(4)、user3增加附加组user1,同时要求user1不能访问/data/test目录及其下所有文件

 

 

(5)、清理/data/test目录及其下所有文件的acl权限

 

posted @ 2022-04-15 17:39  goodbay说拜拜  阅读(159)  评论(0编辑  收藏  举报