天天看點

chmod 指令

chmod指令

chmod指令用來變更檔案或目錄的權限。在UNIX系統家族裡,檔案或目錄權限的控制分别以讀取、寫入、執行3種一般權限來區分,另有3種特殊權限可供運用。使用者可以使用chmod指令去變更檔案與目錄的權限,設定方式采用文字或數字代号皆可。符号連接配接的權限無法變更,如果使用者對符号連接配接修改權限,其改變會作用在被連接配接的原始檔案。 權限範圍的表示法如下:

u User,即檔案或目錄的擁有者;

g Group,即檔案或目錄的所屬群組;

o Other,除了檔案或目錄擁有者或所屬群組之外,其他使用者皆屬于這個範圍;

a All,即全部的使用者,包含擁有者,所屬群組以及其他使用者;

r 讀取權限,數字代号為“4”;

w 寫入權限,數字代号為“2”;

x 執行或切換權限,數字代号為“1”;

- 不具任何權限,數字代号為“0”;

s 特殊功能說明:變更檔案或目錄的權限。

文法

chmod (選項) (參數)

選項

-c或--changes:效果類似“-v”參數,但僅回報更改的部分;

-f或--quiet或--silent:不顯示錯誤資訊;

-R或--recursive:遞歸處理,将指令目錄下的所有檔案及子目錄一并處理;

-v或--verbose:顯示指令執行過程;

--reference=<參考檔案或目錄>:把指定檔案或目錄的所屬群組全部設成和參考檔案或目錄的所屬群組相同;

<權限範圍>+<權限設定>:開啟權限範圍的檔案或目錄的該選項權限設定;

<權限範圍>-<權限設定>:關閉權限範圍的檔案或目錄的該選項權限設定;

<權限範圍>=<權限設定>:指定權限範圍的檔案或目錄的該選項權限設定;

參數

權限模式:指定檔案的權限模式;

檔案:要改變權限的檔案。

知識擴充和執行個體

Linux用 戶分為:擁有者、組群(Group)、其他(other),Linux系統中,預設的情況下,系統中所有的帳号與一般身份使用者,以及root的相關信 息, 都是記錄在/etc/passwd檔案中。每個人的密碼則是記錄在/etc/shadow檔案下。 此外,所有的組群名稱記錄在/etc/group內!

linux檔案的使用者權限的分析圖

chmod 指令

例:rwx rw- r--

r=讀取屬性  //值=4

w=寫入屬性  //值=2

x=執行屬性  //值=1

chmod u+x,g+w f01  //為檔案f01設定自己可以執行,組員可以寫入的權限

chmod u=rwx,g=rw,o=r f01

chmod 764 f01

chmod a+x f01  //對檔案f01的u,g,o都設定可執行屬性

檔案的屬主和屬組屬性設定

chown user:market f01  //把檔案f01給uesr,添加到market組

ll -d f1 檢視目錄f1的屬性

來自: http://man.linuxde.net/chmod

總結:

chmod 用來更改檔案的權限

rwx 對應三位二進制數,從000到111,1表示該位置上有權限,0表示該位置上沒有權限,用-表示0

r=4 w=2 x=1

如:rwx = 7 可讀、可寫、可執行

rw- = 6 可讀、可寫、不可執行

r-x = 5 可讀、不可寫、可執行

r-- = 4 可讀、不可寫,不可執行

-wx = 3 不可讀、可寫、可執行

-w- = 2 不可讀、可寫、不可執行

--x = 1 不可讀、不可寫、可執行

chmod 744 1.txt 将檔案1.txt權限設為屬主可讀可寫可執行,屬組隻可讀,其他人隻可讀

等價于

chmod u=rwx,g=r--,o=r-- 1.txt

ls -l 1.txt

chmod u-x 1.txt 去掉1.txt屬主的執行權限

chmod u+x,g+w,o-r 1.txt 加上1.txt屬主的執行權限,加上屬組的寫權限,去掉其他人的讀權限

chmod a+r 1.txt 為所有人加上讀權限

mkdir 111/234

touch 111/234/22.txt

ls 111

ls -l 111

ls -l 111/234

chmod -R 700 111 将111目錄及下面所有内容的權限設為700,-R繼承

umask 用來規定預設目錄和檔案的權限,掩碼,可以了解成預設不使用的權限

0022 通常隻用後三位022:--- -w- -w-,預設數組和其他人不使用寫權限

目錄的預設權限 777-022=755

檔案的預設權限 666-022=644

umask 011 更改umask為011 ,改為預設數組和其他人不使用執行權限

mkdir 1112

ls -ld 1112

touch -l 12.txt

ls -l 12.txt

所有目錄必須有x權限

下一篇: remote control