2014IT鐵人賽-30-ACL
今天是鐵人賽的最後一天, 我們用 acl ( Access Control List ) 來達陣.
筆記部份:
ACL (Access Control List)
傳統的檔案權限針對的對象
- 擁有者(owner)
- 群組(group)
- 其他(other)
倘若檔案或是資料夾的權限, 指定的方式超過三個以上
此時可以利用ACL 指定特定使用者/群組 所可以擁有的權限,來彌補傳統權限的不足
ACL(Access Control List)
- 在file system 上面必須設定 acl的選項
- 可以使用 setfacl 設定ACL
- -m 編輯ACL設定
- -x 移除單項 ACL 設定
- -b 移除所有 ACL 設定
- -d 設定Default ACL
- -M 還原ACL設定
- 可以使用 getfacl 觀察ACL設定
-rwxrw-r--+ 1 root users 0 2008-06-21 11:27 test
當設定ACL, 中間的 4-6的bit 就非原本的群組權限, 而是acl mask
當設定ACL, 中間的 4-6的bit 就非原本的群組權限, 而是acl mask
- acl mask --> 特定使用者或是特定群組可以使用的最大權限
- default acl --> 針對資料夾設定default acl其子資料夾及檔案可以繼承設定的acl
開始練習吧
Lab: Access Control List <ACL>
#mount | grep sda <請觀察資訊, 是否有acl>
#mkdir /acl
#touch /acl/test
#echo "echo 1234" >> /acl/test
#chmod 700 /acl/test
#ls -l /acl
#su - max -c "cat /acl/test" <以使用者max身份查看檔案>失敗
#su - john -c "cat /acl/test" <以使用者john身份查看檔案>失敗
#getfacl /acl/test <查看test資訊>
#setfacl -m u:max:r /acl/test <設定acl, -m 編輯, FIELD:NAME:PERM>
#ls -l /acl
#getfacl /acl/test <查看test資訊>
#su - max -c "cat /acl/test" <以使用者max身份查看檔案>成功
#su - john -c "cat /acl/test" <以使用者john身份查看檔案>失敗
#setfacl -x u:max /acl/test <設定acl, -x 移除, FIELD:NAME>
#ls -l /acl
#getfacl /acl/test
#setfacl -b /acl/test <移除所有的ACL設定>
#ls -l /acl
-------------------------------------------------------------------------
練習 acl mask
#ls -l /acl
#chgrp users /acl/test
#chmod 764 /acl/test
#ls -l /acl <請觀察資訊>
#su - max -c "cat /acl/test" <以使用者max身份查看檔案>成功
#su - john -c "cat /acl/test" <以使用者john身份查看檔案>成功
#su - max -c "/acl/test" <以使用者max身份執行檔案>失敗
#su - john -c "/acl/test" <以使用者john身份執行檔案>失敗
#ls -l /acl
#setfacl -m user:john:rwx /acl/test
#ls -l /acl <請觀察資訊,此時顯示的是ACL MASK>
#su - max -c "/acl/test" <以使用者max身份執行檔案>失敗
#su - john -c "/acl/test" <以使用者john身份執行檔案>成功
#getfacl /acl/test
#setfacl -m mask::r-- /acl/test <設定acl mask為r-->
#getfacl /acl/test
#su - john -c "/acl/test" <以使用者john身份執行檔案失敗,因受到acl mask 的限制>
#mount | grep sda <請觀察資訊, 是否有acl>
#mkdir /acl
#touch /acl/test
#echo "echo 1234" >> /acl/test
#chmod 700 /acl/test
#ls -l /acl
#su - max -c "cat /acl/test" <以使用者max身份查看檔案>失敗
#su - john -c "cat /acl/test" <以使用者john身份查看檔案>失敗
#getfacl /acl/test <查看test資訊>
#setfacl -m u:max:r /acl/test <設定acl, -m 編輯, FIELD:NAME:PERM>
#ls -l /acl
#getfacl /acl/test <查看test資訊>
#su - max -c "cat /acl/test" <以使用者max身份查看檔案>成功
#su - john -c "cat /acl/test" <以使用者john身份查看檔案>失敗
#setfacl -x u:max /acl/test <設定acl, -x 移除, FIELD:NAME>
#ls -l /acl
#getfacl /acl/test
#setfacl -b /acl/test <移除所有的ACL設定>
#ls -l /acl
-------------------------------------------------------------------------
練習 acl mask
#ls -l /acl
#chgrp users /acl/test
#chmod 764 /acl/test
#ls -l /acl <請觀察資訊>
#su - max -c "cat /acl/test" <以使用者max身份查看檔案>成功
#su - john -c "cat /acl/test" <以使用者john身份查看檔案>成功
#su - max -c "/acl/test" <以使用者max身份執行檔案>失敗
#su - john -c "/acl/test" <以使用者john身份執行檔案>失敗
#ls -l /acl
#setfacl -m user:john:rwx /acl/test
#ls -l /acl <請觀察資訊,此時顯示的是ACL MASK>
#su - max -c "/acl/test" <以使用者max身份執行檔案>失敗
#su - john -c "/acl/test" <以使用者john身份執行檔案>成功
#getfacl /acl/test
#setfacl -m mask::r-- /acl/test <設定acl mask為r-->
#getfacl /acl/test
#su - john -c "/acl/test" <以使用者john身份執行檔案失敗,因受到acl mask 的限制>
-------------------------------------------------------------------------
練習 default acl
#mkdir /acl/dir
#setfacl -d -m u:john:rwx /acl/dir/ <設定default acl>
#getfacl /acl/dir/ <請觀察資訊>
#touch /acl/dir/test
#ls -l /acl/dir/ <請觀察資訊>
#getfacl /acl/dir/test <請觀察資訊>
#mkdir /acl/dir/john <請觀察資訊>
#ls -l /acl/dir/ <請觀察資訊>
#getfacl /acl/dir/john/ <請觀察資訊>
練習 default acl
#mkdir /acl/dir
#setfacl -d -m u:john:rwx /acl/dir/ <設定default acl>
#getfacl /acl/dir/ <請觀察資訊>
#touch /acl/dir/test
#ls -l /acl/dir/ <請觀察資訊>
#getfacl /acl/dir/test <請觀察資訊>
#mkdir /acl/dir/john <請觀察資訊>
#ls -l /acl/dir/ <請觀察資訊>
#getfacl /acl/dir/john/ <請觀察資訊>
Fun with Day 30 ~
沒有留言:
張貼留言