範例:新增檔案 /root/aclexample.txt,群組為 manager,使用者 normal 及 normal2 亦為 manager 群組,normal 可以進行讀寫,但 normal2 無法進行任何操作。
新增檔案
# echo 'acl example' > /home/aclexample.txt
# groupadd manager
# chgrp manager /home/aclexample.txt
修改使用者群組
# usermod -G manager normal
# id normal
uid=500(normal) gid=500(normal) groups=500(normal),502(manager)
# usermod -G manager normal2
# id normal2
uid=501(normal2) gid=501(normal2) groups=501(normal2),502(manager)
設定存取權限(規則是有先後順序,先使用者再群組)
# setfacl -m u:normal:rw- /home/aclexample.txt
# setfacl -m u:normal1:--- /home/aclexample.txt
# getfacl /root/aclexample.txt
getfacl: Removing leading '/' from absolute path names
# file: home/aclexample.txt
# owner: root
# group: manager
user::rw-
user:normal:rw-
user:normal2:---
group::r--
mask::rw-
other::r--
使用者 normal 寫入 /home/aclexample.txt
$ echo 'i am normal' >> /home/aclexample.txt
$ cat /home/aclexample.txt
acl example
i am normal
使用者 normal2 寫入 /home/aclexample.txt
$ echo 'i am normal2' >> /home/aclexample.txt
-bash: /home/aclexample.txt: Permission denied
Default ACL
20121211 新增內容使用方法:只能在目錄上設定,而該目錄下的檔案及子目錄會繼承其 ACLs。
範例:使用者 user1、user2 及 user3 皆為群組 manager,/home/test 底下所有的檔案及目錄,user3 沒有任何權限。
# mkdir /home/test
# chmod 2775 /home/test
# chgrp manager /home/test
# setfacl -m d:u:user3:--- /home/test
# ll -d /home/test
drwxrwsr-x+ 2 root manager 4096 Dec 11 10:56 /home/test // 有 Default ACLs 的目錄或檔案都會有個加號。
############user1、user2 及 user3 皆可以在 /home/test 產生目錄及檔案############
# su - user1
user1 $ mkdir /home/test/user1
user1 $ echo "i am user1" > /home/test/user1.txt
user1 $ exit
# su - user2
user2 $ mkdir /home/test/user2
user2 $ echo "i am user2" > /home/test/user2.txt
user2 $ exit
# su - user1
user3 $ mkdir /home/test/user3
user3 $ echo "i am user3" > /home/test/user3.txt
user3 $ exit
############ user3 無法讀寫存取其他使用者在 /home/test 底下的目錄及檔案############
user3 $ echo "i am user3" >> /home/test/user1.txt
-bash: user1.txt: Permission denied
user3 $ echo "i am user3" >> /home/test/user2.txt
-bash: user2.txt: Permission denied
user3 $ ll /home/test/user1
ls: cannot open directory /home/test/user1: Permission denied
user3 $ ll /home/test/user2
ls: cannot open directory /home/test/user2: Permission denied
############其他使用者可相互讀寫存取在 /home/test 的目錄及檔案############
user1 $ ll /home/test/user2
total 0
user1 $ echo "i am user1" >> /home/test/user2.txt
user1 $ exit
logout
# su - user2
user2 $ ll /home/test/user1
total 0
user2 $ echo "i am user2" >> /home/test/user1.txt
user2 $ ll /home/test/user3
total 0
user2 $ echo "i am user2" >> /home/test/user3.txt
沒有留言:
張貼留言