iT邦幫忙

DAY 14
0

openSUSE Linux 30 天系列 第 14

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

  • 分享至 

  • xImage
  •  

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/shadow有 r 的權限,故可以查看>

#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 ~


上一篇
2014IT鐵人賽-13-權限管理介紹
下一篇
2014IT鐵人賽-15-利用zypper指令管理套件庫及套件
系列文
openSUSE Linux 30 天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言