Linux下文件的權(quán)限管理
文章主要從以下幾個方面展開介紹:
- 文件的屬性和權(quán)限
- 文件的權(quán)限和屬性的更改
- 文件和目錄的默認and隱藏權(quán)限
- 文件的特殊權(quán)限
注: 建議在Linux下使用root權(quán)限練習(xí)本部分丧靡;
第一部分 初識文件的類型和權(quán)限
1.1 文件類型和權(quán)限的查看方式
使用Linux的同學(xué)都知道,在Linux下列出當(dāng)前目錄下的文件和子目錄的命令是 ls籽暇, 同時 ls 又有許多參數(shù)温治,我們現(xiàn)在要查看文件的類型和權(quán)限使用ls -al;
(也可單獨用 ll 或者 stat 命令查看一個文件的屬性)
:# ls -l / ; // 查看根目錄下所有文件和目錄
( 取部分截圖)
分析: 我們可以看到每個文件都有7列的選項戒悠,那么我們就來分析這七列內(nèi)容分別代表的含義熬荆;
取其中一行做示范:
-r-xr-xr-x. 5 root root 1024 Dec 24 04:00 test
[類型和屬性] [鏈接數(shù)] [屬主] [屬組][文件大小] [修改時間][文件名]
[編號] 1 2 3 4 5 6 7
1.1.1:文件的類型和權(quán)限
-r-xr-xr-x 這個字符串我們需要分成兩部分來看,第一部分是第一個字符绸狐,代表文件的類型卤恳;
linux下文件的類型通常有以下幾類:
d : 代表一個目錄累盗;
- : 代表一個普通文件;
l : 代表一個普通文件突琳;
b : 代表設(shè)備文件里面的可供存儲的接口設(shè)備若债;
c : 代表設(shè)備文件里的串行端口設(shè)備;
比較常見的就是前三種文件類型拆融,那么此時我們知道了test 是一個普通文件蠢琳;
那么-r-xr-xr-x 剩余的那部分有代表了什么意思呢?代表了文件的權(quán)限镜豹;
我們可以又將 r-x r-x r-x 分為三部分來看挪凑,三個字符一組;
前三個字符代表的是文件的屬主(文件的擁有者)的權(quán)限:Owner ;
中間三個字符代表文件的屬組的同組其它用戶的權(quán)限: Group;
最后三個字符就代表剩余的其它用戶的權(quán)限:Others;
那么權(quán)限其中字符的含義是什么呢逛艰?
r : 代表可讀權(quán)限躏碳,即可以讀取文件內(nèi)容;
w : 代表可修改權(quán)限散怖,即可以對文件進行增刪查改菇绵;
x : 代表文件可執(zhí)行權(quán)限,對于目錄又有不同的含義镇眷,后面說明咬最;
- : 代表缺省欠动;
那么此時我們就可以了解到 test 文件的權(quán)限為永乌,test的屬主對它擁有可讀可執(zhí)行權(quán)限,test的屬組的其它同組用戶對它擁有可讀可執(zhí)行權(quán)限具伍,而剩余的其它用戶對test的權(quán)限也是可讀可執(zhí)行翅雏;
當(dāng)然,文件的權(quán)限的表示形式可不止字符一種人芽,這個我們在講修改文件權(quán)限的時候進行講述望几;
1.1.3 : 文件的屬主和屬組,即編號3和編號4
我在這里將文件的屬主和屬組放在一塊講萤厅;
所謂屬主:即文件的擁有者橄抹,是存在于Linux中的一個用戶; 所謂屬組:即文件的的所屬組,是存在于Linux中的一個用戶組惕味;
在上面的的例子中楼誓,文件test的屬主和屬組都是root,那么我們在在說明代表文件權(quán)限的9個字母的時候也說了文件的屬主和屬組這個概念, 那么名挥,這兩個有什么作用呢疟羹?
當(dāng)然就是直觀的讓你知道文件的屬主和屬組; 這里大概說明一下,具體的會在關(guān)于Linux的用戶管理中講到;
下一小節(jié)阁猜,會該訴你如何對文件的屬組和屬組進行修改;
1.1.6 : 文件的名字蹋艺,即編7
這個再明顯不過了剃袍,本來可以一句話帶過的,但是在Linux下就不得不提一下和windows的區(qū)別之處捎谨;
即民效,在Linux下文件的名字的后綴是沒有實際意義的,真正的作用是可以讓用戶顯示的區(qū)別這些不同的文件涛救,而真正對文件的起作用的還是我們前面講過的文件的9個字符權(quán)限畏邢,其中最關(guān)鍵的還是 x 可執(zhí)行權(quán)限,決定這個文件是否為可執(zhí)行文件(注意不要和目錄搞混了)检吆;
而對于可執(zhí)行文件的執(zhí)行方法無外乎 ./ 的方法舒萎,就像你在執(zhí)行 C的可執(zhí)行文件一樣;
第二部分:文件的權(quán)限和屬性的更改
前面針對 ll 命令的結(jié)果蹭沛,對文件的信息進行了分析臂寝,其中最為重要的無外乎表示文件權(quán)限的那9個三組的字符組合;那么下面我們就這9個字符進行更深一步的學(xué)習(xí)摊灭;
2.1 權(quán)限的2種表示與對應(yīng)修改方式
Linux對文件的權(quán)限的表示咆贬,一般情況下都是采用我們前面所看到的字符的表示方法,三個字符一組帚呼,分別表示文件的屬主掏缎,屬組和其它用戶;
第二種方式即將字符對應(yīng)為二進制的01煤杀,同樣三個三個一組眷蜈,為了方便起見,又將三個一組的01轉(zhuǎn)化為8進制表示沈自,這樣就可以用3個數(shù)字表示文件的權(quán)限了端蛆;
例如: 字符表示 :
-rwx r-x --x
二進制表示: 111 101 001
八進制表示 : 7 5 1
對于字符到二進制之間的轉(zhuǎn)化關(guān)系很簡單,即有對應(yīng)位上有權(quán)限即為1 酥泛,沒有即為0今豆; 而二進制到八進制的轉(zhuǎn)換就更加簡單了,即按照三個二進制向十進制的轉(zhuǎn)換就可以柔袁,因為8以下的表示八進制和十進制是一樣的呆躲;
接下來就是講講怎么去修改權(quán)限了;
在Linux下我們對文件的權(quán)限的修改命令即是: chmod;
命令格式:
chmod [選項] [模式[,模式] 文件名
2.1.1 選項: 先以字符表示為例
- 用戶對象
u : 表示用戶捶索,即文件屬主插掂;
g : 表示屬組,即同組的其它用戶的權(quán)限;
o : 表示其它用戶辅甥;
a : 表示所用用戶酝润;
- 操作符號
+: 添加某個權(quán)限;
-:取消某個權(quán)限要销;
=:賦予給定的權(quán)限; - 操作權(quán)限
r : 可讀
w :可寫
x : 可執(zhí)行
2.1.2 八進制權(quán)限的修改
上面演示了用chmod如何修改字符表示的權(quán)限夏块,下面我們看看八進制表示的權(quán)限怎么修改:
很簡單疏咐,我們是怎么從字符權(quán)限轉(zhuǎn)換為八進制的權(quán)限的方法如果你會了脐供,就是分分鐘掌握的事情浑塞,舉個最簡單的例子政己;
比如: 我想要test 變?yōu)?-rwx rwx rwx 權(quán)限的文件,用八進制修改怎么搞歇由?
chmod 777 test //就是怎么簡單
2.1.3 文件屬性的修改
這里我們對文件屬性的修改更直接點說就是對文件的屬主和屬組的修改仅孩;
什么? 這都可以改辽慕?
當(dāng)然,在Linux下你就要把自己當(dāng)成是主任赦肃,不會再是windows下被限制自由的你溅蛉,Linux就是人民當(dāng)家做主的自由平臺他宛,只要你愿意船侧,隨便你怎么搞厅各;
扯遠了,队塘,袁梗,,憔古,,鸿市,锯梁,即碗,,陌凳,剥懒,,合敦,初橘,,
至于修改文件的屬組和屬主蛤肌,我們需要學(xué)習(xí)兩條命令:
chgrp 和 chown
chgrp 用來修改文件的 屬主壁却,用法很簡單:
chgrp [你所想改的屬組名稱] [文件名]
演示:
我們先來回看一下test這個文件的屬組:
恩批狱,這個test文件的屬組和屬主都是 root 現(xiàn)在我想把test文件的屬組改為 america 試試看:
chgrp america test
分析:
恩裸准? 報錯了。赔硫,怎么回事炒俱?
奧,想起來了爪膊,我就沒有這個 america 這么一個用戶組权悟,所以這說明,不能把文件的 屬組改為不存在的屬組推盛,屬主同理峦阁;
下面我們把test的屬組改為一個存在的屬組 bossliu,恩,很霸氣耘成;
chgrp bossliu test
成功改變榔昔;
chown 如果只改變文件的屬主的話用法和chgrp是一樣的,這里不做演示瘪菌;
chown 更強的的一點是它可以順手把屬組也改變掉撒会,這樣當(dāng)你希望即改變文件的屬主又改變文件的屬組的話,就可以執(zhí)行一條命令了师妙;
例如:
chown 屬主: 屬組 文件名:
chown bossliu : root test
//我們將test的屬組又變回來同時將屬主變?yōu)閎ossliu诵肛;
5
更改成功;