目錄
一慕趴、 文件和目錄權(quán)限chmod
二、 更改所有者和所屬組chown
三鄙陡、 umask
四冕房、隱藏權(quán)限lsattr/chattr
一、 文件和目錄權(quán)限chmod
1.文件和目錄的權(quán)限
前面提到過(guò)在ls -l
命令后顯示的結(jié)果中趁矾,前面第1位字符表示文件類型耙册,用來(lái)區(qū)分文件和目錄。第2~10位字符表示權(quán)限毫捣,這9位字符每3位為一組详拙,均為rwx這3個(gè)參數(shù)的組合。其中蔓同,r代表可讀溪厘,w代表可寫(xiě),x代表可執(zhí)行牌柄。前3位位所有者(user)的權(quán)限,中間3位為所屬組(group)的權(quán)限侧甫,最后3位為其他非本群組用戶(others)的權(quán)限珊佣。另外,在第十位字符后面有一個(gè)點(diǎn)“.”披粟,這個(gè)“.”表示這個(gè)文件受制于SELinux咒锻。如果文件或目錄使用了SELinux context的屬性,這里會(huì)是一個(gè)“.”守屉。
rwx對(duì)文件和目錄所代表的意義如下:
r(Read惑艇,讀取):對(duì)文件而言,具有讀取文件內(nèi)容的權(quán)限拇泛;對(duì)目錄來(lái)說(shuō)滨巴,具有瀏覽目錄的權(quán)限。
w(Write,寫(xiě)入):對(duì)文件而言俺叭,具有新增恭取、修改文件內(nèi)容的權(quán)限;對(duì)目錄來(lái)說(shuō)熄守,具有刪除蜈垮、移動(dòng)目錄內(nèi)文件的權(quán)限耗跛。
x(eXecute,執(zhí)行):對(duì)文件而言攒发,具有執(zhí)行文件的權(quán)限调塌;對(duì)目錄了來(lái)說(shuō)該用戶具有進(jìn)入目錄的權(quán)限。
-:表示不具有該項(xiàng)權(quán)限惠猿。
下面舉例說(shuō)明:
-rwx------: 文件所有者對(duì)文件具有讀取羔砾、寫(xiě)入和執(zhí)行的權(quán)限。
-rwx--r--: 文件所有者具有讀紊扬、寫(xiě)與執(zhí)行的權(quán)限蜒茄,其他用戶則具有讀取的權(quán)限。
-rw-rw-r-x: 文件所有者與同組用戶對(duì)文件具有讀寫(xiě)的權(quán)限餐屎,而其他用戶僅具有讀取和執(zhí)行的權(quán)限檀葛。
drwx--x--x: 目錄所有者具有讀寫(xiě)與進(jìn)入目錄的權(quán)限,其他用戶近能進(jìn)入該目錄,卻無(wú)法讀取任何數(shù)據(jù)腹缩。
drwx------: 除了目錄所有者具有完整的權(quán)限之外屿聋,其他用戶對(duì)該目錄完全沒(méi)有任何權(quán)限。
[root@minglinux-01 ~]# ls -l
總用量 12
drwxr-xr-x. 2 root root 28 9月 13 22:19 123
-rw-r--r--. 1 root root 5586 9月 13 23:31 1.txt
drwxr-xr-x. 3 root root 17 9月 13 22:33 456
drwxr-xr-x. 2 root root 28 9月 13 22:42 789
-rw-------. 1 root root 1420 9月 5 01:26 anaconda-ks.cfg
2.更改文件和目錄的權(quán)限
為了方便更改文件的權(quán)限藏鹊,Linux使用數(shù)字代替rwx润讥,具體規(guī)則為:r等于4,w等于2盘寡,x等于1楚殿,-等于0。
- 命令
chmod
命令chmod
(change mode的簡(jiǎn)寫(xiě))用于改變用戶對(duì)文件/目錄的讀寫(xiě)執(zhí)行權(quán)限竿痰,其格式為:chmod [-R] xyz 文件名(這里的xyz表示數(shù)字)脆粥。其中-R選項(xiàng)的作用是級(jí)聯(lián)更改。值得注意的是影涉,在Linux系統(tǒng)中变隔,一個(gè)目錄的默認(rèn)權(quán)限為755,而一個(gè)文件的默認(rèn)權(quán)限為644蟹倾。示例如下:
[root@minglinux-01 ~]# mkdir dir1
[root@minglinux-01 ~]# touch dir1/test1
[root@minglinux-01 ~]# ls -ld dir1/
drwxr-xr-x. 2 root root 19 9月 14 23:16 dir1/
[root@minglinux-01 ~]# ls -l dir1/
總用量 0
-rw-r--r--. 1 root root 0 9月 14 23:16 test1
[root@minglinux-01 ~]# chmod 750 dir1
[root@minglinux-01 ~]# ls -ld dir1
drwxr-x---. 2 root root 19 9月 14 23:16 dir1
[root@minglinux-01 ~]# ls -l dir1/test1
-rw-r--r--. 1 root root 0 9月 14 23:16 dir1/test1
[root@minglinux-01 ~]# chmod 700 dir1/test1
[root@minglinux-01 ~]# ls -l dir1/test1
-rwx------. 1 root root 0 9月 14 23:16 dir1/test1
[root@minglinux-01 ~]# chmod -R 700 dir1
[root@minglinux-01 ~]# ls -ld dir1
drwx------. 2 root root 19 9月 14 23:16 dir1
[root@minglinux-01 ~]# ls -l dir1
總用量 0
-rwx------. 1 root root 0 9月 14 23:16 test1
chmod
還支持使用rwx的方式來(lái)設(shè)置權(quán)限匣缘。我們可以使用u、g和o來(lái)分別表示user鲜棠、group和others的屬性肌厨,用a代表all(即全部)。示例命令如下:
[root@minglinux-01 ~]# chmod u=rwx,og=rx dir1/test1
[root@minglinux-01 ~]# ls -l dir1/test1
-rwxr-xr-x. 1 root root 0 9月 14 23:16 dir1/test1
此外豁陆,我們還可以針對(duì)u夏哭、g、o和a献联,增加或者減少它們的某個(gè)權(quán)限(讀竖配、寫(xiě)或執(zhí)行)何址,示例命令如下:
[root@minglinux-01 ~]# chmod u-x dir1/test1
[root@minglinux-01 ~]# ls -l dir1
總用量 0
-rw-r-xr-x. 1 root root 0 9月 14 23:16 test1
[root@minglinux-01 ~]# chmod a-x dir1/test1
[root@minglinux-01 ~]# ls -l dir1/test1
-rw-r--r--. 1 root root 0 9月 14 23:16 dir1/test1
[root@minglinux-01 ~]# chmod u+x dir1/test1
[root@minglinux-01 ~]# ls -l dir1/test1
-rwxr--r--. 1 root root 0 9月 14 23:16 dir1/test1
二、 更改所有者和所屬組chown
- 命令
chown
`chown(change mode的簡(jiǎn)寫(xiě))命令可以更改文件的所有者进胯,其格式為:chown [-R] 賬戶名 文件名或者chown [-R] 賬戶名:組名 文件名用爪。這里的-R選項(xiàng)只適用于目錄,作用是級(jí)聯(lián)更改胁镐。示例命令如下:
[root@minglinux-01 ~]# mkdir dir2
[root@minglinux-01 ~]# useradd user1
[root@minglinux-01 ~]# touch dir2/test2
[root@minglinux-01 ~]# chown user1 dir2
[root@minglinux-01 ~]# ls -ld dir2
drwxr-xr-x. 2 user1 root 19 9月 14 23:53 dir2
[root@minglinux-01 ~]# ls -l dir2/
總用量 0
-rw-r--r--. 1 root root 0 9月 14 23:53 test2
[root@minglinux-01 ~]# groupadd testgroup
[root@minglinux-01 ~]# chown -R user1:testgroup dir2
[root@minglinux-01 ~]# ls -l dir2總用量 0
-rw-r--r--. 1 user1 testgroup 0 9月 14 23:53 test2
-
chgrp
命令
chgrp
(change group)命令可以更改文件的所屬組偎血,其格式為:chgrp [組名] [文件名],示例命令如下:
[root@minglinux-01 ~]# mkdir dir3
[root@minglinux-01 ~]# touch dir3/test3
[root@minglinux-01 ~]# ls -l dir3/test3
-rw-r--r--. 1 root root 0 9月 15 00:05 dir3/test3
[root@minglinux-01 ~]# chgrp testgroup dir3/test3
[root@minglinux-01 ~]# ls -l dir3/test3
-rw-r--r--. 1 root testgroup 0 9月 15 00:05 dir3/test3
chgrp
命令還可以更改目錄的所屬組盯漂,示例如下:
[root@minglinux-01 ~]# ls -ld dir3
drwxr-xr-x. 2 root root 19 9月 15 00:05 dir3
[root@minglinux-01 ~]# chgrp testgroup dir3
[root@minglinux-01 ~]# ls -ld dir3
drwxr-xr-x. 2 root testgroup 19 9月 15 00:05 dir3
[root@minglinux-01 ~]# ls -l dir3
三颇玷、 umask
在Linux系統(tǒng)中,一個(gè)目錄的默認(rèn)權(quán)限為755就缆,而一個(gè)文件的默認(rèn)權(quán)限為644帖渠,這是由umask
決定的。
-
umask
命令
umask
命令用于改變文件的默認(rèn)屬性竭宰,其格式為:umask xxx(這里的xxx代表3個(gè)數(shù)字)空郊。在命令行輸入umask:
[root@minglinux-01 ~]# umask
0022
這里umask的預(yù)設(shè)值是0022,這表示什么含義呢切揭?咱們先來(lái)看一下兩條規(guī)則狞甚。
若用戶建立普通文件,則預(yù)設(shè)沒(méi)有可執(zhí)行權(quán)限廓旬,只有r哼审、w兩個(gè)權(quán)限,最大值為666(-rw-rw-rw-)孕豹。
若用戶建立目錄棺蛛,則預(yù)設(shè)所有權(quán)限均開(kāi)放,即777(drwxrwxrwx)巩步。
umask數(shù)值代表的含義為以上兩條規(guī)則中的默認(rèn)值(文件為666,目錄為777)需要減掉的權(quán)限桦踊,所以:
目錄的權(quán)限為rwxrwxrwx - ----w--w- = rwxr-xr-x
普通文件的權(quán)限為rw-rw-rw- - -------w- = rw-rw-r--
umask的值是可以自定義的椅野,比如設(shè)定umask為002,示例命令:
[root@minglinux-01 ~]# umask 002
[root@minglinux-01 ~]# mkdir dir4
[root@minglinux-01 ~]# ls -ld dir4
drwxrwxr-x. 2 root root 6 9月 15 00:42 dir4
[root@minglinux-01 ~]# touch dir4/test4
[root@minglinux-01 ~]# ls -l dir4/test4
-rw-rw-r--. 1 root root 0 9月 15 00:42 dir4/test4
這里我們可以看到創(chuàng)建的目錄默認(rèn)權(quán)限變?yōu)?55籍胯,而文件的默認(rèn)權(quán)限為664竟闪。
四、隱藏權(quán)限lsattr/chattr
-
chattr
命令
命令chattr
(change attribute)的格式為:chattr [+-=] [Asaci] [文件名或者目錄名]杖狼,其中炼蛤,+、-和=分別表示增加蝶涩、減少和設(shè)定理朋。各個(gè)選項(xiàng)的含義如下:
A:增加該屬性后絮识,表示文件或目錄的atime將不可以修改。
s:增加該屬性后嗽上,會(huì)將數(shù)據(jù)同步寫(xiě)入磁盤中次舌。
a:增加該屬性后,表示只能追加不能刪除兽愤,非root用戶不能設(shè)定該屬性彼念。
c:增加該屬性后,表示自動(dòng)壓縮該文件浅萧,讀取時(shí)會(huì)自動(dòng)解壓逐沙。
i:增加該屬性后,表示文件不能刪除洼畅、重命名吩案、設(shè)定鏈接、寫(xiě)入以及新增數(shù)據(jù)土思。示例命令如下:
[root@minglinux-01 ~]# chattr +i dir2
[root@minglinux-01 ~]# touch dir2/test5
touch: 無(wú)法創(chuàng)建"dir2/test5": 權(quán)限不夠
[root@minglinux-01 ~]# chattr -i dir2
[root@minglinux-01 ~]# touch dir2/test5
[root@minglinux-01 ~]# chattr +i dir2
[root@minglinux-01 ~]# rm -f dir2/test5
rm: 無(wú)法刪除"dir2/test5": 權(quán)限不夠
[root@minglinux-01 ~]# chattr -i dir2
[root@minglinux-01 ~]# touch dir2/test6
[root@minglinux-01 ~]# ls dir2
test2 test5 test6
[root@minglinux-01 ~]# chattr +a dir2
[root@minglinux-01 ~]# rm -f dir2/test6
rm: 無(wú)法刪除"dir2/test6": 不允許的操作
[root@minglinux-01 ~]# touch dir2/test7
[root@minglinux-01 ~]# ls dir2
test2 test5 test6 test7
文件同樣適用以上權(quán)限务热,這里不再演示。
-
lsattr
命令
lsattr
(list attribute)己儒,該命令用于讀取文件或者目錄的特殊權(quán)限崎岂,其格式為:lsattr [-aR] [文件/目錄名]。
-a:類似于ls的-a選項(xiàng)闪湾,即連同隱藏文件一同列出冲甘。
-R:連同子目錄的數(shù)據(jù)一同列出。
示例命令:
[root@minglinux-01 ~]# lsattr dir2
---------------- dir2/test2
---------------- dir2/test5
---------------- dir2/test6
---------------- dir2/test7
[root@minglinux-01 ~]# chattr +i dir2/test6
[root@minglinux-01 ~]# chattr +a dir2/test7
[root@minglinux-01 ~]# lsattr dir2
---------------- dir2/test2
---------------- dir2/test5
----i----------- dir2/test6
-----a---------- dir2/test7
[root@minglinux-01 ~]# lsattr -aR dir2
-----a---------- dir2/.
---------------- dir2/..
---------------- dir2/test2
---------------- dir2/test5
----i----------- dir2/test6
-----a---------- dir2/test7