1.suid
進程能夠以何種身份去查看一個文件拭嫁,取決于運行這個進程的用戶有沒有對這個文件有沒有權限
列:
用戶在改密碼是使用passwd改密碼讼渊,指向/etc/shadow來修改密碼上真,而shadow是一個沒有權限的文件馍佑,為什么所有用戶都能修改修改shadow里的密碼?
*切換普通用戶修改密碼時魄健,passwd
[oldboy@localhost ~]$ passwd
Changing password for user oldboy.
Changing password for oldboy.
(current) UNIX password:
*新建一個終端查看進程中passwd是什么在運行
[root@localhost ~]# ps aux | grep "passwd"
root 7502 0.0 0.4 170712 1992 pts/0 S+ 10:30 0:00 passwd
root 7556 0.0 0.2 112708 960 pts/1 S+ 10:31 0:00 grep --color passwd
為什么是root用戶在運行passwd,而不是oldboy?因為passwd有特殊權限
[root@localhost ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10 2014 /usr/bin/passwd
*-rwsr-xr-x ----> rwx變成了rws旋奢,s就是賦予了特殊權限
PS:set uid簡稱suid泳挥,當我們賦予suid特殊權限,能讓所有用戶在運行賦予特殊權限后以屬主的權限去運行至朗。
suid == 4000
命令表達式:
chmod u+s /usr/bin/passwd
chmod 4755 /uer/bin/passwd
chmod u-s #去掉權限
suid優(yōu)點:可以讓普通用戶執(zhí)行無法執(zhí)行的命令----方便
suid缺點:如果rm為suid無論誰執(zhí)行該命令屉符,都能刪除系統(tǒng)的任何資源
2.sgid(set gid)特殊權限(RHCE考試)
將目錄設置為sgid后,如果在往該目錄下創(chuàng)建文件锹引,都將與該目錄的所屬組保持一致
[root@oldboyedu ~]# groupadd devops
[root@oldboyedu ~]# useradd zhangsan -G devops
[root@oldboyedu ~]# useradd lisi -G devops
[root@oldboyedu ~]# mkdir /opt/share
[root@oldboyedu ~]# chmod 2777 share/
[root@oldboyedu ~]# chown .devops share/
使用sgid可以使得多個用戶之間共享一個目錄的所有文件變得簡單矗钟。
*測試不同的用戶在該目錄下創(chuàng)建文件,檢查屬主和屬組
[root@localhost /opt/share]# ll
total 0
-rw-r--r--. 1 root devops 0 Aug 8 11:27 t1
-rw-r--r--. 1 oldboy devops 0 Aug 8 11:28 t2
-rw-rw-r--. 1 zhangsan devops 0 Aug 8 11:30 t3
3.sbit
如果一個目錄設定了粘滯位,那么誰都可以在該目錄下創(chuàng)建文件
刪除文件只能是誰創(chuàng)建的誰刪除,除此以外 root 和/tmp/的所屬主都能刪除該目錄下的額內容.
#設定粘滯位 1000
chmod o+t /tmp
chmod 1777 /tmp
5.特殊屬性 chattr lsattr
- -a 只能追加,無其他操作
- -i 鎖定文件,不能刪除,不能追加,不能移動
1.希望任何人都不能創(chuàng)建用戶,應該給/etc/passwd添加什么特殊屬性嫌变?
[root@localhost /opt/share]# chattr +i /etc/passwd #使文件不得變動文件或目錄
[root@localhost /opt/share]# lsattr /etc/passwd #檢查文件屬性
----i----------- /etc/passwd
[root@localhost ~]# useradd zj
useradd: cannot open /etc/passwd
2.日志文件吨艇,希望能往里面追加內容,但不允許刪除腾啥,應該添加什么特殊屬性?
[root@localhost ~]# chattr +a /var/log/secure
[root@localhost ~]# lsattr /var/log/secure
-----a---------- /var/log/secure
6.umask 默認權限
- umask是用來控制默認創(chuàng)建文件或目錄的權限
- umask設定為022,表示要減去的權限
目錄: 777 -022 =755
文件: 666 -022 =644 - umask 設定為奇數(shù) 偶數(shù) 對文件和目錄有什么影響?
文件: 如果umask出現(xiàn)了奇數(shù), 要在奇數(shù)位+1
目錄: 對目錄毫無影響 - 設定umask
umask number 臨時 (當前bash窗口有效,會隨著bash的關閉一
起結束)
vim /etc/profile /etc/login.defs # 如果修改則都為永久. - 一般情況下不對umask調整,默認就是安全的權限.默認為:
目錄: 755
文件: 644
總結
特殊權限 suid sgid sbit
suid:讓其他用使用程序時通過該文件屬主來操作該文件的內容等
sgid:設置目錄sgid特殊權限东涡,讓其目錄下創(chuàng)建的文件都有相同組,方便文件共享
sbit:目錄設定了粘滯位,那么誰都可以在該目錄下創(chuàng)建文件特殊屬性 chattr lsattr -a(/var/log/*.log) -i (/etc/passwd)
chattr:-a:追加文件 -i:鎖定文件
lsattr:查看文件屬性umask 默認權限( 表示要減去的權限 目錄:777 -umask 文件:666 - umask)倘待。
當我們想改變創(chuàng)建文件和目錄時的默認訪問權限疮跑,則可以通過umask命令來實現(xiàn)慧妄。