修改LINUX目錄或文件的權(quán)限和所有權(quán)詳解
一、文件和目錄的權(quán)限
1.文件的權(quán)限:
文件所屬用戶 所屬用戶組 其它用戶
權(quán)限有:
讀:read 數(shù)字表示為4:110
寫:write 數(shù)字表示為2:10
執(zhí)行:execute 數(shù)字表示為:1
0 1 10 11 110 111 1110 1111
0 1 2 3 4 5 6 7
具體解釋如下:
1: 1 可執(zhí)行
2:10 可寫
3. 11=10+1 可寫可執(zhí)行
4. 100 可讀
5. 101=100+1 可讀可執(zhí)行(5=4+1)
6. 110=100+10 可讀可寫(6=4+2)
7. 111=100+10+1 可讀可寫可執(zhí)行(7=4+2+1)
2.權(quán)限的查看:
ls -l|more/less
二、使用chmod和數(shù)字改變文件或目錄的訪問權(quán)限
文件和目錄的權(quán)限表示,是用rwx這三個(gè)字符來代表所有者、用戶組和其他用戶的權(quán)限。有時(shí)候,字符似乎過于麻煩,因此還有另外一種方法是以數(shù)字來表示權(quán)限,而且僅需三個(gè)數(shù)字。
r: 對(duì)應(yīng)數(shù)值4
w: 對(duì)應(yīng)數(shù)值2
x:對(duì)應(yīng)數(shù)值1
-:對(duì)應(yīng)數(shù)值0
數(shù)字設(shè)定的關(guān)鍵是mode的取值,一開始許多初學(xué)者會(huì)被搞糊涂,其實(shí)很簡(jiǎn)單,我們將rwx看成二進(jìn)制數(shù),如果有則有1表示,沒有則有0表示,那么rwx r-x r- -則可以表示成為:
111 101 100
再將其每三位轉(zhuǎn)換成為一個(gè)十進(jìn)制數(shù),就是754。
例如,我們想讓a.txt這個(gè)文件的權(quán)限為:
自己 同組用戶 其他用戶
可讀 是 是 是
可寫 是 是
可執(zhí) 行
那么,我們先根據(jù)上表得到權(quán)限串為:rw-rw-r--,那么轉(zhuǎn)換成二進(jìn)制數(shù)就是110 110 100,再每三位轉(zhuǎn)換成為一個(gè)十進(jìn)制數(shù),就得到664,因此我們執(zhí)行命令:
[root@localhost ~]# chmod 664 a.txt
按照上面的規(guī)則,rwx合起來就是4+2+1=7,一個(gè)rwxrwxrwx權(quán)限全開放的文件,數(shù)值表示為777;而完全不開放權(quán)限的文件“---------”其數(shù)字表示為000。下面舉幾個(gè)例子:
-rwx------:等于數(shù)字表示700。
-rwxr—r--:等于數(shù)字表示744。
-rw-rw-r-x:等于數(shù)字表示665。
drwx—x—x:等于數(shù)字表示711。
drwx------:等于數(shù)字表示700。
在文本模式下,可執(zhí)行chmod命令去改變文件和目錄的權(quán)限。我們先執(zhí)行l(wèi)s -l 看看目錄內(nèi)的情況:
[root@localhost ~]# ls -l
總用量 368
-rw-r--r-- 1 root root 12172 8月 15 23:18 conkyrc.sample
drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop
-r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6
drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic
-rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0
-rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1
-rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo
drwxr-xr-x 2 root root 48 9月 6 13:06 vmware
#p#可以看到當(dāng)然文件conkyrc.sample文件的權(quán)限是644,然后把這個(gè)文件的權(quán)限改成777。執(zhí)行下面命令
[root@localhost ~]# chmod 777 conkyrc.sample
然后ls -l看一下執(zhí)行后的結(jié)果:
[root@localhost ~]# ls -l
總用量 368
-rwxrwxrwx 1 root root 12172 8月 15 23:18 conkyrc.sample
drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop
-r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6
drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic
-rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0
-rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1
-rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo
drwxr-xr-x 2 root root 48 9月 6 13:06 vmware
可以看到conkyrc.sample文件的權(quán)限已經(jīng)修改為rwxrwxrwx
如果要加上特殊權(quán)限,就必須使用4位數(shù)字才能表示。特殊權(quán)限的對(duì)應(yīng)數(shù)值為:
s或 S (SUID):對(duì)應(yīng)數(shù)值4。
s或 S (SGID):對(duì)應(yīng)數(shù)值2。
t或 T :對(duì)應(yīng)數(shù)值1。
用同樣的方法修改文件權(quán)限就可以了
例如:
[root@localhost ~]# chmod 7600 conkyrc.sample
[root@localhost ~]# ls -l
總用量 368
-rwS--S--T 1 root root 12172 8月 15 23:18 conkyrc.sample
drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop
-r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6
drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic
-rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0
-rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1
-rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo
drwxr-xr-x 2 root root 48 9月 6 13:06 vmware
加入想一次修改某個(gè)目錄下所有文件的權(quán)限,包括子目錄中的文件權(quán)限也要修改,要使用參數(shù)-R表示啟動(dòng)遞歸處理。
例如:
[root@localhost ~]# chmod 777 /home/user 注:僅把/home/user目錄的權(quán)限設(shè)置為rwxrwxrwx
[root@localhost ~]# chmod -R 777 /home/user 注:表示將整個(gè)/home/user目錄與其中的文件和子目錄的權(quán)限都設(shè)置為rwxrwxrwx
三、使用命令chown改變目錄或文件的所有權(quán)
文件與目錄不僅可以改變權(quán)限,其所有權(quán)及所屬用戶組也能修改,和設(shè)置權(quán)限類似,用戶可以通過圖形界面來設(shè)置,或執(zhí)行chown命令來修改。
我們先執(zhí)行l(wèi)s -l看看目錄情況:
[root@localhost ~]# ls -l
總用量 368
-rwxrwxrwx 1 root root 12172 8月 15 23:18 conkyrc.sample
drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop
-r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6
drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic
-rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0
-rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1
-rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo
drwxr-xr-x 2 root root 48 9月 6 13:06 vmware
可以看到conkyrc.sample文件的所屬用戶組為root,所有者為root。
執(zhí)行下面命令,把conkyrc.sample文件的所有權(quán)轉(zhuǎn)移到用戶user:
[root@localhost ~]# chown user conkyrc.sample
[root@localhost ~]# ls -l
總用量 368
-rwxrwxrwx 1 user root 12172 8月 15 23:18 conkyrc.sample
drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop
-r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6
drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic
-rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0
-rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1
-rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo
drwxr-xr-x 2 root root 48 9月 6 13:06 vmware
要改變所屬組,可使用下面命令:
[root@localhost ~]# chown :users conkyrc.sample
[root@localhost ~]# ls -l
總用量 368
-rwxrwxrwx 1 user users 12172 8月 15 23:18 conkyrc.sample
drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop
-r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6
drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic
-rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0
-rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1
-rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo
drwxr-xr-x 2 root root 48 9月 6 13:06 vmware
要修改目錄的權(quán)限,使用-R參數(shù)就可以了,方法和前面一樣。
【編輯推薦】