星期三, 10月 15, 2014

2014IT鐵人賽-30-ACL

2014IT鐵人賽-30-ACL


今天一樣使用 EasyCloud  雲端簡單龍的帳戶, 那就登入 https://gemini.nchc.org.tw/ 來開始練習openSUSE 基礎指令吧.


今天是鐵人賽的最後一天, 我們用 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 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 maskr-->
#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/ <請觀察資訊>




Fun with Day 30 ~