日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

linux 隐藏权限,Linux权限位,s权限,t权限,及隐藏权限

發(fā)布時(shí)間:2023/11/27 生活经验 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 隐藏权限,Linux权限位,s权限,t权限,及隐藏权限 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、UNIX下關(guān)于文件權(quán)限的表示方法和解析

UNIX下關(guān)于文件權(quán)限的表示方法和解析

SUID 是 Set User ID, SGID 是 Set Group ID的意思。

UNIX下可以用ls -l 命令來看到文件的權(quán)限。用ls命令所得到的表示法的格式是類似這樣的:-rwxr-xr-x 。下面解析一下格式所表示的意思。這種表示方法一共有十位:

9 8 7 6 5 4 3 2 1 0

- r w x r - x r - x

第9位表示文件類型,可以為p、d、l、s、c、b和-:

p表示命名管道文件

d表示目錄文件

l表示符號連接文件

-表示普通文件

s表示socket文件

c表示字符設(shè)備文件

b表示塊設(shè)備文件

第8-6位、5-3位、2-0位分別表示文件所有者的權(quán)限,同組用戶的權(quán)限,其他用戶的權(quán)限,其形式為rwx:

r表示可讀,可以讀出文件的內(nèi)容

w表示可寫,可以修改文件的內(nèi)容

x表示可執(zhí)行,可運(yùn)行這個(gè)程序

沒有權(quán)限的位置用-表示

其實(shí)在UNIX的實(shí)現(xiàn)中,文件權(quán)限用12個(gè)二進(jìn)制位表示,如果該位置上的值是

1,表示有相應(yīng)的權(quán)限:

11 10 9 8 7 6 5 4 3 2 1 0

S G T r w x r w x r w x

第11位為SUID位,第10位為SGID位,第9位為sticky位,第8-0位對應(yīng)于上面的三組rwx位。

11 10 9 8 7 6 5 4 3 2 1 0

上面的-rwsr-xr-x的值為: 1 0 0 1 1 1 1 0 1 1 0 1

-rw-r-Sr--的值為: 0 1 0 1 1 0 1 0 0 1 0 0

給文件加SUID和SUID的命令如下:

chmod u+s filename 設(shè)置SUID位

chmod u-s filename 去掉SUID設(shè)置

chmod g+s filename 設(shè)置SGID位

chmod g-s filename 去掉SGID設(shè)置

另外一種方法是chmod命令用八進(jìn)制表示方法的設(shè)置。如果明白了前面的12位權(quán)限表示法也很簡單。

二、SUID和SGID的詳細(xì)解析

Set UID

會創(chuàng)建s與t權(quán)限,是為了讓一般用戶在執(zhí)行某些程序的時(shí)候,能夠暫時(shí)具有該程序擁有者的權(quán)限。舉例來說,我們知道,賬號與密碼的存放文件其實(shí)是 /etc/passwd與 /etc/shadow。而 /etc/shadow文件的權(quán)限是“-r--------”。它的擁有者是root。在這個(gè)權(quán)限中,僅有root可以“強(qiáng)制”存儲,其他人是連看都不行的。

但是,偏偏筆者使用dmtsai這個(gè)一般身份用戶去更新自己的密碼時(shí),使用的就是 /usr/bin/passwd程序,卻可以更新自己的密碼。也就是說,dmtsai這個(gè)一般身份用戶可以存取 /etc/shadow密碼文件。這怎么可能?明明 /etc/shadow就是沒有dmtsai可存取的權(quán)限。這就是因?yàn)橛衧權(quán)限的幫助。當(dāng)s權(quán)限在user的x時(shí),也就是類似 -r-s--x--x,稱為Set UID,簡稱為SUID,這個(gè)UID表示User的ID,而User表示這個(gè)程序(/usr/bin/passwd)的擁有者(root)。那么,我們就可以知道,當(dāng)dmtsai用戶執(zhí)行 /usr/bin/passwd時(shí),它就會“暫時(shí)”得到文件擁有者root的權(quán)限。

SUID僅可用在“二進(jìn)制文件(binary file)”,SUID因?yàn)槭浅绦蛟趫?zhí)行過程中擁有文件擁有者的權(quán)限,因此,它僅可用于二進(jìn)制文件,不能用在批處理文件(shell腳本)上。這是因?yàn)閟hell腳本只是將很多二進(jìn)制執(zhí)行文件調(diào)進(jìn)來執(zhí)行而已。所以SUID的權(quán)限部分,還是要看shell腳本調(diào)用進(jìn)來的程序設(shè)置,而不是shell腳本本身。當(dāng)然,SUID對目錄是無效的。這點(diǎn)要特別注意。

Set GID

進(jìn)一步而言,如果s的權(quán)限是在用戶組,那么就是Set GID,簡稱為SGID。SGID可以用在兩個(gè)方面。

文件:如果SGID設(shè)置在二進(jìn)制文件上,則不論用戶是誰,在執(zhí)行該程序的時(shí)候,它的有效用戶組(effective group)將會變成該程序的用戶組所有者(group id)。

目錄:如果SGID是設(shè)置在A目錄上,則在該A目錄內(nèi)所建立的文件或目錄的用戶組,將會是此A目錄的用戶組。

一般來說,SGID多用在特定的多人團(tuán)隊(duì)的項(xiàng)目開發(fā)上,在系統(tǒng)中用得較少。

Sticky Bit

這個(gè)Sticky Bit當(dāng)前只針對目錄有效,對文件沒有效果。SBit對目錄的作用是:“在具有SBit的目錄下,用戶若在該目錄下具有w及x權(quán)限,則當(dāng)用戶在該目錄下建立文件或目錄時(shí),只有文件擁有者與root才有權(quán)力刪除”。換句話說:當(dāng)甲用戶在A目錄下?lián)碛術(shù)roup或other的項(xiàng)目,且擁有w權(quán)限,這表示甲用戶對該目錄內(nèi)任何人建立的目錄或文件均可進(jìn)行“刪除/重命名/移動”等操作。不過,如果將A目錄加上了Sticky bit的權(quán)限,則甲只能夠針對自己建立的文件或目錄進(jìn)行刪除/重命名/移動等操作。

舉例來說,/tmp本身的權(quán)限是“drwxrwxrwt”,在這樣的權(quán)限內(nèi)容下,任何人都可以在 /tmp內(nèi)新增、修改文件,但僅有該文件/目錄的建立者與root能夠刪除自己的目錄或文件。這個(gè)特性也很重要。可以這樣做個(gè)簡單測試:

1. 以root登入系統(tǒng),并且進(jìn)入 /tmp中。

2. touch test,并且更改test權(quán)限成為777。

3. 以一般用戶登入,并進(jìn)入 /tmp。

4. 嘗試刪除test文件。

更多關(guān)于SUID/SGID/Sticky Bit的介紹,我們會在第11章中再次提及,當(dāng)前,先有簡單的概念即可。

SUID/SGID/SBIT權(quán)限設(shè)置

前面介紹過SUID與SGID的功能,那么,如何打開文件使其成為具有SUID與SGID的權(quán)限呢?這就需要使用數(shù)字更改權(quán)限了。現(xiàn)在應(yīng)該知道,使用數(shù)字更改權(quán)限的方式為“3個(gè)數(shù)字”的組合,那么,如果在這3個(gè)數(shù)字之前再加上一個(gè)數(shù)字,最前面的數(shù)字就表示這幾個(gè)屬性了(注:通常我們使用chmod xyz filename的方式來設(shè)置filename的屬性時(shí),則是假設(shè)沒有SUID、SGID及Sticky bit)。

4為SUID

2為SGID

1為Sticky bit

假設(shè)要將一個(gè)文件屬性改為“-rwsr-xr-x”,由于s在用戶權(quán)限中,所以是SUID,因此,在原先的755之前還要加上4,也就是使用“chmod 4755 filename”來設(shè)置。此外,還有大S與大T的產(chǎn)生。參考下面的范例(注意:下面的范例只是練習(xí)而已,所以筆者使用同一個(gè)文件來設(shè)置,必須知道,SUID不是用在目錄上,SBIT不是用在文件上)。

[root@linux ~]# cd /tmp

[root@linux tmp]# touch test

[root@linux tmp]# chmod 4755 test; ls -l test

-rwsr-xr-x 1 root root 0 Jul 20 11:27 test

[root@linux tmp]# chmod 6755 test; ls -l test

-rwsr-sr-x 1 root root 0 Jul 20 11:27 test

[root@linux tmp]# chmod 1755 test; ls -l test

-rwxr-xr-t 1 root root 0 Jul 20 11:27 test

[root@linux tmp]# chmod 7666 test; ls -l test

-rwSrwSrwT 1 root root 0 Jul 20 11:27 test

# 這個(gè)例子要特別小心。怎么會出現(xiàn)大寫的S與T呢?不都是小寫的嗎?

# 因?yàn)閟與t都是取代x參數(shù)的,但是,我們是使用

# 7666。也就是說,user、group以及others都沒有x這個(gè)可執(zhí)行的標(biāo)志

# (因?yàn)?66)。所以,S、T表示“空的”。

# SUID是表示“該文件在執(zhí)行時(shí),具有文件擁有者的權(quán)限”,但文件

# 擁有者都無法執(zhí)行了,哪里來的權(quán)限給其他人使用呢?當(dāng)然就是空的

三、文件隱藏屬性

