Linux特殊權(quán)限--day12

1.特殊權(quán)限概述

前面我們學(xué)了 rwx這三種普通權(quán)限蒜胖,但是我們?cè)跂嗽兿到y(tǒng)文件權(quán)限時(shí)會(huì)發(fā)現(xiàn)出現(xiàn)了一些其他權(quán)限字母,比如:

[root@oldboy ~]# ll /usr/bin/passwd 
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd

在屬主本來應(yīng)該是 x(執(zhí)行)權(quán)限的位置出現(xiàn)了一個(gè)小寫s肄满,這是什么權(quán)限切距?我們把這種權(quán)限稱作 Setuid 權(quán)限,也叫作 SUID (set uid)的特殊權(quán)限稠集。

2.特殊權(quán)限SUID
  • 1.問題
    普通用戶的信息保存在 /etc/passwd 文件中悯恍,用戶的密碼在/etc/shadow 文件中库糠,也就是說,普通用戶在更改自己的密碼時(shí)修改了 /etc/shadow 文件中的加密密碼涮毫,但是文件權(quán)限顯示瞬欧,普通用戶對(duì)這兩個(gè)文件其實(shí)都是沒有寫權(quán)限的,那為什么普通用戶可以修改自己的權(quán)限呢窒百?
[root@oldboy ~]# ll /etc/passwd
-rw-r--r--. 1 root root 986 Jul 24 20:29 /etc/passwd
[root@oldboy ~]# ll /etc/shadow
----------. 1 root root 624 Jul 24 20:29 /etc/shadow


  • 2.解決問題
    其實(shí)黍判,普通用戶可以修改自己的密碼在于 passwd 命令。該命令擁有特殊權(quán)限 suid篙梢,也就是在屬主的權(quán)限位的執(zhí)行權(quán)限上是 s顷帖。即當(dāng)一個(gè)具有執(zhí)行權(quán)限的文件設(shè)置 suid權(quán)限后,用戶在執(zhí)行這個(gè)文件時(shí)將以文件所有者的身份來執(zhí)行渤滞。當(dāng)普通用戶使用 passwd 命令更改自己的密碼時(shí)贬墩,實(shí)際上是在用 passwd 命令所有者 root 的身份在執(zhí)行 passwd 命令,root 當(dāng)然可以將密碼寫入 /etc/shadow 文件妄呕,所以普通用戶也可以修改 /etc/shadow 文件陶舞,命令執(zhí)行完成后,該身份也隨之消失绪励,所以suid起了至關(guān)重要的作用肿孵。

  • 3唠粥、舉例
    建立一個(gè)用戶 wang,她可以修改自己的權(quán)限停做,因?yàn)?passwd 命令擁有 suid權(quán)限晤愧;但是她不能査看 /etc/shadow 文件的內(nèi)容,因?yàn)闁丝次募拿睿ㄈ?cat)沒有 SetUID 權(quán)限蛉腌。

自己可以修改自己的密碼官份,從而改變/etc/shadow中的數(shù)據(jù)
[root@oldboy ~]# su wang
[wang@oldboy root]$ cat /etc/shadow
cat: /etc/shadow: Permission denied
圖解wang
  • 4.解釋
    *passwd 是系統(tǒng)命令,可以執(zhí)行烙丛,所以可以賦予suid權(quán)限舅巷。
    wang用戶對(duì) passwd 命令擁有 x(執(zhí)行)權(quán)限。
    wang用戶在執(zhí)行 passwd 命令的過程中河咽,會(huì)暫時(shí)切換為 root 身份钠右,所以可以修改 /etc/shadow 文件。命令結(jié)束库北,wang用戶切換回自己的身份爬舰。
    注意:cat命令沒有 suid權(quán)限,所以使用 wang用戶身份去訪問 /etc/shadow 文件寒瓦,當(dāng)然沒有相應(yīng)權(quán)限了-->Permission denied

思考:如果將passwd命令的suid去掉會(huì)發(fā)生什么?

[root@oldboy ~]# chmod 731 /root #切換用戶將suid去掉
[root@oldboy ~]# ll -d /root
drwx-wx--x. 2 root root 135 Jul 24 20:49 /root
[root@oldboy ~]# su wang
[wang@oldboy root]$ passwd
Changing password for user wang.  #顯示無法打開密碼文件
Changing password for wang.
(current) UNIX password: 
[wang@oldboy root]$ cat /etc/shadow
cat: /etc/shadow: Permission denied
ps:當(dāng)去掉root中的suid之后需要重新連接root用戶坪仇,用su無法直接切換至管理員權(quán)限杂腰。
  • 2.suid授權(quán)方法4000 權(quán)限字符s,用戶位置上的x位上設(shè)置
[root@oldboy ~]# chmod 4755 /etc/passwd
[root@oldboy ~]# ll -d /etc/passwd
-rwsr-xr-x. 1 root root 1025 Aug  8 14:28 /etc/passwd
  • 3.suid的作用
1.讓普通用戶對(duì)可執(zhí)行的二進(jìn)制文件椅文,臨時(shí)擁有二進(jìn)制文件的所屬主權(quán)限喂很。
2.如果設(shè)置的二進(jìn)制文件沒有執(zhí)行權(quán)限,那么suid的權(quán)限顯示就是大S。
3.特殊權(quán)限suid僅對(duì)二進(jìn)制可執(zhí)行程序有效皆刺,其他文件或目錄則無效少辣。
注意: suid極度危險(xiǎn),不要輕易設(shè)置羡蛾。

3.特殊權(quán)限sgid

  • 將目錄設(shè)置為sgid后漓帅,如果在該目錄下創(chuàng)建文件,都將與該目錄的所屬組保持一致:如下例
[root@oldboy ~]# cd /tmp/ &&mkdir ttt
[root@oldboy tmp]# chmod g+s /tmp/ttt/ && ll -d ttt
drwxr-sr-x. 2 root root 6 Aug  8 15:00 ttt
[root@oldboy tmp]# chmod 777 /tmp/ttt/  #.給測(cè)試目錄賦予777權(quán)限
[root@oldboy /]# su wang
[wang@oldboy /]$ cd /tmp/ttt
[wang@oldboy ttt]$ touch ttt-test
[wang@oldboy ttt]$ ll
total 0
-rw-rw-r--. 1 wang root 0 Aug  8 15:07 ttt-test

  • 2.sgid授權(quán)方法: 2000權(quán)限字符s(S)痴怨,取決于屬組位置上的x
[root@oldboy ~]# chmod 2755  所授權(quán)目標(biāo)位置
[root@oldboy ~]# chmod g+s 所授權(quán)目標(biāo)位置
  • 3.sgid作用
    1.針對(duì)用戶組權(quán)限位修改忙干,用戶創(chuàng)建的目錄或文件所屬組和該目錄的所屬組一致。
    2.當(dāng)某個(gè)目錄設(shè)置了sgid后浪藻,在該目錄中新建的文件不在是創(chuàng)建該文件的默認(rèn)所屬組
    3.使用sgid可以使得多個(gè)用戶之間共享一個(gè)目錄的所有文件變得簡單捐迫。

4.特殊權(quán)限sbit

sbit粘滯位目前只對(duì)目錄有效
作用如下:
普通用戶對(duì)該目錄擁有 w 和 x 權(quán)限,即普通用戶可以在此目錄中擁有寫入權(quán)限爱葵。如果沒有粘滯位施戴,那么普通用戶擁有 w 權(quán)限反浓,就可以刪除此目錄下的所有文件,包括其他用戶建立的文件赞哗。但是一旦被賦予了粘滯位雷则,除了 root 可以刪除所有文件,普通用戶就算擁有 w 權(quán)限懈玻,也只能刪除自己建立的文件巧婶,而不能刪除其他用戶建立的文件。就相當(dāng)于博客一樣涂乌,普通用戶只能瀏覽而不能修改博主內(nèi)容艺栈。

[root@oldboy ~]# ll -d /tmp/
drwxrwxrwt. 12 root root 4096 Aug  8 15:00 /tmp/

*2.sbit(sticky)授權(quán)方法,1000 權(quán)限字符t(T),其他用戶位的x位上設(shè)置湾盒。

