- linux文件或目錄的權限位是由9個權限位來控制,每三位為一組,它們分別是文件屬主(Owner)的讀、寫、執行,用戶組(Group)的讀、寫、執行以及(Other)其它用戶的讀、寫、執行;
- 文件屬主(Owner)讀read 4、寫write 2 、執行x 1
- 文件用戶組(Group)讀r、寫w、執行x
- 其它用戶(Other)讀r、寫w、執行x
- 如果有權限位不可讀、不可寫、不可執行,則用-來表示。數字是0
- linux文件與目錄權限對比說明:
- r(Read,讀取權限):
- 對文件(如oldboy)而言,表示具有讀取閱讀文件內容的權限。
- 對目錄(如/etc)來說,表示具有瀏覽目錄的權限需要x權限配合(注意:與進入目錄的權限不同)
- w(Write,寫入權限):
- 對文件而言,表示具有新增、修改文件內容的權限需要r權限配合(注意:刪除和移動文件和文件本身屬性無關,看上級目錄)
- 對目錄來說,表示具有新增、刪除、移動目錄內文件的權限(需要x權限配合)
- x(Execute,執行權限):
- 對文件而言,表示具有執行文件的權限需要r權限配合(普通用戶同時還需要的權限,root用戶不用r也能執行,文件本身也要能執行才行)
- 對目錄來說,表示具有進入目錄的權限
- 無任何權限
- 若對應位置權限位為字符“-”,表示對應用戶沒有讀、寫、執行的任何權限
- 11位權限最后一位selinux 的狀態開啟的時候帶點,不開啟就沒點
- 文件系統屬性(文件屬性)
- lsattr ##查看隱藏屬性
- chattr ##
- a 不能被移動刪除,只能追加
- i 無敵的,不能修改
- 特殊權限位基本說明:
- suid s(有x) S 4 用戶對應的權限位(用戶對應的第3位上)
- sgid s(有x) S 2 用戶組對應的權限位(用戶組對應的第3位上)
- sticky t(有x) T 1 其他用戶對應的第三位上
- [root@NGINX-Y ~]# ls -l `which passwd`
- -rwsr-xr-x. 1 root root 30768 Feb 22 2012 /usr/bin/passwd
- [root@NGINX-Y ~]# ls -ld /tmp
- drwxrwxrwt. 4 root root 4096 Aug 20 12:31 /tmp
- 有s 就相當於有root的權限
- suid知識小結:針對命令和二進制程序的
- 1) 用戶或屬主對應的前三位權限的x位上如果有s就表示suid權限。
- 當x位上沒有小寫x執行權限的時候,suid的權限顯示的就是大S。
- 2) suid作用是讓普通用戶可以以root(或其他)的用戶角色運行只有root(或其他)賬號才能運行的程序或命令,或程序命令對應本來沒有權限操作的文件等。(注意su及sudo的區別),suid為某一個命令設置提示權限(使用者為所有人)。
- 3) suid修改的是執行的命令passwd,而不是處理的目標文件/etc/shadow
- 4) 僅對二進制命令程序有效,不能用在shell等類似腳本文件上(因為shell腳本僅僅是調用二進制命令程序而已,因此,具體權限還需要看二進制命令本身)
- 5) 二進制命令程序需要有可執行權限x配合。
- 6) suid權限僅在程序命令執行過程中有效。
- 7) 執行suid命令的任意系統用戶都可以獲得該命令程序在執行期間對應的擁有者的所有權限。
- 8) suid雙刃劍,是一個比較危險的功能,對系統安全有一定的威脅。
- 安全優化,干掉無用的suid,sgid權限
- Linux特殊權限位sgid深度詳解及實踐
- 特別說明:
- 1. 與suid不同的是,sgid既可以針對文件也可以針對目錄設置。
- 2. sgid是針對用戶組權限位的。
- 對於文件來說,sgid的功能如下:
- 1. sgid僅對二進制命令程序有效。
- 2. 二進制命令或程序需要有可執行權限x
- 3. 執行命令的任意用戶可以獲得該命令程序執行期間所屬組的權限。
- 對於目錄,sgid的功能如下:
- 1. sgid可以讓用戶在此目錄下創建的文件和目錄,具有和此目錄相同的用戶組設置。
- 2. ;linux里默認情況所有用戶創建文件,默認用戶和組都是自身。
- 3. 一個用戶組的權限;其他用戶加入這個用戶組他會擁有和這個用戶組共同的權限
- Linux特殊權限位sgid針對目錄特殊情況深度詳解及實踐
- chmod g+s /home/admins
- touch /home/admins/oldbot.txt
- setuid位設置用八進制的4000,setgid用的是八進制的2000;比如我們前面所說的chmod 4755 /bin/rm 就是設置setuid位的。
- 特殊權限位基本說明:
- suid s(有x) S 4 用戶對應的權限位(用戶對應的第3位上)
- sgid s(有x) S 2 用戶組對應的權限位(用戶組對應的第3位上)
- sticky t(有x) T 1 其他用戶對應的第三位上
- 設置小結:
- suid : chmod 4755 file (可執行)或者 chmod u+s file
- sgid : chmod 2755 file 或者 chmod g+s file
- 同時設置suid和sgid : chmod 6755 file
- 粘滯位 1000 權限字符t(T),在其他用戶位的x位上設置。
- chmod 1777 /tmp 或 chmod o+t /tmp
- 粘貼位的功能現在也很少用了,不過對於像/tmp目錄這樣的,是整個系統臨時文件存放地,還是有點意義的。一個目錄即使它的所有權限都開放rwxrwxrwx,如果是設置了粘貼位,除非目錄的屬主和root用戶有權限刪除他,除此之外其他用戶不能刪除這個目錄。用途一般是把一個文件夾的權限都打開,然后來共享文件,像/tmp目錄一樣,雖然方便但是也帶來了安全隱患,生產環境我們一般不這樣使用!
- sticky:比sgid的更安全措施,讓多個用戶都具有寫權限的目錄,每個用戶只能刪自己的文件,表現在other位。用t表示,如果沒有執行權限,那么就是T,如果有執行權限,那么就是t表示。
- tmp經典的粘貼位目錄案例,特點誰都有寫的權限,因此安全成問題。常常是木馬第一手跳板地點。