一、在/data/testdir里創建的新文件自動屬于g1組,組g2的成員如:alice能對這些新文件有讀寫權限,組g3的成員如:tom只能對新文件有讀權限,其它用戶(不屬于g1,g2,g3)不能訪問這個文件夾。
首先創建三個組g1,g2,g3,題目要求在/data/testdir目錄里創建的文件自動屬于g1組那么首先要將這個目錄的屬組改為g1,然后通過更改SGID的方式來實現在目錄里創建文件自動屬于g1組,要求g2的組對新文件進行讀寫權限,在目錄里邊能寫必須要配合x執行權限才能實現寫(創建文件,刪除文件,更改文件內容),g2組里的成員未必都是這個目錄屬組的成員,所以這時要用到訪問控制列表來設置g2組的成員對目錄里的文件有讀寫權限,最后g3組的成員也未必是屬組的成員,要想實現對文件有讀權限也需要設置訪問控制列表,最后一類用戶就是什么權限也沒有,我們可以把目錄的其他人的權限設為空,這樣一來,其他人就沒有權限來訪問這個文件夾了。
groupadd g1
groupadd g2
groupadd g3
chgrp -R g1 /data/testdir
chmod -R g+s /data/testdir
更改之后,使用root賬號在/data/testdir目錄下創建一個文件發現屬組改成了g1
useradd alice
usermod -G g2 alice
setfacl -Rm d:g:g2:rwx /data/testdir
setfacl -Rm g:g3:r /data/testdir 設置了只讀權限只能列出目錄下的文件
chmod -R o= /data/testdir,更改權限之后我使用hadoop用戶來測試,hadoop不屬于他們三個組當中的任何一個,屬于其他人
二、創建組sales,gid 3000,passwd:centos,sales設置組的管理員為user2,將用戶user1,user2,user3加入到sales輔助組
希望user1 創建新文件 默認的所屬組為sales,user2將用戶user3從sales組移除,刪除sales,user1,user2
創建一個組名為sales使用-g選項指定組的gid為3000,并且給組添加密碼centos,可以使用gpasswd跟上組名來添加,user2設置成為sales組的管理,組管理命令gpasswd 使用-A選項添加組的管理員,新建三個用戶分別將三個用戶加入到組里,user1在創建文件時默認是sales組,并且將user1的主組改為sales,那么之后user1創建文件時它的屬組就是sales了,之前將user2設置成為了sales組的管理員,那么user2可以管理sales組里的用戶,之后隨即刪除user3
groupadd -g 3000 sales
gpasswd sales
gpasswd -A user2 sales
usermod -g sales user1
su – user2
gpasswd -d user3 sales
exit
groupdel sales
userdel -r user1
userdel -r user2
三種權限,三種特殊,acl,chattr 總結
三種權限分別是r,w,x
對文件而言
r:可以查看文件
w:可以刪除修改創建文件
x:可執行,可在命令提示符下當做命令交給內核運行
對目錄而言
r:僅能列出目錄下的文件
w:需要配置x權限一直使用,能刪除創建修改目錄里的內容
x:能進入到目錄里面
SUID:運行某程序時,相應進程的文件自身的屬主,而不是啟動者,加了這項權限后,就以這個文件的屬主的權限來執行,一般加到文件上
SGID:運行某程序時,相應進程的文件自身的屬組,而不是所啟動著的屬組,一般這個權限是加到目錄上,一旦某目錄被設定了SGID,則對此目錄有寫權限的用戶在此目錄中創建的文件所屬的組為此目錄的屬組,通常用在公共目錄里。
sticky:在目錄設置Sticky 位,只有文件的所有者或root可以刪除該文件,通常也是運用到目錄上。
acl訪問控制列表
訪問控制列表能靈活的實現權限管理,除了文件的屬主屬組,還可以為其他人來設置權限,方便權限的控制
chattr設置文件特定的屬性
+i 給文件附上這個權限,文件不能刪除,重名,更改,就連root也不行
+a(append)只能想文件里面追加內容
原創文章,作者:fszxxxks,如若轉載,請注明出處:http://www.www58058.com/27810