国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

Linux文件特殊權(quán)限(SUID、SGID和SBIT)的設(shè)置

2024-08-27 23:56:52
字體:
供稿:網(wǎng)友

前面已經(jīng)學(xué)習(xí) SUID、SGID、SBIT 特殊權(quán)限,以及各自的含義和功能,那么,如何給文件或目錄手動設(shè)定這些特殊權(quán)限呢?

還是要依賴 chmod 命令。我們知道,使用 chmod 命令給文件或目錄設(shè)定權(quán)限,有 2 種方式,分別是使用數(shù)字形式和字母形式。例如:

#數(shù)字形式
[root@localhost ~]# chmod 755 ftest
#字母形式
[root@localhost ~]# chmod u=rwx,go=rx ftest

給文件或目錄設(shè)定 SUID、SGID 和 SBIT 特殊權(quán)限,也可以使用這 2 種形式。

有關(guān) chmod 命令的用法,可以閱讀《linux chmod命令》一節(jié)。

我們知道,給 chmod 命令傳遞 3 個數(shù)字,即可實(shí)現(xiàn)給文件或目錄設(shè)定普通權(quán)限。比如說,"755" 表示所有者擁有 rwx 權(quán)限,所屬組擁有 rx 權(quán)限,其他人擁有 tx 權(quán)限。

給文件或目錄設(shè)定特殊權(quán)限,只需在這 3 個數(shù)字之前增加一個數(shù)字位,用來放置給文件或目錄設(shè)定的特殊權(quán)限,就這么簡單。

因此,我們有必要知道 SUID、SGID、SBIT 分別對應(yīng)的數(shù)字,如下所示:

4 --> SUID
2 --> SGID
1 --> SBIT

舉個例子,如果要將一個文件權(quán)限設(shè)置為 -rwsr-xr-x,怎么辦呢?此文件的普通權(quán)限為 755,另外,此文件還有 SUID 權(quán)限,因此只需在 755 的前面,加上 SUID 對應(yīng)的數(shù)字 4 即可。也就是說,只需執(zhí)行chmod 4755 文件名命令,就完成了-rwsr-xr-x 權(quán)限的設(shè)定。

關(guān)于 -rwsr-xr-x 的普通權(quán)限是 755,你可以這樣理解,標(biāo)記有 s 和 t 的權(quán)限位,隱藏有 x 權(quán)限,對此,本節(jié)后續(xù)會給出更詳細(xì)的解釋。

同樣的道理,如果某文件擁有 SUID 和 SGID 權(quán)限,則只需要給 chmod 命令傳遞 6---(- 表示數(shù)字)即可;如果某目錄擁有 SGID 和 SBIT,只需要給 chmod 命令傳遞 3--- 即可。

注意,不同的特殊權(quán)限,作用的對象是不同的,SUID 只對可執(zhí)行文件有效;SGID 對可執(zhí)行文件和目錄都有效;SBIT 只對目錄有效。當(dāng)然,你也可以給文件設(shè)置 7---,也就是將 SUID、SGID、SBIT賦予一個文件或目錄,例如:

[root@localhost ~]# chmod 7777 ftest
#一次賦予SetUID、SetGID和SBIT權(quán)限
[root@localhost ~]# ll ftest
-rwsrwsrwt. 1 root root Apr 19 23:54 ftest

執(zhí)行過程雖然沒有報(bào)錯,但這樣做,沒有任何實(shí)際意義。

除了賦予 chmod 命令 4 個數(shù)字設(shè)定特殊權(quán)限,還可以使用字母的形式。例如,可以通過 "u+s" 給文件賦予 SUID 權(quán)限;通過 "g+s" 給文件或目錄賦予 SGID 權(quán)限;通過 "o+t" 給目錄賦予 SBIT 權(quán)限。

舉一個例子:

[root@localhost ~]#chmod u+s, g+s, o+t ftest
#設(shè)置特殊權(quán)限
[root@localhost ~]# ll ftest
-rwsr-sr-t. 1 root root Apr 19 23:54 ftest
[root@localhost ~]# chmod u-s, g-s, o-t ftest
#取消特殊權(quán)限
[root@localhost ~]# ll ftest
-rwxr-xr-x. 1 root root Apr 19 23:54 ftest

例子中,通過字母的形式成功給 ftest 文件賦予了 3 種特殊權(quán)限,此做法僅為驗(yàn)證字母形式的可行性,對 ftest 文件來說,并無實(shí)際意義。

細(xì)心的讀者可能發(fā)現(xiàn)這樣一個問題,使用 chmod 命令給文件或目錄賦予特殊權(quán)限時,原文件或目錄中存在的 x 權(quán)限會被替換成 s 或 t,而當(dāng)我們使用 chmod 命令消除文件或目錄的特殊權(quán)限時,原本消失的 x 權(quán)限又會顯現(xiàn)出來。

這是因?yàn)?,無論是 SUID、SGID 還是 SBIT,它們只針對具有 x 權(quán)限的文件或目錄有效。沒有 x 權(quán)限的文件或目錄,即便賦予特殊權(quán)限,也無法發(fā)揮它們的功能,沒有任何意義。

例如,我們就是要給不具有 x 權(quán)限的文件或目錄賦予特殊權(quán)限,看看有什么效果:

[root@localhost ~]# chmod 7666 ftest
[root@localhost ~]# ll ftest
-rwSrwSrwT. 1 root root Apr 23:54 ftest

可以看到,相應(yīng)的權(quán)限位會被標(biāo)記為 S(大寫)和 T(大寫),指的就是設(shè)置的 SUID、SGID 和 SBIT 權(quán)限沒有意義。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 台州市| 蒲江县| 高唐县| 古浪县| 宁阳县| 岚皋县| 庆元县| 定边县| 和田市| 偏关县| 湖州市| 景谷| 邹平县| 虎林市| 集贤县| 永清县| 海淀区| 杭锦旗| 中西区| 达尔| 乌什县| 三门峡市| 淮阳县| 阳高县| 隆昌县| 邯郸县| 安福县| 禄丰县| 张家川| 开远市| 吴江市| 闵行区| 满洲里市| 博客| 邢台县| 富民县| 鄄城县| 和田市| 绥中县| 晋江市| 大埔县|