linux 文件權限管理

傳統權限模型缺點:

傳統的UGO(user、group、other)權限模型無法對應複雜的權限設置需求,如對於一個文件只能設置一個組,並且對改組進行權限控制,但是如果該文件有多個組對其進行訪問時,並且都要權限限制時,傳統UGO模型就無法滿足需求了。

ACL(ACCESS CONTROL LIST):

ACL是一種高級權限機制,允許我們對文件或文件夾靈活的、複雜的權限限制;

ACL在掛載文件的時候需要開啓ACL功能:mount -o acl /dev/sdb /mnt(在創建新分區並掛載)
ACL允許針對不同用戶或組對同一文件或文件夾進行權限設置,不收UGO 限制;

查看一個文件/文件夾的acl權限設置:
[root@localhost /]# getfacl wxl/
# file: wxl/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
針對用戶對文件ACL設置;
[root@localhost wxl]# setfacl -m u:wxl:rwx wxl //u(user):wxl(文件):權限
[root@localhost wxl]# getfacl wxl 
# file: wxl
# owner: root
# group: root
user::rw-
user:wxl:rwx //wxl具有讀寫執行權限
group::r--
mask::rwx
other::r-
針對組設置:setfacl -m g:wxl:rw wxl
刪除acl設置
setfacl -x u:wxl wxl
[root@localhost wxl]# getfacl wxl 
# file: wxl
# owner: root
# group: root
user::rw-
group::r--
mask::r--
other::r--

事例:

 組 用戶  
 training josn、liqi
 markert bob、lady
 manager alice、steve
 boss snake

要求各部門、員工建立行對應的文件夾,其要求如下;
1.所有目錄文件保存在統一的文件夾下;
2.每個組擁有獨立的文件夾;
3.不同部門之間不可訪問各自的文件夾;
4.每個員工在所部門下擁有所屬文件夾;
5.同部門員工可以查看各自文內容但不可以修改只有用戶自己能修改自己的文件
6.boss組用戶均可以訪問各部門文件,但不能修改;
如果用傳統UGO是實現不了目前的事例的需求的;
首先完成第一二步
[root@localhost ~]# mkdir work
[root@localhost ~]# cd work
[root@localhost work]# mkdir training 
[root@localhost work]# mkdir market
[root@localhost work]# mkdir manage
[root@localhost work]# ls
manage  market  training
[root@localhost work]#實現第三步
[root@localhost work]# chgrp training training/
[root@localhost work]# chgrp market market/
[root@localhost work]# chgrp manage manage/
root@localhost work]# chmod o-rwx training/
[root@localhost work]# chmod o-rwx market/
[root@localhost work]# chmod o-rwx manage/
[root@localhost work]# ll
total 12
drwxr-x---. 2 root manage   4096 Mar 24 06:09 manage
drwxr-x---. 2 root market   4096 Mar 24 06:09 market
drwxr-x---. 2 root training 4096 Mar 24 06:09 training
實現第四步:
[root@localhost work]# chmod g+s training/
[root@localhost work]# chmod g+s market/
[root@localhost work]# chmod g+s manage/
實現第五步
[root@localhost training]# mkdir josn^C
[root@localhost training]# mkdir liqi^C
[root@localhost training]# chown josn josn/^C
[root@localhost training]# chown liqi liqi/^C
[root@localhost training]# ll
total 8
drwxr-sr-x. 2 josn training 4096 Mar 24 06:23 josn
drwxr-sr-x. 2 liqi training 4096 Mar 24 06:23 liqi
後兩個組同上操作
實現第六步
[root@localhost work]# setfacl -m g:boss:rx training/
[root@localhost work]# getfacl training/
# file: training/
# owner: root
# group: training
# flags: -s-
user::rwx
group::r-x
group:boss:r-x
mask::r-x
other::---
其餘兩文件夾也是這麼操作的;
這樣的這個事例就完成了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章