SetUID(suid):會在屬主權限位的執行權限上寫個s
若是該屬主權限位上有執行權限,則:s
若是該屬主權限位上沒有執行權限,則:Sshell
受權方式vim
chmod u+s filename chmod 4755 filename
setuid總結:安全
1.讓普通用戶對可執行的二進制文件,臨時擁有二進制文件的屬主權限
2.若是設置的二進制文件沒有執行權限,那麼suid的權限顯示就是S
3.特殊權限suid僅對二進制可執行程序有效,其餘文件或目錄則無效bash
[root@oldboyedu ~]# ll /bin/write -rwxr-sr-x. 1 root tty 19624 Oct 31 2018 /bin/write
setgid(sgid):會在屬組權限位的執行權限上寫個s
若是該屬組權限位上有執行權限,則:s
若是該屬組權限位上沒有執行權限,則:Sui
受權方式日誌
[root@db04 ~]# chmod 2755 /tmp/test/ [root@db04 ~]# chmod g+s /tmp/test/
做用:1.針對用戶組權限位修改,用戶建立的目錄或文件所屬組和該目錄的所屬組一致。
2.當某個目錄設置了sgid後,在該目錄中新建的文件不在是建立該文件的默認所屬組
3.使用sgid可使得多個用戶之間共享一個目錄的全部文件變得簡單。code
粘滯位:進程
[root@oldboyedu ~]# ll -d /tmp/ drwxrwxrwt. 8 root root 105 Jul 2 10:15 /tmp/
若是該其餘用戶權限位上有執行權限,則:t
若是該其它用戶權限位上沒有執行權限,則:Trem
受權方式:
[root@db04 ~]# chmod 1755 /opt [root@db04 ~]# chmod o+t /opt
sticky(SI TI KI)粘滯,目前只對目錄有效,做用以下:
普通用戶對該目錄擁有w和x權限,即普通用戶能夠在此目錄中擁有寫入權限,若是沒有粘滯位,那麼普通用戶擁有w權限,就能夠刪除此目錄下的全部文件,包括其餘用戶創建的文件。可是一旦被賦予了粘滯位,除了root能夠刪除全部文件,普通用戶就算有w權限也只能刪除本身創建的文件,而不能刪除其餘用戶創建的文件。
注意:系統中存在的/tmp目錄是經典的粘滯位目錄,誰都有寫權限,所以安全成問題,經常是木馬第一手跳板。
SUID
主要是對命令,或者二進制文件,以該二進制文件的屬主權限來執行該文件 命令:passwd
2.SGID
主要是針對目錄進行受權,共享目錄
3.SBIT
粘滯位,即使是該目錄擁有w權限,可是除了root用戶,其餘用戶只能對本身的文件進行刪除、移動操做
一個普通用戶:zls 屬於 oldboyedu這個組
一個文件權限:rwxrw-r-x root.oldboyedu filename1
zls對文件的權限:rw-
r:讀
w:寫
x:執行
suid:4000
sgid:2000
t:1000
chattr只有root用戶使用,用來修改文件系統權限屬性,創建凌駕於rwx基礎權限之上的受權
chattr命令格式:[root@db04 ~]# #chattr【 +-=】[選項] 文件名或目錄名
lsattr:查看特殊權限
chattr:設置特殊權限
i:鎖定文件,不能編輯,不能修改,不能刪除,不能移動,能夠執行
a:僅能夠追加文件,不能編輯,不能刪除,不能移動,能夠執行
設置文件屬性(權限)針對全部用戶,包括root
#選項:+增長權限 -減小權限 =等於某個權限 #a:讓文件或目錄僅可追加內容 #i:不得任意更動文件或目錄 #建立文件並設置屬性 [root@zls ~]# touch file_a file_i [root@zls ~]# lsattr file_a file_i ---------------- file_a ---------------- file_i #設置屬性 [root@zls ~]# chattr +a file_a [root@zls ~]# chattr +i file_i [root@zls ~]# lsattr file_a file_i -----a---------- file_a ----i----------- file_i #a權限, 沒法覆蓋寫入和刪除文件 [root@zls ~]# echo "aa" > file_a bash: file_a: Operation not permitted [root@zls ~]# rm -f file_a rm: cannot remove ‘file_a’: Operation not permitted #a權限, 只能追加, 適用於日誌文件 [root@zls ~]# echo "aa" >> file_a #i權限, 沒法寫入, 沒法刪除 [root@zls ~]# echo "i" > file_i bash: file_i: Permission denied [root@zls ~]# echo "i" >> file_i bash: file_i: Permission denied [root@zls ~]# rm -f file_i rm: cannot remove ‘file_i’: Operation not permitted #解除限制 [root@zls ~]# chattr -a file100 [root@zls ~]# chattr -i file200
系統默認umask爲022,那麼當咱們建立一個目錄時,正常狀況下目錄的權限應該是777,可是umask表示要減去的值,因此新目錄文件的權限應該是777-022=755。至於文件的權限也依次類推:666-022=644
/etc/bashrc /etc/profile ~/.bashrc ~/.bash_profile
注意:
umask影響的範圍
shell (vim,touch) --umask--> 新文件或目錄權限 vsftpd --umask--> 新文件或目錄權限 samba --umask--> 新文件或目錄權限 useradd --umask--> 用戶 HOME
1,在shell進程中建立文件
//查看當前用戶的umask權限 [root@zls ~]# umask 0022 [root@zls ~]# touch file0022 [root@zls ~]# mkdir dir0022 [root@zls ~]# ll -d file0022 dir0022/ drwxr-xr-x 2 root root 6 Jan 24 09:02 dir0022/ -rw-r--r-- 1 root root 0 Jan 24 09:02 file0022
2,修改shell umask值(臨時生效)
[root@zls ~]# umask 000 [root@zls ~]# mkdir dir000 [root@zls ~]# touch file000 [root@zls ~]# ll -d dir000 file000 drwxrwxrwx 2 root root 6 Jan 24 09:04 dir000 -rw-rw-rw- 1 root root 0 Jan 24 09:04 file000
3,修改shell umask(永久生效,不建議)
[root@zls ~]# vim /etc/profile if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then umask 002 else umask 022 fi //當即在當前 shell 中生效 [root@zls ~]# source /etc/profil