天天看點

Linux特殊權限分析(第二版)

問題:為什麼普通使用者可以修改自己的密碼?

ll $(which passwd)

Linux特殊權限分析(第二版)

1、SetUID:當一個可執行程式/指令具有SetUID 權限,使用者執行這個程式時,将以這個程式的所有者的身份執行。

2、加SetUID權限:

chmod u+s [filename] 或 chmod 4755 [filename] #SetUID權限值=4 

E.g.

chmod u+s $(which touch)

Linux特殊權限分析(第二版)

#可以看到newfile2的所有者并不是guest,而是root!

3、危險!

将指令設定成SetUID是一件很危險的事,比如将vi設定成SetUID,則他可以編輯并儲存系統中所有的檔案,甚至是系統配置檔案!他可以讓一個使用者瞬間程式設計超級使用者,他可以使你的系統不斷的重新開機等,或者将kill設定成SetUID...

 預防:

find / -perm -4000 -o -perm -2000

#查找權限為4000或2000的檔案,即具有SetUID,SetGID的檔案

4、取消SetUID權限:

chmod u-s [filename] 或 chmod 755 [filename]

附-原來的檔案必須是一個可執行程式,如果原檔案沒有x權限,則設定SetUID之後也沒有任何作用

Linux特殊權限分析(第二版)

#顯示為S[大寫]!

1、SetGID:當一個可執行程式/指令具有SetGID 權限,使用者執行這個程式時,将以這個程式所屬組的身份執行。

Linux特殊權限分析(第二版)

2、加SetGID權限:

chmod g+s [filename] 或 chmod 2755 [filename] #SetGID權限值=2

Linux特殊權限分析(第二版)

#可以看到testfile2的所屬組并不是預設的guest,而是root!

 【同時設定UID與GID chmod 655...】

1、粘着位:如果一個權限為777的目錄,被設定了粘着位,每個使用者都可以在這個目錄裡面建立檔案,但是隻可以删除所有者是自己的檔案。

Linux特殊權限分析(第二版)

2、設定粘着位:

chmod o+t [filename] 或 chmod 1777 [filename] #粘着位用t來表示,權限值=1

Linux特殊權限分析(第二版)

#可以看到,在設定了粘着位的/t_test目錄,删除隸屬于自己的檔案是可以的,但是無法删除其他人的檔案.

附-檔案的特殊權限:

umask指令的第一位

繼續閱讀