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