文件權(quán)限 Linux 針對文件權(quán)限分為三組,即用戶,用戶組,其他 可通過 ll(ls -l) 查看文件權(quán)限,此命令后續(xù)介紹
[root@localhost ~]# ll /etc/termcap
-rw-r--r--1 rootroot 807103 2007-01-07/etc/termcap
紅色部分代表文件權(quán)限
黃色部分代表該文件所屬用戶
綠色部分代表該文件所屬用戶組
對于文件權(quán)限可分為3種(嚴格說并不是3種)
| 權(quán)限種類 | 值 | 描述 |
|---|---|---|
| r | 4 | 可讀 |
| w | 2 | 可寫 |
| x | 1 | 可執(zhí)行 |
文件權(quán)限相關(guān)共10個字符,其意義分別為
第1個字符:文件類型
[d]表示文件目錄
[-]表示文件
[|]表示連接文件
[b]表示設備文件里的可供存儲的接口設備
[c]表示設備文件里面的串行端口設備,如鍵盤
第2~4個字符:用戶權(quán)限
第5~7個字符:用戶組權(quán)限
第8~10個字符:其他用戶權(quán)限
舉例
-rw-r----x1 A G1 807103 2007-01-07 /file
由上信息可看出:
該文件屬于用戶 A,屬于用戶組 G1
該文件對于用戶權(quán)限為 rw- 即為可讀寫權(quán)限
該文件對于用戶組權(quán)限為 r-- 即為可讀權(quán)限
該文件對于其他權(quán)限為--x 即為可執(zhí)行權(quán)限
假設 A,B,C 三個用戶,A B 屬于用戶組 G1 ,C 屬于用戶組 G2
那么 A 就有擁有 rw-權(quán)限
由于 B 屬于用戶組 G1,因此 B 擁有 r--權(quán)限
由于 C 屬于用戶組 G2,因此 C 擁有--x 權(quán)限
chgrp:更改文件所屬用戶組
chown:更改文件所有者
chmod:更改文件權(quán)限
chgrp
這個命令就是 change group 的簡稱,不過要被改變的組名要在/etc/group/文件內(nèi)存在才行,否則會報錯
語法:chgrp [-R] 用戶組 dirname/filename
選項與參數(shù):
-R:遞歸參數(shù)(recursive) 的持續(xù)更改,連同子目錄下的所有文件,目錄一起更改
舉例:
[root@localhost ~]# ll install.log //查看 install.log屬性
-rw-r--r-- 1 root root 35014 02-14 10:29 install.log
[root@localhost ~]# chgrp users install.log //更改用戶組為 users
[root@localhost ~]# ll install.log //查看 install.log 屬性
-rw-r--r-- 1 root users 35014 02-14 10:29 install.log
[root@localhost ~]# chgrp nogronp install.log //輸入一個無效的組
chgrp: 無效的組 “nogronp”
chown
這個命令就是 change owenr 的簡稱,不過要被改變的用戶要在/etc/passwd/文件內(nèi)存在才行,否則會報錯
語法:chown[-R] 用戶 文件/目錄
chown[-R] 用戶:組名文件/目錄
選項與參數(shù):
-R:遞歸參數(shù)(recursive) 的持續(xù)更改,連同子目錄下的所有文件一起更改
舉例:
[root@localhost ~]# ll install.log
-rw-r--r-- 1 root root 35014 02-14 10:29 install.log
[root@localhost ~]# chown bin install.log
[root@localhost ~]# ll install.log
-rw-r--r-- 1 bin root 35014 02-14 10:29 install.log
have new mail in /var/spool/mail/root
[root@localhost ~]# chown tkf:users install.log
[root@localhost ~]# ll install.log
-rw-r--r-- 1 tkf users 35014 02-14 10:29 install.log
chmod
權(quán)限設置分為2種,分別可以使用數(shù)字和符號
語法:chmod [-R] 權(quán)限 文件/目錄
chmod [-R] 符號表達式文件/目錄
|:-----|:---------------|:-------|:--------|
|chmod|u(user)g(group)o(other)a(all)|+(加入)- (除去)=(設置)|文件或目錄|
選項與參數(shù): -R:遞歸參數(shù)(recursive) 的持續(xù)更改,連同子目錄下的所有文件一起更改
舉例
[root@localhost ~]# ll baa
-rw-r--r-- 1 root root 176 2007-01-06 baa
[root@localhost ~]# chmod 754 baa
[root@localhost ~]# ll baa
-rwxr-xr-- 1 root root 176 2007-01-06 baa
[root@localhost ~]# chmod u=rw,g=x,o=x baa
[root@localhost ~]# ll baa
-rw---x--x 1 root root 176 2007-01-06 baa
[root@localhost ~]# chmod a+w baa
[root@localhost ~]# ll baa
-rw--wx-wx 1 root root 176 2007-01-06 baa
[root@localhost ~]#
R(Read):可讀取此文件的實際內(nèi)容,如讀取文本文件的文件內(nèi)容 當你具一個目錄讀取 r 權(quán)限。表示你可以查看該目錄下的文件名結(jié)構(gòu)。 W(write): 可以編輯,新增或者是修改該文件的內(nèi)容(但不含刪除該文件) 當你具一個目錄寫入 w 權(quán)限。表示你可以更改該目錄結(jié)構(gòu)
舉例
[root@localhost ~]# mkdir -m 000 /tmp/testdir //root 用戶權(quán)限為000的 文件夾 testdir
[root@localhost ~]# cd /tmp/testdir/ //超級用戶無權(quán)限也可進入
[root@localhost testdir]# touch testfile //創(chuàng)建文件
[root@localhost testdir]# chown tkf . // 將文件夾 testdir 用戶變更為 tkf,以便一會切換用戶操作
[root@localhost testdir]# ls -ald /tmp/testdir/ ./testfile
-rw-r--r-- 1 root root 0 02-19 12:59 ./testfile
d--------- 2 tkf root 4096 02-19 12:59 /tmp/testdir/
[root@localhost testdir]# su tkf //切換用戶
[tkf@localhost testdir]$ cd ..
[tkf@localhost tmp]$ ll ./testdir/ //無 r 權(quán)限
ls: ./testdir/: 權(quán)限不夠
[tkf@localhost tmp]$ chmod u+r ./testdir //分配 r 權(quán)限
[tkf@localhost tmp]$ ll ./testdir/
?--------- ? ? ? ? ? testfile //可以看到目錄結(jié)構(gòu) 但是因為無 X 權(quán)限,目錄下文件屬性看不到
[tkf@localhost tmp]$ cd testdir/ //無 x 權(quán)限
bash: cd: testdir/: 權(quán)限不夠
[tkf@localhost tmp]$ chmod u=rx ./testdir //分配 rx 權(quán)限
[tkf@localhost tmp]$ ll ./testdir/
-rw-r--r-- 1 root root 0 02-19 12:59 testfile //可以看到目錄結(jié)構(gòu)和文件屬性
[tkf@localhost tmp]$ cd testdir/
[tkf@localhost testdir]$ rm -f testfile //無 W 權(quán)限,不能刪除目錄下的文件
rm: 無法刪除 “testfile”: 權(quán)限不夠
[tkf@localhost tmp]$ chmod u=w ./testdir //僅分配 W 權(quán)限
[tkf@localhost tmp]$ ls -ald ./testdir/
d-w------- 2 tkf root 4096 02-19 12:59 ./testdir/
[tkf@localhost tmp]$ rm ./testdir/testfile //缺少 X 權(quán)限 因此刪不了
rm: 無法刪除 “./testdir/testfile”: 權(quán)限不夠
[tkf@localhost tmp]$ chmod u=rw ./testdir //分配 RW 權(quán)限
[tkf@localhost tmp]$ rm ./testdir/testfile //缺少 X 權(quán)限 因此刪不了
rm: 無法刪除 “./testdir/testfile”: 權(quán)限不夠
[tkf@localhost tmp]$ chmod u=wx ./testdir //分配 XW 權(quán)限
[tkf@localhost tmp]$ rm ./testdir/testfile //可以刪除文件,同時文件的用戶屬于 root ,在 tkf 用戶仍可以刪除
rm:是否刪除有寫保護的 一般空文件 “./testdir/testfile”? y