星期一, 9月 29, 2014

2014IT鐵人賽-14-umask 與 特殊權限

2014IT鐵人賽-14-umask 與 特殊權限


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


今天練習umask 與特殊權限


筆記部份:


上一篇介紹權限, 接下來我們來聊聊預設的權限該如何設定


**建立檔案/資料夾的預設權限計算**

建立檔案預設權限 666
建立資料夾預設權限 777


那這樣是不是檔案開放太多權限?
所以系統使用 umask 這個機制來移除特定的權限

umask 022 (定義於/etc/profile)

umask 權限遮罩

預設權限計算: 預設權限 使用 umask 遮罩(移除)住特定權限

舉例來說, 如果在系統內建立一個檔案

預設權限
r w - r w - r w -

umask
- - - - w - - w -

------------------------------------------------------------
r w - r - - r - -
6 4 4


舉例來說, 如果在系統內建立一個資料夾

預設權限
r w x r w x r w x

umask
- - - - w - - w -

------------------------------------------------------------
r w x r - x r - x
7 5 5
接下來介紹特殊權限
特殊權限
SUID --> user的特殊權限, 會繼承 使用者ID
SGID --> group的特殊權限, 會繼承群組
Sticky bit --> other的特殊權限, 非擁有者本人不能刪除檔案

故權限的表示方式為四碼
第一碼為特殊權限, 後三碼為一般權限
特殊權限的加總
SUID --> 4
SGID --> 2
Sticky bit --> 1
User 權限
Group 權限
Other 權限


但是因為特殊權限都在原本一般權限 x 的位置來表示, 所以如何知道原本是否有 x  權限?
Q:差異為?
s:原來有x
S:原來無x
t:原來有x
T:原來無x


權限轉換
rwsr---wT --> 5742
4752 --> rwsr-x-w-
rwSrwsr-t --> 7675
6744 --> rwsr-Sr--


開始練習吧


Lab: umask 與檔案建立權限計算


#cd /home/max
#umask <列出目前的umask>
#cat /etc/profile | grep umask <觀察系統設定>


#touch rootfile
#mkdir rootdir
#ls -ld root* <請觀察權限>


#umask 013 <自訂umask 013,暫時性生效>
#umask <列出目前的umask>
#touch rootfile2
#mkdir rootdir2
#ls -ld root* <請觀察權限>
#exit <因為剛有改umask故登出以免影響>


Lab: SUID
#ls -l /bin/cat <請觀察權限>
#ls -l /etc/shadow <請觀察權限>


#su - user1 -c "cat /etc/shadow" <user1身份查看/etc/shadow,失敗,因為無 r 權限>


#chmod u+s /bin/cat <cat指令加上 SUID 權限>
#ls -l /bin/cat <請觀察權限>
#ls -l /etc/shadow <請觀察權限>
#su - user1 -c "cat /etc/shadow" <user1身份查看 /etc/shadow --> 成功>
<cat指令有設定SUID,故執行時身份會變成cat指令所有人root, root/etc/shadowr 的權限,故可以查看>


#chmod u-s /bin/cat <請將SUID權限移除>
#su - user1 -c "cat /etc/shadow" <user1身份查看/etc/shadow,失敗,因為無 r 權限>




Lab: SGID
目的:建立部門資料夾,不管任何使用者在該目錄下
建立檔案資料夾,繼承該目錄群組


#mkdir /mis
#groupadd mis <新增mis群組>


#ls -ld /mis <請觀察權限及擁有者,群組>
#chown root.mis /mis </mis資料夾的群組改為mis所有>


#ls -ld /mis <請觀察權限及擁有者,群組>
#touch /mis/test
#ls -l /mis <請觀察權限及擁有者,群組>


#chmod g+s /mis </mis資料夾加上SGID>
#ls -ld /mis <請觀察權限及擁有者,群組>


#touch /mis/test2
#ls -l /mis <請觀察權限及擁有者,群組>

Lab: sticky bit
目的:不管權限為何不可以刪除其他人的檔案


#mkdir /test
#chmod 1777 /test </test加上sticky bit 權限並將權限設定為777>
#touch /test/test.txt
#chmod 777 /test/test.txt
#ls -ld /test <請觀察權限及擁有者,群組>
#ls -l /test <請觀察權限及擁有者,群組>
#su - user1 -c "rm /test/test.txt" <以使用者user1刪除 /test/test.txt -->失敗>
</test目錄有設定sticky bit權限,非本人不能刪除>




Fun with Day 14 ~


沒有留言: