1、suid (set uid)特殊權(quán)限
1)、set uid 簡稱suid
當(dāng)我們?yōu)槟硞€(gè)命令設(shè)定了suid,無論誰使用該命令都會(huì)使用該命令的 "屬主" 運(yùn)行該命令。
suid == 4000
[jacky@localhost ~]$ cat /etc/shadow
cat: /etc/shadow: 權(quán)限不夠
[jacky@localhost ~]$ su - root
密碼:
[root@localhost ~]# chmod u+s /usr/bin/cat #加上權(quán)限
[root@localhost ~]# su - jacky
[jacky@localhost ~]$ cat /etc/shadow
...
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
adm:*:17834:0:99999:7:::
...
[root@localhost ~]# chmod u-s /usr/bin/cat #去掉權(quán)限
示意圖如下:suid優(yōu)點(diǎn):可以讓普通用戶執(zhí)行無法執(zhí)行的命令,提供方便 ;
suid缺點(diǎn):如果rm為suid,無論誰執(zhí)行該命令,都能刪除系統(tǒng)的
任何資源;
2)、進(jìn)程能夠以何種身份去查看一個(gè)文件,取決于與運(yùn)行這個(gè)進(jìn)程的用戶對這個(gè)文件有沒有權(quán)限。
cat是一個(gè)程序,當(dāng)使用jacky用戶去運(yùn)行cat,查看/etc/shadow文件時(shí),進(jìn)程是由jacky來運(yùn)行的,而jacky對/etc/shadow沒有讀取的權(quán)限,所以會(huì)提示“權(quán)限不夠”,但當(dāng)使用suid為cat給予特殊的權(quán)限后,cat就可以用/etc/shadow的 "屬主" 身份去運(yùn)行/etc/shadow了。

3)、suid的作用
(1)、讓普通用戶對可執(zhí)行的二進(jìn)制文件,臨時(shí)擁有二進(jìn)制文件的所屬主權(quán)限。
(2)、如果設(shè)置的二進(jìn)制文件沒有執(zhí)行權(quán)限,那么suid的權(quán)限顯示就是大S。
(3)、特殊權(quán)限suid僅對二進(jìn)制可執(zhí)行程序有效,其他文件或目錄則無效。
2、sgid (set gid) 特殊權(quán)限
1)、將目錄設(shè)置為sgid后,如果在往該目錄下創(chuàng)建文件,都將與該目錄的所屬組保持一致,演示如下
(1)、測試不同的用戶在該目錄下創(chuàng)建文件,檢查屬主和屬組
(2)、使用sgid可以使得多個(gè)用戶之間共享一個(gè)目錄的所有文件變得簡單。
sgid == 2000
[root@localhost ~]# groupadd devops
[root@localhost ~]# useradd zhangsan -g devops
[root@localhost ~]# useradd lisi -g devops
[zhangsan@localhost share]$ touch zhangsan_1
[lisi@localhost share]$ touch lisi_1
[root@localhost share]# touch root_1
[root@localhost share]# ll
-rw-r--r--. 1 lisi devops 0 8月 8 15:56 lisi_1
-rw-r--r--. 1 root root 0 8月 8 15:58 root_1
-rw-r--r--. 1 zhangsan devops 0 8月 8 15:56 zhangsan_1
[root@localhost ~]# mkdir /opt/share
[root@localhost ~]# chmod 2777 /opt/share/
[root@localhost ~]# chown .devop /opt/share/
[zhangsan@localhost share]$ touch zhangsan_2
[lisi@localhost share]$ touch lisi_2
[root@localhost share]# touch root_2
[root@localhost ~]# ll /opt/share/
-rw-r--r--. 1 lisi devops 0 8月 8 15:56 lisi_1
-rw-r--r--. 1 lisi devop 0 8月 8 16:08 lisi_2
-rw-r--r--. 1 root root 0 8月 8 15:58 root_1
-rw-r--r--. 1 root devop 0 8月 8 16:09 root_2
-rw-r--r--. 1 zhangsan devops 0 8月 8 16:08 zhangsan_1
-rw-r--r--. 1 zhangsan devop 0 8月 8 16:08 zhangsan_2
3、sbit
1)、sbit的作用
普通用戶對該目錄擁有w和x權(quán)限,即普通用戶可以在此目錄中有寫入權(quán)限。那么誰都可以在該目錄下創(chuàng)建文件。如果沒有粘滯位,那么普通用戶擁有 w 權(quán)限,就可以刪除此目錄下的所有文件,包括其他用戶建立的文件。但是一旦被賦予了粘滯位,除了 root 和/tmp/的所屬主可以刪除所有文件,普通用戶就算擁有w權(quán)限,也只能刪除自己建立的文件,而不能刪除其他用戶建立的文件。
2)、設(shè)定粘滯位
3)、粘滯位使用場景sbit == 1000
[root@localhost tmp]# chmod 1777 /tmp/passwd

4)、用戶上傳資料場景

4、特殊屬性 chattr,lsattr
-a: 只能追加,無其他操作
-i:鎖定文件,不能刪除,不能追加,不能移動(dòng)
1)、希望任何人都不能創(chuàng)建用戶,應(yīng)該給/etc/passwd添加什么特殊屬性?
[root@localhost ~]# chattr +i /etc/passwd
[root@localhost ~]# lsattr /etc/passwd
----i----------- /etc/passwd
[root@localhost ~]# useradd mjj
useradd:無法打開 /etc/passwd
[root@localhost ~]# chattr -i /etc/passwd
[root@localhost ~]# lsattr /etc/passwd
---------------- /etc/passwd
2)、日志文件,希望能往里面追加內(nèi)容,但不允許刪除,應(yīng)該添加什么特殊屬性?
[root@localhost ~]# chattr +a /var/log/secure
[root@localhost ~]# lsattr /var/log/secure
-----a---------- /var/log/secure
[root@localhost ~]# chattr -a /var/log/secur
[root@localhost ~]# lsattr /var/log/secure
---------------- /var/log/secure
5、umask 默認(rèn)權(quán)限
umask是用來控制默認(rèn)創(chuàng)建文件或目錄的權(quán)限
1)、umask設(shè)定為022,表示要減去的權(quán)限
目錄 777 -022 =755
文件 666 -022 =644
2)、umask 設(shè)定為奇數(shù)、偶數(shù)對文件和目錄有什么影響?
文件: 如果umask出現(xiàn)了奇數(shù), 要在奇數(shù)位+1 。
目錄: 對目錄毫無影響 。
3)、設(shè)定umask
umask number 臨時(shí) (當(dāng)前bash窗口有效,會(huì)隨著bash的關(guān)閉一 起結(jié)束)
vim /etc/profile /etc/login.defs # 如果修改則都為永久。
PS: umask 知道就行, 不要調(diào)整,默認(rèn)就是安全的權(quán)限.