第五章用戶組和管理權限學習筆記

本章內容:

解釋Linux的安全模型

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

用戶的組管理命令

理解并設置文件權限

默認權限

特殊權限

ACL

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

介紹安全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

 

 

 

 

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95200

(0)
青樓丨青樓丨
上一篇 2018-04-07
下一篇 2018-04-07

相關推薦

  • linux基礎篇

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
    2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
    3、請使用命令行展開功能來完成以下練習:
    (1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
    (2)、創建/tmp/mylinux目錄下的:
    mylinux/
    ├── bin
    ├── boot
    │ └── grub
    ├── dev
    ├── etc
    │ ├── rc.d
    │ │ └── init.d
    │ └── sysconfig
    │ └── network-scripts
    ├── lib
    │ └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │ └── local
    │ ├── bin
    │ └── sbin
    └── var
    ├── lock
    ├── log
    └── run

    2018-05-20
  • 第五周

    1、簡述rpm與yum命令的常見選項,并舉例 (1)什么是rpm? RPM?是RPM Package Manager(RPM軟件包管理器)的縮寫,可以實現安裝、升級、卸載、查詢和校驗、數據庫維護。 CentOS系統上的rpm命令管理程序: rpm –I 安裝 -U 升級 -e 卸載 -q 查詢 –builddb 數據庫維護 (2)rmp的安裝: …

    Linux筆記 2018-07-15
  • linux文件系統目錄概述

    linux文件系統目錄概述

    Linux筆記 2018-05-13
  • Linux上如何管理文件以及創建目錄的簡便方法

    linux中的文件管理類命令;bash的兩個基本特性

    2018-05-23
  • yum

    yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器?;禦PM包管理,能夠從指定的服務器自動下載RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。yum提供了查找、安裝、刪除某一個、一組甚至全部軟件包的命令,而…

    2018-04-20
欧美性久久久久