文件有隱藏屬性,隱藏屬性對系統(tǒng)有很大的幫助。尤其是在系統(tǒng)安全(Security)方面,非常重要。下面我們就來談一談如何設(shè)置與檢查這些隱藏的屬性。

chattr(設(shè)置文件隱藏屬性)

[root@linux ~]# chattr [+-=][ASacdistu] 文件或目錄名

參數(shù):

+ : 增加某個(gè)特殊參數(shù),其他原本存在的參數(shù)不動。

- : 刪除某個(gè)特殊參數(shù),其他原本存在的參數(shù)不動。

= : 設(shè)置一定,且僅有后面接的參數(shù)

A : 當(dāng)設(shè)置了A屬性時(shí),這個(gè)文件(或目錄)的存取時(shí)間atime(access)將不可被修改,可避免例如手提電腦有磁盤I/O錯(cuò)誤的情況發(fā)生。

S : 這個(gè)功能有點(diǎn)類似sync。就是將數(shù)據(jù)同步寫入磁盤中。可以有效地避免數(shù)據(jù)流失。

a : 設(shè)置a之后,這個(gè)文件將只能增加數(shù)據(jù),而不能刪除,只有root才能設(shè)置這個(gè)屬性。

c : 這個(gè)屬性設(shè)置之后,將會自動將此文件“壓縮”,在讀取的時(shí)候?qū)詣咏鈮嚎s,但在存儲的時(shí)候,將會先進(jìn)行壓縮后再存儲(對于大文件有用)。

d : 當(dāng)執(zhí)行dump(備份)程序的時(shí)候,設(shè)置d屬性將可使該文件(或目錄)具有轉(zhuǎn)儲功效。

i : i的作用很大。它可以讓一個(gè)文件“不能被刪除、改名、設(shè)置連接,也無法寫入或新增數(shù)據(jù)”。對于系統(tǒng)安全性有相當(dāng)大的幫助。

j : 當(dāng)使用ext3文件系統(tǒng)格式時(shí),設(shè)置j屬性將會使文件在寫入時(shí)先記錄在journal中。但是,當(dāng)文件系統(tǒng)設(shè)置參數(shù)為data=journalled時(shí),由于已經(jīng)設(shè)置日志了,所以這個(gè)屬性無效。

s : 當(dāng)文件設(shè)置了s參數(shù)時(shí),它將會從這個(gè)硬盤空間完全刪除。

u : 與s相反,當(dāng)使用u來設(shè)置文件時(shí),則數(shù)據(jù)內(nèi)容其實(shí)還存在磁盤中,可以用來還原刪除.

注意:這個(gè)屬性設(shè)置上,比較常見的是a與i的設(shè)置值,而且很多設(shè)置值必須要root才能設(shè)置。

范例:

[root@linux ~]# cd /tmp

[root@linux tmp]# touch attrtest

[root@linux tmp]# chattr +i attrtest

[root@linux tmp]# rm attrtest

rm: remove write-protected regular empty file `attrtest'? y

rm: cannot remove `attrtest': Operation not permitted

# 看到了嗎?連root也沒有辦法刪除這個(gè)文件。趕緊解除設(shè)置。

[root@linux tmp]# chattr -i attrtest

這個(gè)命令很重要,尤其是在系統(tǒng)的安全性方面。由于這些屬性是隱藏的,所以需要用lsattr才能看到。筆者認(rèn)為,最重要的是 +i屬性,因?yàn)樗梢宰屢粋€(gè)文件無法被更改,對于需要很高系統(tǒng)安全性的人來說,相當(dāng)重要。還有相當(dāng)多的屬性是需要root才能設(shè)置的。此外,如果是登錄文件,就更需要 +a參數(shù),使之可以增加但不能修改與刪除原有的數(shù)據(jù)。將來提到登錄文件時(shí),我們再來介紹如何設(shè)置它。

lsattr(顯示文件的隱藏屬性)

[root@linux ~]# lsattr [-aR] 文件或目錄

參數(shù):

-a : 將隱藏文件的屬性也顯示出來。

-R : 連同子目錄的數(shù)據(jù)也一并列出來。

范例:

[root@linux tmp]# chattr +aij attrtest

[root@linux tmp]# lsattr

----ia---j--- ./attrtest

使用chattr設(shè)置后,可以利用lsattr來查看隱藏屬性。不過,這兩個(gè)命令在使用上必須要特別小心,否則會造成很大的困擾。例如,某天你心情好,突然將 /etc/shadow這個(gè)重要的密碼記錄文件設(shè)置為具有i屬性,那么,過了若干天之后,突然要新增用戶,卻一直無法新增。怎么辦?將i的屬性去掉即可。

總結(jié)

以上是生活随笔為你收集整理的linux 隐藏权限,Linux权限位,s权限,t权限,及隐藏权限的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。