1. 程式人生 > >第五章用戶組和管理權限

第五章用戶組和管理權限

用戶 組 權限管理

筆記整理開始2018年4月3日17:27:07

本章內容:

解釋Linux的安全模型

解釋用戶賬號和組群賬號的目的

用戶的組管理命令

理解並設置文件權限

默認權限

特殊權限

ACL

介紹安全3A

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

userdel

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


第五章用戶組和管理權限