摘要:一、前言1. 權(quán)限包含三種:w、r、x2. 對(duì)于文件來(lái)講,只需擁有r的權(quán)限就可讀取文件內(nèi)容3. 對(duì)于目錄來(lái)講,必須擁有r、x權(quán)限才能訪(fǎng)問(wèn)目錄內(nèi)容,單有r權(quán)限是沒(méi)有意義的4. root用戶(hù)不受任何權(quán)限限制二、修改普通權(quán)限命令:chmod作用:用以修改文件的權(quán)限參數(shù):-R 遞歸地修改目錄下的所有文件的權(quán)限用法1:chmod g+w 1.txt ; chmod u+r 1.txt ; chmod o+x
一、前言
1. 權(quán)限包含三種:w、r、x
2. 對(duì)于文件來(lái)講,只需擁有r的權(quán)限就可讀取文件內(nèi)容
3. 對(duì)于目錄來(lái)講,必須擁有r、x權(quán)限才能訪(fǎng)問(wèn)目錄內(nèi)容,單有r權(quán)限是沒(méi)有意義的
4. root用戶(hù)不受任何權(quán)限限制
二、修改普通權(quán)限
命令:chmod
作用:用以修改文件的權(quán)限
參數(shù):-R 遞歸地修改目錄下的所有文件的權(quán)限
用法1:chmod g+w 1.txt ; chmod u+r 1.txt ; chmod o+x 1.txt
用法2:chmod u=rwx,g=r--,o=r-- 1.txt
用法3:chmod 777 1.txt ; chmod 735 1.txt
說(shuō)明:
1. u、g、o分別代表用戶(hù),組和其他用戶(hù);a可以代指ugo
2. +、- 代表添加或刪除對(duì)應(yīng)權(quán)限
3. r、w、x代表三種權(quán)限
4. 普通權(quán)限用數(shù)字表示為:r = 4 w = 2 x = 1 如:rw- = 4+2 = 6;rwx = 4+2+1 = 7
三、修改默認(rèn)權(quán)限
前言:每一個(gè)終端都擁有一個(gè)umask屬性,用來(lái)確定新建文件的默認(rèn)權(quán)限,比如我們新建一個(gè)目錄,它的默認(rèn)權(quán)限是rwxr-xr-x;我們新建一個(gè)文件,它的默認(rèn)權(quán)限是rw-r--r--
umask值用數(shù)字表示:
[root@root ~]# umask 0022
說(shuō)明:
1. 第一個(gè)0表示特殊權(quán)限,后面三個(gè)代表ugo權(quán)限
2. 在Linux中,默認(rèn)目錄權(quán)限是755,文檔權(quán)限是644
如何修改umask值:
[root@root ~]# umask 055
如何通過(guò)umask值來(lái)計(jì)算默認(rèn)權(quán)限:
目錄的計(jì)算:(rwxrwxrwx)– (umask值)=(目錄權(quán)限)
文件的計(jì)算:(rw-rw-rw-)–(umask值)= (文件權(quán)限)
例子:
如果設(shè)置 umask 為 001 (用字母表示為--------x), 那么用戶(hù)默認(rèn)創(chuàng)建的目錄和文件的權(quán)限是什么樣子的?
目錄的權(quán)限是:(rwxrwxrwx)–(--------x)=(rwxrwxrw-)= 776
文件的權(quán)限是:(rw-rw-rw-)–(--------x)=(rw-rw-rw-)= 666
所以得出結(jié)論,當(dāng)umask為001時(shí),目錄權(quán)限是776,文件權(quán)限是666
四、修改特殊權(quán)限
1 特殊權(quán)限:suid
suid是什么:suid(set_uid)讓普通用戶(hù)對(duì)可執(zhí)行的二進(jìn)制文件(如passwd這個(gè)命令)臨時(shí)擁有該文件所屬用戶(hù)的權(quán)限來(lái)運(yùn)行(這里要注意的是suid權(quán)限只對(duì)可執(zhí)行的二進(jìn)制文件有效,對(duì)普通文件是無(wú)效的)
我們來(lái)舉個(gè)例子:
假設(shè)我們現(xiàn)在是以普通用戶(hù)登錄,當(dāng)我們要改密碼時(shí)使用passwd命令,我們改密碼需要借用/etc/shadow這個(gè)配置文件(/etc/shadow是用來(lái)存放密碼的配置文件),但是如下,/etc/shadow是沒(méi)有任何權(quán)限的,也就是說(shuō)這個(gè)文件我們不可讀不可寫(xiě)不可執(zhí)行
[root@root ~]# ls -l /etc/shadow----------. 1 root root 629 11月 3 03:28 /etc/shadow
這時(shí)我們?cè)趺崔k呢?我們就要借助root用戶(hù)的權(quán)限(注意:root用戶(hù)不受任何權(quán)限的限制)來(lái)執(zhí)行passwd這個(gè)命令以修改/etc/shadow這個(gè)配置文件
如果你不想讓普通用戶(hù)修改自己的密碼,只需要chmod u-s /usr/bin/passwd
怎樣添加suid權(quán)限?
語(yǔ)法一:chmod u+s 文件名
語(yǔ)法二:chmod 4755 文件名 (4表示s權(quán)限,755表示普通權(quán)限)
說(shuō)明:與普通權(quán)限一樣,特殊權(quán)限也可以使用數(shù)字方式表示:suid = 4、sgid = 2、sticky = 1
我們來(lái)舉個(gè)例子:
我們知道,普通用戶(hù)是不能瀏覽/root目錄的,因此我們要給ls這個(gè)命令添加s權(quán)限(注意只有該文件的所屬用戶(hù)才能添加特殊權(quán)限),以臨時(shí)擁有所屬用戶(hù)的權(quán)限來(lái)查看/root目錄
[root@root ~]# su – pzk //我們先切換到普通用戶(hù) [pzk@root ~]$ ls /root/ //普通用戶(hù)沒(méi)有權(quán)限瀏覽/root目錄 ls: 無(wú)法打開(kāi)目錄/root/: 權(quán)限不夠 [pzk@root ~]$ su - //我們切換到root用戶(hù)去把ls命令添加s權(quán)限 密碼: [root@root ~]# chmod u+s /bin/ls [root@root ~]# su - pzk [pzk@root ~]$ ls /root/ //ls擁有了s權(quán)限就可以瀏覽了 test.sh test.txt
那么,我們?cè)賮?lái)看一個(gè)現(xiàn)象,如下圖,在權(quán)限位第3位出現(xiàn)了s和S,這又是什么情況呢?
為什么特殊權(quán)限有的大寫(xiě)有的小寫(xiě)?
系統(tǒng)是這樣規(guī)定的, 如果本來(lái)在該位上有x, 則這些特殊標(biāo)志顯示為小寫(xiě)字母(s, s, t)否則顯示為大寫(xiě)字母(S, S, T),我們知道,權(quán)限位的前3位是user的權(quán)限,當(dāng)出現(xiàn)s的時(shí)候,表明user還擁有x權(quán)限,當(dāng)出現(xiàn)S的時(shí)候,user就不擁有x權(quán)限了,但是普通用戶(hù)使用ls命令的時(shí)候,使用的權(quán)限位是other的權(quán)限位,因此對(duì)于S不擁有x權(quán)限就沒(méi)關(guān)系了,只要other這個(gè)權(quán)限位中有x權(quán)限就可以運(yùn)行l(wèi)s這個(gè)命令了(root用戶(hù)倒是無(wú)所謂了,因?yàn)閞oot用戶(hù)不受任何權(quán)限限制)
2 特殊權(quán)限:sgid
sgid是什么:我們前面講過(guò),當(dāng)s這個(gè)標(biāo)志出現(xiàn)在文件所有者的x權(quán)限上時(shí),則就被稱(chēng)為Set UID。那么把這個(gè)s放到文件的所屬用戶(hù)組x位置上的話(huà),就是SGID
當(dāng)出現(xiàn)s的時(shí)候,表明擁有x權(quán)限,當(dāng)出現(xiàn)S的時(shí)候,不擁有x權(quán)限
sgid有什么用:和suid一樣,只是sgid是獲得該程序所屬用戶(hù)組的權(quán)限,以所屬組的權(quán)限去執(zhí)行。
對(duì)sgid有幾點(diǎn)需要我們注意:
1. sgid對(duì)二進(jìn)制程序有用;
2. 程序執(zhí)行者對(duì)于該程序來(lái)說(shuō),需具備x的權(quán)限;
3. sgid主要用在目錄上;
如何添加sgid權(quán)限?
語(yǔ)法一:chmod g+s 文件名
語(yǔ)法二:chmod 2755 文件名 (2表示sgid權(quán)限,755表示普通權(quán)限)
說(shuō)明:與普通權(quán)限一樣,特殊權(quán)限也可以使用數(shù)字方式表示:suid = 4、sgid = 2、sticky = 1
3 特殊權(quán)限:sticky
sticky是什么:前面的suid和sgid是針對(duì)user和group來(lái)設(shè)置的,那么sticky就是針對(duì)others來(lái)設(shè)置的了,和suid/sgid一樣,只是功能不同而已
sticky有什么用:SBIT(Sticky Bit)目前只針對(duì)目錄有效,對(duì)于目錄的作用是:當(dāng)用戶(hù)在該目錄下建立文件或目錄時(shí),僅有自己與 root才有權(quán)力刪除。最具有代表的就是/tmp目錄,任何人都可以在/tmp內(nèi)增加、修改文件,但僅有該文件/目錄建立者與root能夠刪除自己的目錄或文件。
當(dāng)出現(xiàn)t的時(shí)候,表明擁有x權(quán)限,當(dāng)出現(xiàn)T的時(shí)候,不擁有x權(quán)限
如何添加sticky權(quán)限?
語(yǔ)法一:chmod o+s 文件名
語(yǔ)法二:chmod 1755 文件名 (1表示sticky權(quán)限,755表示普通權(quán)限)
說(shuō)明:與普通權(quán)限一樣,特殊權(quán)限也可以使用數(shù)字方式表示:suid = 4、sgid = 2、sticky = 1