天天看點

五分鐘搞懂 Linux 重點知識

五分鐘搞懂 Linux 重點知識

我們都知道Linux是一個支援多使用者、多任務的系統,這也是它最優秀的特性,即可能同時有很多人都在系統上進行工作,是以千萬不要強制關機。同時,為了保護每個人的隐私和工作環境,針對某一個文檔(檔案、目錄),Linux系統定義了三種身份,分别是擁有者(owner)、群組(group)、其他人(others),每一種身份又對應三種權限,分别是可讀(readable)、可寫(writable)、可執行(excutable)。

使用指令ls -al --full-time,或者此指令的簡寫ll可以檢視檔案或者目錄的所有屬性。如下:

五分鐘搞懂 Linux 重點知識

從上面可以看到,每一行都有7列,分别是:

第一列

共10位,第1位表示文檔類型,d表示目錄,-表示檔案,l表示連結檔案,d表示可随機存取的裝置,如U盤等,c表示一次性讀取裝置,如滑鼠、鍵盤等。後9位,依次對應三種身份所擁有的權限,身份順序為:owner、group、others,權限順序為:readable、writable、excutable。如:-r-xr-x---的含義為目前文檔是一個檔案,擁有者可讀、可執行,同一個群組下的使用者,可讀、可寫,其他人沒有任何權限。

第二列

表示連結數

第三列

表示擁有者

第四列

表示所屬群組

第五列

表示文檔容量大小,機關位元組

第六列

表示文檔最後修改時間,注意不是文檔的建立時間哦

第七列

表示文檔名稱。以點(.)開頭的是隐藏文檔

etc/passwd

五分鐘搞懂 Linux 重點知識
注意:必須是該位置下已存在的帳号。也就是在/etc/passwd中有記錄的擁有者才能改變。

chown [-R] [帳号名稱] [檔案或目錄]

chown [-R] [帳号名稱]:[群組名稱] [檔案或目錄]

備注:此指令也可以順便變更文檔群組,但還是建議使用chgrp指令來變更文檔群組。

-R 遞歸變更,即連同次目錄下的所有檔案(夾)都要變更。

chown daemon test 變更檔案夾test賬号為daemon。

五分鐘搞懂 Linux 重點知識

chown daemon:root test 變更檔案夾test群組為root。

五分鐘搞懂 Linux 重點知識

chown root.users test 變更檔案夾賬号為root,群組為users

五分鐘搞懂 Linux 重點知識

chown .root test 單獨變更群組為root

五分鐘搞懂 Linux 重點知識
備注:雖然也可以在擁有者與群組間加小數點(.),但為了避免有的同學命名中帶點,故還是建議使用冒号“:”來隔開擁有者與群組,避免誤判。

etc/group

五分鐘搞懂 Linux 重點知識
備注:從這裡可以檢視到所有群組

chgrp [-options] [群組名] [文檔路徑]

備注:關于options,可以通過man chgrp、info chgrp、chgrp --help等指令查詢詳細用法。

chgrp -R users test 改變test檔案夾及其所有子檔案(夾)的群組為users。

五分鐘搞懂 Linux 重點知識
注意:群組名稱不在位置内,将會報錯invalid group。
五分鐘搞懂 Linux 重點知識

Linux文檔的基本權限就三個,分别是read/write/execute,加上身份owner/group/others也隻有九個。權限變更的方式有2種,分别是符号法和數字法。Java程式員必須掌握的常用Linux指令,這篇也推薦大家看下。

分别使用u,g,o來代表三種身份,a表示全部身份;分别使用r、w、x表示三種權限;分别使用+、-、=表示操作行為

chmod | u g o a | +(加入) -(除去) =(設定) | r w x | 文檔路徑

設定權限(=)

變更目錄test的權限為任何人都可讀、寫、執行。

chmod u=rwx,g=rwx,o=rwx test

chmod ugo=rwx test

chmod a=rwx test

五分鐘搞懂 Linux 重點知識

去掉目錄test執行權限

chmod u-x,g-x,o-x test

chmod ugo-x test

chmod a-x test

五分鐘搞懂 Linux 重點知識
備注:執行權限(x),對目錄而已就是其他使用者能否cd test成為工作目錄。

增加目錄test執行權限

chmod u+x,g+x,o+x test

chmod ugo+x test

chmod a+x test

五分鐘搞懂 Linux 重點知識
備注:很熟悉吧,如果我們編寫完一個shell檔案test.sh後,通過chmod a+x test.sh就添加了檔案執行權限。

顧名思義,就是使用數字來代表權限,r,w,x分别為4,2,1。三種權限累加就可以得出一種身份的權限。

設定目錄test的權限為任何人都可讀、寫、執行。

chmod 777 test

五分鐘搞懂 Linux 重點知識

設定目錄test的權限為任何人都可讀、寫。

chmod 666 test

五分鐘搞懂 Linux 重點知識

賦予一個shell檔案test.sh可執行權限,擁有者可讀、寫、執行,群組賬号和其他人可讀、執行。

chmod 755 test

備注:有沒有發現數字法更簡單啊!!!

文檔權限對于檔案和目錄有巨大的差異

針對的是該檔案内容

readable 可讀取該檔案的實際内容

writable 可以編輯、新增或者是修改該檔案的内容

executable 有可以被系統執行的權限

備注:具有w權限不可以删除檔案,删除檔案是目錄權限控制的範圍!!!記住檔案權限針對是檔案内容。

針對的是該目錄下的檔案對象

readable 具有讀取目錄結構清單的權限,即可以通過ls指令,查詢該目錄清單。

writable 具有變動該目錄結構清單的權限,即可以建立、遷移、删除、更名該目錄下的檔案。

executable 具備進入該目錄的權限,即可以通過cd指令,轉到工作目錄。

備注:從上面可以得出,開放目錄給任何人浏覽時,至少需要賦予r或x權限。讀取目錄檔案内容,至少需要目錄權限x和檔案權限r。

Linux的每個文檔可以分别針對三種身份賦予rwx權限;chgrp指令變更檔案群組,chmod指令變更檔案權限,chown變更檔案擁有者;那麼以後記得使用文檔權限來保護資料的安全性哦。

五分鐘搞懂 Linux 重點知識

繼續閱讀