Linux特殊权限分析(第二版)
SetUID[權限值=4]
問題:為什么普通用戶可以修改自己的密碼?
ll?$(which?passwd)
?
1、SetUID:當一個可執行程序/命令具有SetUID?權限,用戶執行這個程序時,將以這個程序的所有者的身份執行。
?
2、加SetUID權限:
chmod?u+s?[filename]?或?chmod?4755?[filename] #SetUID權限值=4?
?
E.g.
chmod?u+s?$(which?touch)
?
#可以看到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之后也沒有任何作用
?
#顯示為S[大寫]!
?
SetGID[權限值=2]
1、SetGID:當一個可執行程序/命令具有SetGID?權限,用戶執行這個程序時,將以這個程序所屬組的身份執行。
?
2、加SetGID權限:
chmod?g+s?[filename]?或?chmod?2755?[filename] #SetGID權限值=2
#可以看到testfile2的所屬組并不是默認的guest,而是root!
?【同時設置UID與GID chmod?655...】
粘著位[權限值=1]
1、粘著位:如果一個權限為777的目錄,被設置了粘著位,每個用戶都可以在這個目錄里面創建文件,但是只可以刪除所有者是自己的文件。
?
?
2、設置粘著位:
chmod?o+t?[filename]?或?chmod?1777?[filename] #粘著位用t來表示,權限值=1
?
?
#可以看到,在設置了粘著位的/t_test目錄,刪除隸屬于自己的文件是可以的,但是無法刪除其他人的文件.
?
附-文件的特殊權限:
umask命令的第一位
總結
以上是生活随笔為你收集整理的Linux特殊权限分析(第二版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VIM 快捷键(转)
- 下一篇: linux 其他常用命令