[root@oldboy ~]# chmod 1775  所授權(quán)用戶
[root@oldboy ~]# chmod o+s 所授權(quán)用戶
  • 3.stid(sticky)作用
    1.讓多個(gè)用戶都具有寫權(quán)限的目錄湿右,并讓每個(gè)用戶只能刪自己的文件。
    2.特殊stid目錄表現(xiàn)在others的x位罚勾,用小t表示毅人,如果沒有執(zhí)行權(quán)限是T
    3.一個(gè)目錄即使它的權(quán)限為"777"如果是設(shè)置了粘滯位,除了目錄的屬主和"root"用戶有權(quán)限刪除尖殃,除此之外其他用戶都不允許刪除該目錄丈莺。*

  • 2.權(quán)限屬性chattr

chatrr 只有 root 用戶可以使用,用來修改文件系統(tǒng)的權(quán)限屬性送丰,建立凌駕于 rwx 基礎(chǔ)權(quán)限之上的授權(quán)缔俄。
chatrr 命令格式:[root@oldboy ~]# chattr [+-=] [選項(xiàng)] 文件或目錄名

  * 選項(xiàng): + 增加權(quán)限   -減少權(quán)限   =等于某個(gè)權(quán)限
  * a:讓文件或目錄僅可追加內(nèi)容
  * i:不得任意更動(dòng)文件或目錄

* 1.創(chuàng)建文件并設(shè)置屬性
[root@oldboy ~]# touch wang_a file_i
[root@oldboy ~]# lsattr wang_a file_i 
---------------- wang_a
---------------- file_i


* 2.使用chattr設(shè)置屬性,lsattr查看權(quán)限限制
[root@oldboy ~]# chattr +a wang_a 
[root@oldboy ~]# chattr +i file_i 
[root@oldboy ~]# lsattr wang_a file_i 
-----a---------- wang_a
----i----------- file_i

*  3.a權(quán)限器躏,無法寫入和刪除文件俐载,但可以追加數(shù)據(jù),適合/etc/passwd這樣的文件
[root@oldboy ~]# echo "aa" > wang_a 
bash: wang_a: Operation not permitted  #不允許
[root@oldboy ~]# echo "aa" > file_i 
bash: file_i: Permission denied  #權(quán)限被拒絕
#5.i權(quán)限, 無法寫入登失,無法刪除遏佣,適合不需要更改的重要文件加鎖
[root@oldboy ~]# echo "i" > file_i
bash: file_i: Permission denied
[root@oldboy ~]# echo "i" >> file_i
bash: file_i: Permission denied
[root@oldboy ~]# rm -f  file_i
rm: cannot remove ‘file_i’: Operation not permitted

#6.解除限制
[root@oldboy ~]# chattr -a wang_a
[root@oldboy ~]# chattr -i file_i

3.進(jìn)程掩碼umask

1.umask是什么?
  • 當(dāng)我們登錄系統(tǒng)之后創(chuàng)建一個(gè)文件總是有一個(gè)默認(rèn)權(quán)限的,比如: 目錄755揽浙、文件644状婶、那么這個(gè)權(quán)限是怎么來的呢?umask設(shè)置了用戶創(chuàng)建文件的默認(rèn)權(quán)限捏萍。
2.umask是如何改變文件的權(quán)限
  • 系統(tǒng)默認(rèn)umask為022太抓,那么當(dāng)我們創(chuàng)建一個(gè)目錄時(shí),正常情況下目錄的權(quán)限應(yīng)該是777令杈,但umask表示要減去的值走敌,所以新目錄文件的權(quán)限應(yīng)該是777 - 022 =755。
    文件的權(quán)限也依次類推666 - 022 =644逗噩。

  • 3.umask涉及哪些配置文件

  • umask涉及到的相關(guān)文件/etc/bashrc /etc/profile ~/.bashrc ~/.bash_profile
    shell (vim,touch) --umask--> 會(huì)影響創(chuàng)建的新文件或目錄權(quán)限
    vsftpd服務(wù)如果修改--umask--> 會(huì)影響ftp服務(wù)中新創(chuàng)建文件或創(chuàng)建目錄權(quán)限
    useradd如果修改umask--> 會(huì)影響用戶HOME家目錄權(quán)限*

  • 4.umask演示示例

