筆記整理開始2018年4月3日17:27:07mysql
本章內容:linux
解釋Linux的安全模型nginx
解釋用戶帳號和組羣帳號的目的git
用戶的組管理命令web
理解並設置文件權限redis
默認權限算法
特殊權限sql
ACLmongodb
介紹安全3Adocker
Authentication:認證
Authorization: 受權
Accouting|Audition:審計
本章主要介紹的內容爲認證和受權方面的內容
用戶user
令牌token,identiry
用戶經過帳號和口令登陸(認證)以後,系統會根據認證的帳號類型
發放不一樣的類型令牌(受權)。
用戶持令牌經過程序訪問文件,文件會審覈令牌類型判斷是否具備訪問
權限。
若在登陸過程當中作了權限變動,需從新登陸以後才能領取新的令牌。
Linux用戶:Username/UID
管理員:root,0
普通用戶:xx,1-65535
系統用戶:1-499,1-999(CentOS7)
對守護進程獲取資源進行權限分配
登陸用戶:500+,1000+(CentOS7)
交互式登陸
組group
Linux組:Groupname/GID
管理員組:root,0
普通組:
系統組:1-499,1-999(CentOS7)
普通組:500+,1000+(CentOS7)
安全上下文
Linux安全上下文
運行中的程序:進程(process)
以進程發起者的身份運行:
root:/bin/cat
hello:/bin/cat
進程可以訪問資源的權限取決於進程的運行者的身份
組的類別:
用戶的主要組(primary group)
用戶必須屬於一個且只有一個主組
組名同用戶名,且僅包含一個用戶,私有組(建立用戶時自動建立)
用戶的附加組(supplementary group)
一個用戶能夠屬於零個或多個附加組
用戶和組的配置文件
linux用戶和組的主要配置文件:
/etc/passwd:用戶及其屬性信息(名稱、UID、主組ID等)
/etc/group:組及其屬性信息
/etc/shadow:用戶密碼及其相關屬性
/etc/gshadow:組密碼及其相關屬性
passwd文件格式:
例:
root:x:0:0:root:/root:/bin/bash
hello:x:1000:1000:hello:/home/hello:/bin/bash
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
login name: 登陸名(hello)
passwd: 密碼(已移動到shadow文件,此地爲x)
UID: 用戶身份編號(1000,192...)
GID: 登陸默認所在組編號,主組
GECOS: 用戶全名或者註釋
home directory:用戶主目錄(/home/hello)
shell: 用戶默認使用shell
gshadow文件格式:
root:$6$vOrgaA175RBG06bP$A/WYhuPC6pFNEUBKm0xp5/0W8jwQZIGJJUQI5o
1aAQJtLRRW9J9h07ga5mcub4Tl7fL1MLdEH7ayTJsWCwMwN/::0:99999:7:::
systemd-network:!!:17617::::::
hello:$6$9t4/ZZJe$CKCzXlZJct4ryh9eAmr.ztf9SlnuuoQfFCtmEdKdbycAge
Wrv2xhAh0HF6KmRbKLSkcF70icUfysiycoOsbsB/:17623:0:99999:7:::
1.login name: 登陸名
2.encrypted password: 加密的密碼,類型、salt、密文
如今通常使用sha512加密
3.date of last password change:上一次修改密碼的時間,已1970-1-1以後
的天數表示
計算方法:echo `date +%s`/3600/24 |bc
4.minimum password age: 密碼的最小使用週期,即密碼修改以後
最少多少天以後能夠再次修改
0 表示隨時能夠更改
5.maximum password age: 密碼的最長使用週期,修改密碼以後多少
天以後必須再次修改密碼(過時)
99999,永不過時
6.password warning period: 密過過時以前幾天發出提示信息
7.password inactivity period: 過時以後多少天以內還能夠登陸
8.account expiration date: 從1970-1-1算起,多少天后帳號失效
9.空 預留位置
密碼加密
加密機制:
加密:明文-->密文
解密:密文-->明文
單向加密:哈希算法,原文不一樣,密文必不一樣
相同算法定長輸出,得到密文不可逆推出原始數據
雪崩效應:初始條件的微小改變,引發結果的巨大改變
md5:message digest,128bits,據說已被破解
sha1:secure hash algorithm,160bits
sha224:224bits
sha256:
sha384:
sha512:
密碼的複雜性策略
使用數字、大寫字母、小寫字母及特殊字符中至少3種
足夠長
使用隨機密碼
按期更換,不要使用最近曾經使用過的密碼
group文件格式:
root:x:0:
hello:x:1000:hello
kvm:x:36:qemu
group_name: 羣組名稱
password: 密碼,不顯示
GID: 羣組ID
user_list: 以當前組爲附加組的用戶列表(分隔符爲逗號)
gshadow文件格式:
root:::
hello:!!::hello
systemd-network:!::
group name: 羣組名稱
encrypted password:加密的密碼
administrators: 組管理員列表,更改組密碼和成員
members: 成員,以當前組爲附加組的用戶列表(分隔符爲逗號)
文件操做命令:
vipw: vi+passwd
vigr: vi+passgr
pwck:
grpck:
用戶管理命令:
useradd
usermod
usedel
組帳號維護命令:
groupadd
groupmod
groupdel
useradd:用戶建立
useradd [options] login.name
-u 指定UID,如不指定,正常狀況id按最大的id上遞增
超過範圍則按最小的數遞增
-o 配合-u選項,不檢查UID的惟一性
-g GID: 指明用戶所屬的基本組,可爲組名,也能夠爲GID
-c 」COMMMENT": 用戶的註釋信息
-d home_dir 以指定的路徑(不存在)爲家目錄
-s shell: 指明用戶的默認shell程序
可用列表在/etc/shells中
-G group1.. 爲用戶指明附加組,須存在
-N 不建立私有組作主組,使用users組作主組100
-r 建立系統用戶
-m 建立家目錄,用於系統用戶
-M 不建立家目錄,用戶非系統用戶
家目錄不存在則登陸會進入"/"
默認值設定:/etc/default/useradd文件中
顯示或更改默認設置:
useradd -D 顯示基本設置
[root@sentos7 ~]#useradd -D
GROUP=100 -N選項,若是不建立同名主組,則屬於這個組
HOME=/home 家目錄位置
INACTIVE=-1 過時以後還能夠登陸的天數,-1表示不會鎖死
EXPIRE= 帳號有效期,默認99999
SHELL=/bin/bash 默認使用的shell類型
SKEL=/etc/skel 建立家目錄的源文件地址
CREATE_MAIL_SPOOL=yes 是否建立mail
useradd -D -s /bin/csh 修改默認shell類型
useradd -D -b /dir 修改默認家目錄
usreadd -D -g group -N選項以後默認的主組
練習:
1.建立用戶gentoo,附加組爲bin和root,默認shell爲/bin/csh,注視信息
「Gentoo Distribution"
useradd -G bin,root -s /bin/csh -c "Gentoo Distrition" gentoo
2.建立下面的用戶、組和組成員關係
名字爲webs的組
用戶名nginx使用webs做爲附屬組
用戶varnish,也是用webs做爲附加組
用戶mysql,不可交互式登陸系統,也不是webs的成員,nginx,
varnish,mysql密碼都是magedu
grpadd webs
useradd -G webs nginx
useradd -G webs varnish
useradd -r mysql
echo magedu |passwd --stdin nginx
echo magedu |passwd --stdin varnish
echo magedu |passwd --stdin mysql
新建用戶的相關文件和命令
/etc/default/useradd 新建用戶默認信息
/etc/skel/ 家目錄複製地址
/etc/login.defs 添加用戶配置信息
/var/spool/mail 郵箱路徑
newusers passwd格式文件: 批量建立用戶
chpasswd 批量修改用戶口令
如: [root@sentos7 ~]#cat f2
newmike:maduge
[root@sentos7 ~]#cat f2 |chpasswd
usermod:用戶屬性修改
usermod [options] login
-u UID 新UID
-g GID或者group 新主組
-G Group1[,Group].. 新附加組,原來的附加組將會被覆蓋
-aG 若保留原有,則要同時使用-a 選項
-s shell 新的默認使用shell
-c ’comment‘: 新的註釋信息
-d home 修改家目錄,新的家目錄不會自動建立
-dm home 建立新家目錄並移動原家數據
-l login.name 新的名字,更名以後家目錄,郵箱不變
-L: lock指定用戶,在/etc/shadow密碼欄增長!
-U: unlock指定用戶,將/etc/shadow密碼欄的!拿掉
-e yyyy-MM-DD:指明用戶帳號過時時間
-f INACTIVE: 設定非活動期限,寬限期
-p, --password PASSWORD
use encrypted password for the new password
用加密以後的明文設置密碼
例:
usermod -u 7888 hello
修改hello的uid爲7888
usermod -g root hello
修改hello的主組爲root
usermod -aG lily hello
將hello添加到附加組lily
userdel:刪除用戶:
userdel [option]... login.name
-r: 刪除用戶家目錄
id:查看用戶的ID信息:
id [option]...[USER]
-u: 顯示UID
-g: 顯示GID
-G: 顯示用戶所屬附加組的ID
-n: 顯示名稱,需配合ugG使用
su:switch user切換用戶或以其餘用戶身份執行命令
su [option]..[-] [user[args..]]
切換用戶的方式:
su username 非登陸式切換,不會讀取目標用戶的配置文件,不改變當前
工做目錄
su - username 登陸式切換,會不去目標用戶的配置文件,切換至家目錄,
徹底切換
root su至其餘用戶無需密碼,非root用戶切換時須要密碼
退出用exit,ctrl+d,不要嵌套su
su [-] username -c 'cmd' 換個身份執行命令,執行完以後退回
su - hello -c "cat /etc/shadow"
su -l --login 至關於su - username
passwd:設置密碼:
passwd [options] username: 修改指定用戶的密碼
經常使用選項:
-d 刪除指定用戶的密碼
-l lock鎖定指定用戶,加!
-u unlock,解鎖指定用戶,去掉!
-e 強制用戶下次登陸修改密碼
-f 強制操做
-n mindays: 指定最短使用期限
-x maxdays: 最大使用期限
-w warndays: 提早多少天開始警告
-i inactivedays:過時還可使用的天數
--stdin:從標準輸入接收用戶密碼
例:
echo helloyou |passwd --stdin -n 3 -i 5 hello
修改hello的密碼 最小使用天數3天,過時以後鎖定時間5天
echo redhat |passwd --stdin hello &> /dev/null
修改hello的密碼爲redhat 影藏標準輸出和標準錯誤
chage:修改用戶密碼策略
chage [option]...login.name
-d lastdays 還能夠繼續使用的天數
-E --expire.date days 指定失效時間
-I --inactive days 過時以後鎖定的時間
-m --mindays days 最小使用期限
-M --maxdays days 最長使用時間
-W --warndays days 提醒時間
例:
chage -d 0 tom passwd -e tom
設置tom帳號下一次登陸修改密碼
chage -m 0 -M 9999 -W 5 -I 7 tom
設置tom帳號的密碼最小使用時間0,最大9999,提醒5 凍結7
chage -E 2200-09-16 hello
usermod -e
設置tom帳號失效時間2200-9-16
其餘相關命令:
chfn:修改用戶註釋信息,
usermod -c相似
[root@sentos7 ~]#chfn hello
Changing finger information for hello.
-f Name [hello]:
-o Office [hahah]: 原office爲hahah,冒號後輸入新的
-p Office Phone [12345]: 不修改能夠直接回車
-h Home Phone [54321]:
Finger information not changed.
例:
chfn -f hello -h 76521 hello
修改hello的名爲hello,homephone爲76521
chsh:(-s)修改指定shell
chsh -l 列出當前全部shell, cat /etc/shells
chsh -s /bin/bash hello
修改hello默認shell爲csh
finger:查看當前系統登陸的用戶信息,相似who
finger hello
查看用戶hello信息(name,bin,lastlogin ip)
groupadd:建立組
groupadd [option]...group.name
-g GID 指明GID號,[DID_MIN,GID-max]
-r: 建立系統組
CentOS6:<500
CentOS7:<1000
具體規則查看/etc/login.defs
groupmod:組屬性修改
groupadd [option]...group
-n group.name 修改組名
-g GID: 新的GID
groupdel:組刪除
groupdel GROUP
gpasswd:更改組密碼
gpasswd [option] group
gpasswd notbook 修改密碼
不支持標準輸入
-a user 將user添加至指定組中
-d user 從指定組中移除用戶user
-A user1,user2,.. 設置有管理權限的用戶列表
newgrp:臨時切換主組
newgrp hello
臨時切換主組爲hello
exit或者ctrl+d退出
若是用戶本不屬於此組,則須要組密碼
groupmems :更改組成員
groupmems [options] [action]
-g,--group groupname root only
-a,--add username 指定用戶加入組
-d,--delete username 指定用戶從組中刪除
-p,--purge 刪除組全部成員
-l,--list 顯示組成員列表
例:
groupmems -g hello -a lily
usermod -aG hello lily
gpasswd -a hello lily
將lily添加到組hello的三種寫法
groupmems -g hello -d mady
將lily從hello中刪除
groupmems -g hello -p
清除hello附加組全部成員
groups:
groups hello
查看hello的全部組,主組+附加組
其餘命令:
pwunconv passwd裏面顯示密碼,shadow就不存在了
pwconv 將passwd中密碼放入shadow
getent passwd 查看passwd
getent passwd hello 只看hello的passwd
getent passwd |shadow | group |gshadow
文件權限:
文件的權限主要針對三類對象進行定義:
owner:屬主,u
group:屬組,g
othe:其餘,o
每一個文件針對每類訪問者都定義了三種權限
r: Readable 讀,查看權限,可以使用文件查看類工具獲取其內容
w: Writealbe 寫,修改權限,可修改其內容
x: eXcutable 執行權限,能夠把此文件提請內核啓動爲一個進程
ps:
普通用戶不能改文件全部者
全部者修改文件所屬組,要求本身必須在相同組才能改
對於root帳號,rw權限不受控制,x權限受影響
ugo只要有一個x,root就能夠執行此文件 ,x全爲-,則沒法執行
對於普通用戶,沒有r只有w,不能打開,可是能有>,>>寫入
可執行文件,無需r只需x便可執行,r全是有時會須要,好比file
刪除文件須要目錄的w權限
目錄:
r:可使用ls查看此目錄中文件列表
w:可在此目錄中建立文件,也可刪除此目錄中的文件
x:可使用ls -l 查看此目錄中的文件列表,能夠cd進入此目錄
X:只給目錄x權限,不給文件x權限
ps:
沒有r權限,有x權限,能夠進入目錄,沒法查看文件列表,能夠查看
文件內容
有r權限,沒有x權限,不能進入目錄,不能目錄裏面的詳細屬性,也
不能查看文件內容
有w權限,沒有x權限,沒法刪除裏面文件
有w權限,沒有r權限,能夠刪除裏面文件
要執行目錄下的文件,必須對目錄具備x權限
用戶獲取文件(目錄)權限:
全部者---所屬組--other,一旦匹配,不看其餘
若是是全部者,只看----,不看後面
如是是所屬組,直接所屬組權限生效,不看other權限
chown:修改文件的屬主
chown [option]..[owner][:[group]] file
chown hello f1 修改文件f1的屬主爲hello
chown hello:hello f1 修改文件f1的屬主和組爲root,hello
(:group)只修改屬組,不建議使用
-R 遞歸,針對目錄
chown --reference=f1 f2 修改f2的owner:group和f1相同
chgrp:修改文件所屬組
chgrp [option] group file
chgrp lily f1 修改文件f1所屬主爲lily
chgrp -R 遞歸,針對目錄
chgrp --reference=f1 f2 修改f2的group和f1相同
文件權限操做:
drwxr-xr-x. 2 root root 6 Mar 28 03:47 Desktop
drwxr-xr-x. 2 root root 6 Mar 28 03:47 Documents
r:4
w:2
x:1
2-4位,owner權限
5-7位,group權限
8-10位,other權限
八進制數表示: Octal-mode
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
如:
rwxr-xr-x 755
rw------- 600
修改文件權限:
chmod [option]..octal-mode file
-R 遞歸
chmod 644 f1 修改文件f1權限爲644
chmod -R 777 dr1 遞歸修改dr1下全部文件權限爲777
chmod [option]..mode,[mode]...file
chmod u=rw,g=rw,o=r f3
修改文件f3的權限爲:rw-rw-r--
修改一類用戶的全部權限:
u= g= o= ug= a=
u=,g=,o= 清空
修改一類用戶某位或某些權限
u+r,g-rw,o+r,o-w...a+r,a-x....
chmod [option] --reference=f1 f2 f3
參考f1設置f2,f3的全部權限
例:
chmod u+wx,g-r,o=rx file
修改文件file權限,u+wx g-r o=rx
chmod -R g+rwX /testdir
遞歸修改目錄testdir權限,g+rwX
新建文件和目錄的默認權限:
umask指:能夠用來保留新建立文件權限
新建file權限:666-umask指
若是所得結果某位存在執行(奇數)權限,則其權限+1
新建dir權限:777-umask
非特權用戶umask是002
root帳號的umask是022
umask 查看umask值
umask -S 模式方式顯示
umask 2222 設置umask值爲222
umask u=rwx,g=r,o= 模式方式修改umask
umask -p 輸出可別調用,多了個名字。。
如:
umask -p >>.bashrc
umask文件地址:
/etc/bashrc 全局
~/.bashrc 用戶設置
練習:
1.當用戶docker對/testdir目錄無執行權限是,意味着沒法作哪些操做
沒法進入目錄
能夠用ls查看列表,可是沒法查看文件屬性類型
就算對目錄中的文件有rw權限,也沒法查看和寫入>>也不行
2.當用戶mongodb對/testdir目錄無讀權限時,意味着沒法作哪些操做
能夠進入目錄,沒法查看文件列表,能夠查看ll file詳細信息
能夠執行目錄內程序,cat file能夠查看文件內容
若是對文件有w權限,還能夠經過>>寫入文件
3.當用戶redis對/testdir目錄無寫權限時,該目錄下的只讀文件file1是否
能夠修改和刪除
不能
4.當用戶zabbix對/testdir具備寫執行權限時,該目錄下的制度文件file1是否
可修改和刪除?
能夠刪除,不能修改
5.複製/etc/fstab文件到/var/tmp下,設置文件全部者爲tomcat讀寫權限,所屬
組爲apps組有讀寫權限,其餘人無權限
cp /etc/fstab /var/emp/
chmod 650 /var/tem/fstab
6.誤刪除了用戶git的家目錄,請重建並回復該用戶家目錄及相應的權限屬性
cp -r /etc/skel/ /home/git
chown -R git:git /home/git
linux文件系統上的特殊權限:
SUID,SGID,Sticky
三種經常使用權限:r,w,x user,group,other
安全上下文
前提:進程有屬主和屬組:文件有屬主和屬組
1.任何一個可執行程序文件能不能啓動爲進程,取決於發起者對程序文件是否
擁有執行權限
2.啓動爲進程以後,起進程的屬主爲發起者,進程的屬組爲發起者所屬的組
3.進程訪問文件的權限,取決於進程的發起者
a.進程的發起者,同文件的屬主:則應用文件屬主權限
b.進程的發起者,屬於文件屬組,則應用文件文件屬組權限
c.應用文件「其餘」權限
可執行文件上SUID權限:
任何一個可執行程序文件能不能啓動爲進程:取決於發起者對程序文件是否
擁有執行權限
啓動爲進程以後,其進程的屬主爲原程序文件的屬主
SUID只對二進制可執行程序有效
SUID設置在目錄上無心義
權限設定:
chmod u+s file
chmod u-s file
可執行文件上SGID
任何一個可執行程序文件能不能啓動爲進程:取決於發起者對程序文件是否
擁有執行權限
啓動爲進程以後,其進程的屬組爲原程序文件的屬組
權限設定:
chmod g+s file
chmod g-s file
目錄上的SGID權限:
默認狀況下,用戶建立文件時,其屬組爲此用戶所屬的主組
一旦某目錄被設定了SGID,則對此目錄有寫權限的用戶在此目錄中建立的文件
所屬的組爲此目錄的屬組
一般用於建立一個協做目錄
權限設定:
chmod g+s DIR
chmod g-s DIR
Sticky 位
具備寫權限的目錄一般用戶能夠刪除該目錄中的任何文件,不管該文件的權限
或擁有權
在目錄設置Sticky位,只有文件的全部者或root能夠刪除該文件
sticky設置在文件上無心義
權限設定:
chmod o+t DIR...
chmod o-t DIR...
特殊權限數字法:
SUID: 4---
GUID: 2---
sticky 1---
權限位映射:
SUID: user,佔據屬主的執行權限位:
s:屬主擁有x權限
S:屬主沒有x權限
SGID: group,佔據屬組的執行權限位
s: group擁有執行權限位
S: group沒有x權限
Sticky:other,佔據other的執行權限位
t: other擁有x權限
T: other沒有x權限
設定文件特定屬性:
chattr +i 不能刪除,更名,更改
-i 取消
chatr +a 只能追加內容
-a 取消
chattr +A 鎖定atime
lsattr 顯示特定屬性
-R 能夠遞歸
例
chattr +i /data/11 給/data/11增長鎖定,不能刪除更改更名
chattr +a /data/11 給/data/11增長鎖定,只能追加內容
i存在的狀況,a存在,也沒法追加數據
chattr -i -a /data/11 取消data/11的特定權限
訪問控制列表
ACL:Access Control List,實現靈活的權限管理
除了文件的全部者,所屬組和其餘人,能夠對更多的用戶設置權限
CentOS7 默認建立的xfs和ext4文件系統具備ACL功能
CentOS7 以前的版本,默認手工建立的ext4文件系統無ACL功能,需手動增長
(安裝系統的時候建立的分區默認安裝了acl,後續分區默認不帶)
tune2fs -o acl /dev/sdb1
mount -o acl /dev/sdb1 /mnt/test
如添加了ACL權限,權限後面的.就會變成+
-rw-r--r--. 1 root root 8127 Apr 6 21:59 f16
未添加ACL
drwxrwxrwx+ 2 root root 49 Apr 7 01:55 23
已添加ACL
ACL生效順序:
全部者,自定義用戶,自定義組,其餘人
PS:
用戶所具備的組權限,爲全部的組權限疊加取最大權限
[root@sentos7 /data]#getfacl 234
# file: 234
# owner: root
# group: root
# flags: -s- 顯示特殊權限
user::r-x 全部者owner,
user:hello:rwx 自定義用戶user
group::r-x
group:hello:rwx
group:lily:rwx 自定義組
mask::rwx 組最高權限
other::-wx others
爲多用戶或者組的文件和目錄賦予訪問權限rwx
getfacl f1 dr1
查看f1,目錄dr1的acl權限
setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
setfacl -m, --modify=acl u:hello:rwx 35 23
修改文件35,目錄23的acl權限,使user用戶hello具備rwx權限
setfacl -Rm g:lily:rwX 23
遞歸修改目錄23的acl權限,使lily組用戶具備rwX權限
setfacl -M file.acl f5 234
按照文件file.acl中的權限設置文件f5 目錄234的權限
[root@sentos7 /data]#cat file.acl
u:hello:rwx
g:lily:rwx
g:hello:rwx
setfacl -m d:u:wang:rx dir
-d, --default operations apply to the default ACL
setfacl -d -m u:hello:rwx dir1
不能寫成-m -d
設置目錄dir的默認acl權限,給用戶wang 附件rx權限,
默認對於目錄下新建的文件或者目錄默認附加相同權限,
對於現有文件,權限無變化
setfacl -x u:hello file|dir
清空hello用戶對於file|dir的acl權限
setfacl -X file1.acl file dir
按照文件文件file1.acl刪除文件file 目錄dir的權限
setfacl -RX file3 dir1 如需遞歸,-R應在X的前面
setfacl -k dir
刪除默認(default)ACL權限
setfacl -b file1
清除全部acl權限
getfacl file1 |setfacl --set-file=- file2
複製file1的acl權限給file2
--set選項會把原有的ACL項都刪除,用新的替代,須要注意的是必定要
包含UGO的設置,不能像-m同樣只是添加ACL就能夠
示例:
setfacl --set u::rw,u:wang:rw,g::r,o::- file1
cp -p/-a f1 f2
複製文件用-p選項能夠保留源acl權限
mask值:
ACL文件上的group權限是mask值(自定義用戶,自定義組,用戶組的最大權限)
而非傳統的組權限,至關於限高
getfacl能夠看到特殊權限:flags
經過ACL賦予目錄默認x權限,目錄內文件也不會繼承x權限
base ACL不能刪除
mask隻影響除全部者和other以外的人和組的最大權限
mask須要與用戶的權限進行與運算後,才能變成有限的權限
用戶或組的設置必須存在於mask的權限設定範圍內纔會生效
setfacl -m mask::rx file1
設置文件file1的mask值爲rx
備份和恢復acl
主要的的文件操做命令cp和mv都支持acl,只是cp命令須要加上-p選項
可是tar等常見的備份工具是不會保留目錄和文件的acl信息
示例:
getfacl -R /tmp/dir1 >acl.txt
setfacl -R -b /tmp/dir1
setfacl -R --set-file=acl.txt /tmp/dir1
setfacl --restore acl.txt
getfacl -R /tmp/dir1
練習:
1.在/testdir/dir裏建立的新文件自動屬於webs組,組apps的成員如:
tomcat能對這些新文件有讀寫權限,組dbs的成員如:mysql只能對新文件有讀
權限,其餘用戶(不屬於webs,apps,dbs)不能訪問這個文件夾
chgrp webs /testdir/dir
chmod g+s /testdir/dir
chmod o= /testdir/dir
setfacl -m d:g:apps:rw,d:g:dbs:r /tsetdir/dir
2.備份/testdir/dir裏面全部文件的acl權限到/root/acl.txt中,清除
/testdir/dir中全部acl權限,最後還原acl權限:
getfacl -R /testdir/dir >/root/acl.txt
setfacl -R -b /testdir/dir
setfacl -R --set-file=/root/acl.txt
getfacl -R /testdir/dir
筆記整理完成時間:2018年4月7日11:42:24