|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
- K6 c. J& C' x: y9 i" uacl库- b2 J4 H4 G" t, v9 \, L, U* s3 w7 b
作用:限制Linux某用户的访问权限
! j. k$ ]* x# l8 Z; a/ b& C5 a+ U& i) Q- \5 n( i
acl库的安装
4 s7 c; L) E2 F m" P) r首先github中下载acl代码:
; ?+ Z7 e1 z- e, E/ Ygit clone https://github.com/acl-dev/acl% n" V& v: Z: G
进入acl, 执行make4 {% |6 k; Q0 B. ]6 }+ J
cd acl 3 L" g7 \ M2 h
make% {1 {2 v% Y% @# k. g
注意: [因为acl是由c/c++编写的,需要提前安装好gcc, g++], |4 Z: _4 `2 ~0 u8 R* k, w( s& ^
7 r3 ^+ N7 {+ I) l; A6 F
安装到用户根目录:1 I1 m( F# }( J0 _% B7 y; E
make packinstall' t0 x. [. |- T
一般到这儿就能编译安装成功了,在/user/include/ 目录下会有acl-lib目录。# ^: o% }! I# f; n2 V. x$ |9 O
( l) {/ X. f& P# o4 d' v# T- U如果是centos系统,可直接安装
- I2 e7 _' T' u% ?$ A( c" V7 Qyum install zlib-devel, \& B/ ~2 J! M- i& d6 L* }
setfacl命令的基本用法! L. C7 x0 |' ?
1、setfacl的用途2 h* b) u5 `+ q7 u" y2 Q% W/ O8 ?
setfacl命令可以用来细分linux下的文件权限。
9 L6 s8 |" y4 F1 lchmod命令可以把文件权限分为u,g,o三个组,而setfacl可以对每一个文件或目录设置更精确的文件权限。
, a- Q& Y u) H换句话说,setfacl可以更精确的控制权限的分配。 _1 e! @- U( X3 E
比如:让某一个用户对某一个文件具有某种权限。
( z0 B* g) m8 f) _% w
- r6 O* F3 H) ^1 Q$ j" T这种独立于传统的u,g,o的rwx权限之外的具体权限设置叫ACL(Access Control List)
, O3 @& C8 V) f) }; KACL可以针对单一用户、单一文件或目录来进行r,w,x的权限控制,对于需要特殊权限的使用状况有一定帮助。
7 U) r) G* `3 A如,某一个文件,不让单一的某个用户访问。3 g) H5 I. Z; _7 h1 t1 T7 `3 ^- J0 {
9 G, ~3 F% K. t9 p; i9 }2、setfacl的用法
6 H) J8 s! q$ I7 h9 ^% _4 W2 G. a用法: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...' `3 n+ r- J. g( _8 G/ K) x
-m, --modify-acl 更改文件的访问控制列表
' ~7 r; b, S3 Z4 V9 @& H. [-M, --modify-file=file 从文件读取访问控制列表条目更改* L5 U3 U% z; g- t: h
-x, --remove=acl 根据文件中访问控制列表移除条目
+ G( @/ B) [& {) g-X, --remove-file=file 从文件读取访问控制列表条目并删除; L7 m! m. b y: i: b3 W" u9 Z
-b, --remove-all 删除所有扩展访问控制列表条目; F0 k S) c m0 ?" Y! i s' a' e
-k, --remove-default 移除默认访问控制列表: \0 C* p& |* o$ g9 W7 R6 L
--set=acl 设定替换当前的文件访问控制列表' L7 n8 O; C4 i X9 t. U
--set-file=file 从文件中读取访问控制列表条目设定
9 y: X5 ^- I. w! A% I1 _ --mask 重新计算有效权限掩码/ R) H. {# ~2 d5 ?2 S9 R4 Y% h
-n, --no-mask 不重新计算有效权限掩码
9 c2 _+ n! @! ^7 I0 y1 j-d, --default 应用到默认访问控制列表的操作: ~* {& ]9 o. i, l# j7 [- t" y
-R, --recursive 递归操作子目录& Y. V4 M% M! p2 \& P; n. t
-L, --logical 依照系统逻辑,跟随符号链接
# J3 V2 v% O( v$ h-P, --physical 依照自然逻辑,不跟随符号链接, v4 ]* C: [; W- Z
--restore=file 恢复访问控制列表,和“getfacl -R”作用相反
6 E' L+ [) C# z9 W1 u- B --test 测试模式,并不真正修改访问控制列表属性4 [7 D1 U" G9 C
-v, --version 显示版本并退出6 M. Q# h3 B" x
-h, --help 显示本帮助信息
% a, S% J0 G8 N" J6 U" r, Q- I5 J3、几个例子3 u4 S/ E j, G; R( ]9 o
查看mysql-5.5.32安装目录的acl! H. H8 E6 ^" y( E
: a8 O$ ~1 Q4 N+ g# s1 h% _查看. M* U( l" ]. _0 l& ~
[root@localhost software]# getfacl mysql-5.5.32
/ L& `# @9 c! Z" L# Y8 V+ n4 J# file: mysql-5.5.32% \: ], ~! _. z+ e( T1 A; I
# owner: mysql
& r- o; l }" M' W% c# group: mysql
2 ?* x: R8 z3 s- D+ L" Luser::rwx" q3 ?+ {5 W, G3 m
user:mysql:r-x
. F/ O. s' g0 r* N& qgroup::r-x
+ D; F+ b8 k' X3 U; Q# Jgroup:mysql:r-x
5 G2 C# O: }% e. R9 p! B& Omask::r-x1 D1 l o7 m5 _
other::r-x8 E4 C) y8 d0 v$ {
修改8 c6 k. t, C3 V$ d# E4 h+ G
设置默认用户,读,写,可执行4 ?* }# a' u( C- Y+ O
[root@localhost ~]# setfacl -m u::rwx test % m8 u6 Q- b, b% Q, ~9 t" G, m8 c# I9 D
修改文件的acl权限,添加一个用户权限5 e% {% ~# b% ~; P# B! Q
[root@localhost ~]# setfacl -m u:mmzs:rw- test : b6 k8 ^: @- a8 N% z
添加一个组
% z) M# H, `9 x% r: \: D[root@localhost ~]# setfacl -m g:mmzsit:r-w test
5 p, `* H) E5 C+ ]+ O. n4 d" h l5 j给mmzs用户向test文件增加读和执行的acl规则; d7 Y! t# ^ F3 e, F# z$ `6 C
[root@localhost ~]# setfacl -m u:mmzs:rx test & R9 R5 b: W/ U, q
给mmzsit用户向test文件增加读和执行的acl规则
: a: w& r" w, ]. ^# e9 i* q4 s) _[root@localhost ~]# setfacl -m u:mmzsit:rx test 1 a- A% H& u- }& a
移除
Z G5 Q: w$ \移除mysql-5.5.32目录的root组和root用户的acl规则
- M* K' o! S: x[root@localhost software]# setfacl -R -x g:root /software/mysql-5.5.32/
/ Y( n; |, ]& x1 |( n[root@localhost software]# setfacl -R -x u:root /software/mysql-5.5.32/6 M+ z+ V% F& Y3 p& t( Y+ {+ `
清除tank用户,对test文件acl规则0 \5 I9 e2 b/ y" b
[root@localhost ~]# setfacl -x u:mmzs test
. ?( F8 K# P% Y2 s/ n清除所有acl9 _8 u3 a) r- @6 d6 K, X, K8 N
[root@localhost ~]# setfacl -b test
* d9 f- V6 ~ I说明事项:' m/ F* Q) z0 O0 c* \
设置组的话只需要把setfacl -m u::rwx 中的u改为g即可,大致差不多。
/ j# ~( X& H* W' s5 E7 z- U# ^+ J$ @# I' k+ u: B+ H# h8 {
设置mask的话,setfacl -m u::rwx 中的u改为m,并且这个可不针对用户和组哦,其他的大致差不多。: v8 W- T' l- d3 a$ Y; l
, P/ J! [& p- o4 s# W
在使用-R时,记得放在-m前面,否则不可以地* F6 T: S; A- X s+ D# W
1 m3 H; s; [: c( Z1 V
使用-d的话,就会把默认的都加上去,针对目录哦。 |
|