#1.假設(shè)umask值為:022(所有位為偶數(shù))
#文件的起始權(quán)限值
6 6 6  -  0 2 2  = 6 4 4 

#2.假設(shè)umask值為:045(其他用戶組位為奇數(shù))
#計(jì)算出來的權(quán)限掉丽。由于umask的最后一位數(shù)字是5跌榔,所以,在其他用戶組位再加1捶障。
6 6 6  -   0 4 5 = 6 2 1

#3.默認(rèn)目錄權(quán)限計(jì)算方法
7 7 7  -  0 2 2 = 7 5 5

#umask所有位全為偶數(shù)時(shí)
# umask 044
# mkdir d044   目錄權(quán)限為733 ---755-044=733
# touch f044   文件權(quán)限為622  ---666-044=622

#umask部分位為奇數(shù)時(shí)
# umask 023
# mkdir d023   目錄權(quán)限為754
# touch f023   文件權(quán)限為644

#umask值的所有位為奇數(shù)時(shí)
# umask 035
# mkdir d035   目錄權(quán)限為742
# touch f035   文件權(quán)限為642

  • 示例1: 在 shell 進(jìn)程中創(chuàng)建文件
* 查看當(dāng)前用戶的umask權(quán)限
[root@oldboy ~]# umask 0022
[root@oldboy ~]# touch w0022
[root@oldboy ~]# mkdir z0022
[root@oldboy ~]# ll -d w0022 z0022/
-rw-r--r--. 1 root root 0 Aug  8 15:41 w0022
drwxr-xr-x. 2 root root 6 Aug  8 15:41 z0022/


  • 示例2: 修改 shell umask 值(臨時(shí)生效)
[root@oldboy ~]# umask 000
[root@oldboy ~]# mkdir w000
[root@oldboy ~]# touch z000
[root@oldboy ~]# ll -d w000 z000
drwxrwxrwx. 2 root root 6 Aug  8 15:43 w000
-rw-rw-rw-. 1 root root 0 Aug  8 15:43 z000

  • 示例3: 通過 umask 決定新建用戶 HOME 目錄的權(quán)限
[root@oldboy ~]# vim /etc/login.defs 
UMASK 077
[root@oldboy ~]# useradd abc
[root@oldboy ~]# ll -d /home/abc/
drwx------. 2 abc abc 62 Aug  8 16:00 /home/abc/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末僧须,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子项炼,更是在濱河造成了極大的恐慌担平,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锭部,死亡現(xiàn)場(chǎng)離奇詭異暂论,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)拌禾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門取胎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人湃窍,你說我怎么就攤上這事闻蛀。” “怎么了您市?”我有些...
    開封第一講書人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵觉痛,是天一觀的道長。 經(jīng)常有香客問我茵休,道長秧饮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任泽篮,我火速辦了婚禮,結(jié)果婚禮上柑船,老公的妹妹穿的比我還像新娘帽撑。我一直安慰自己,他們只是感情好鞍时,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開白布亏拉。 她就那樣靜靜地躺著,像睡著了一般逆巍。 火紅的嫁衣襯著肌膚如雪及塘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,806評(píng)論 1 290
  • 那天锐极,我揣著相機(jī)與錄音笙僚,去河邊找鬼。 笑死灵再,一個(gè)胖子當(dāng)著我的面吹牛肋层,可吹牛的內(nèi)容都是我干的亿笤。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼栋猖,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼净薛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蒲拉,我...
    開封第一講書人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤肃拜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后雌团,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體燃领,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年辱姨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了柿菩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡雨涛,死狀恐怖枢舶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情替久,我是刑警寧澤凉泄,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站蚯根,受9級(jí)特大地震影響后众,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜颅拦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一蒂誉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧距帅,春花似錦右锨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至讥电,卻和暖如春蹂窖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背恩敌。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來泰國打工瞬测, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓涣楷,卻偏偏與公主長得像分唾,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子狮斗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348