Linux文件權限與目錄配置
一、linux文件屬性
用戶組概念:假如主機有兩個團體,第一個團體名為projecta,里面有class1,class2,class3;第二個團體名為projecb,里面有class4,class5,class6.這兩個團體之間有競爭性質,卻要交同一份報告。每組成員之間必須能夠互相修改對方的數據,但是其他組的成員則不能看到本組自己的文件內容。另外,如果teacher這個賬號是projecta和projectb兩個用戶的老師,能夠查看兩個的進度。這時候引入用戶權限問題。
權限的第一個字符代表是目錄、文件或鏈接文件等。若[d]則是目錄;[-]則是文件;[|]則是連接文件;[b]則表示設備文件里面的可供存儲的接口設備。[c]則表示設備文件里面的串行端口設備,如鍵盤。
權限分三個部分,第一部分:文件所有者的權限user。第二部分:用戶組的權限(group)。第三部分:其他非本用戶權限(other)。
例:如果我的目錄是下面的樣式,請問testgroup用戶組的成員與其他人可以進入本目錄嗎?
drwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 groups/
答:文件所有者test1[rwx]可以在本目錄中進行任何操作。而testgroup這個用戶組[r-x]的賬號,如test2,test3也可以進入本目錄進行工作,但是不能在目錄下進行修改操作(即寫)。至于其他用戶權限[r--]雖然有r,但是沒有x的權限,因此其他用戶并不能進入此目錄。
二、修改權限
常用的命令為: chgrp:改變文件所屬的用戶組
chown:改變文件的所有者
chmod:修改文件的權限
例:1) 改變所屬的用戶組:chgrp
2) 改變文件的所有者:chown
到現在就已經知道了如何改變用戶組和所有者了,但是具體什么時候用chown和chgrp呢?確實有時候需要更改所有者的,再例如:復制文件給你之外的其他人時,會連同執行者的屬性和權限一同復制,如下:
會看到.bashrc_test還是屬于root所有,如此一來,即使你將文件給予這個用戶,他仍然無法修改,所以這里必須要修改這個文件的所有者與用戶組。這時就會用到修改權限的操作,具體有兩種方法:
a、數字類型改變文件權限:
owner, group, others. 三種身份有各自自己的read、write、execute權限。各個權限的數字對照表如下:r: 4; w: 2; x:1
例如當權限是[-rwxrwx---]
計算方法為owner=rwx=4+2+1=7
group=rwx=4+2+1=7
others=---=0+0+0=0,故這個權限就為770,具體的更改權限的語法為:
b、符號型改變文件權限
用u、g、o分別代表owner,group,others三種身份,a代表全部身份。具體寫法如下:
如果同時對三種身份進行操作時(如:每個人都賦予寫的權限):
如果說要是去掉所有人的可執行權限呢?
到這里,你了解多少了?如果還是有點不明白,接下來再看一個例子:
如果我們用root身份在/tmp下新建一個testing目錄,該目錄的權限是744且目錄擁有者是root。另外在testing中再建立一個空文件testing且權限為600。這時候用一個普通用戶去訪問testing(或者刪除testing)?具體執行情況如下:
但是如果要實現一般用用戶訪問testing,具體應該怎么做呢?可以考慮把該目錄變成用戶的:
當然,也可以把root的權限進行修改讓一般用戶能夠訪問,并且進行修改也可。
到這里,你會了嗎?別說你不會。。。。。