當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > 幾分鐘讓你了解Linux下文件權(quán)限掩碼及作用
在說文件權(quán)限掩碼之前,必須了解下linux下的文件權(quán)限,比如在linux下可以通過“ls -l”命令查看文件的權(quán)限,輸入后可以獲得如下顯示:
drwxrwxr-x 3 linux linux 4096 Jun 6 18:03 test
在顯示中“drwxrwxr-x”這十個字母中第一個字母‘d‘為文件類型表示目錄,同字段還可以是‘-‘普通文件、‘c’字符設(shè)備文件、‘b’塊設(shè)備文件、‘l’連接文件、‘s’socket文件和‘p’管道文件。除此之外剩下九個字母,三個一組分別表示文件所有者(owner)對當(dāng)前文件享有的權(quán)限,與文件所有者同用戶組的用戶(group)對文件享有的權(quán)限,其他用戶(other)對文件享有的權(quán)限。其中‘r’表示可讀、‘w’表示可寫、‘x’表示可執(zhí)行如果文件類型是目錄而這個位決定能否進(jìn)入這個目錄。
如上文中
rwx:表示用戶所有者對當(dāng)前文件有讀寫權(quán)限,可執(zhí)行權(quán)限
rwx:表示用戶所有者同組用戶對當(dāng)前文件有讀寫權(quán)限,可執(zhí)行權(quán)限
r-x:表示其他用戶對當(dāng)前文件有讀權(quán)限,可執(zhí)行權(quán)限,沒有寫權(quán)限不能修改文件
接下來我們開始說掩碼及掩碼的作用。
在系統(tǒng)中創(chuàng)建文件都有一個默認(rèn)權(quán)限,比如創(chuàng)建普通文件可能是“-rw-rw-rw-”當(dāng)然寫程序是很多時候?qū)懗?ldquo;0666”,“-rw-rw-rw-“用一個八進(jìn)制數(shù)據(jù)存儲就是“0666”每個權(quán)限碼占一位。
而權(quán)限掩碼的作用是根據(jù)用戶的需求屏蔽掉不希望給別人的權(quán)限,比如普通文件的權(quán)限是“-rw-rw-rw-”,所有用戶對文件都享有讀寫權(quán)限,而這帶來的問題就是文件可以被任何人修改從而導(dǎo)致文件數(shù)據(jù)被篡改導(dǎo)致數(shù)據(jù)丟失。這個時候用戶可以通過設(shè)置文件掩碼來屏蔽到本需要賦予其他用戶的特定權(quán)限。
比如:
文件創(chuàng)建后權(quán)限是0666
文件權(quán)限掩碼是0022
文件最終的權(quán)限是0644
即0666 | 0022 = 0644
權(quán)限掩碼在每個linux系統(tǒng)里都有默認(rèn)值,多數(shù)為0022,當(dāng)然用戶也可以自己修改權(quán)限掩碼的值。
修改用戶權(quán)限掩碼可在自己用戶目錄下的.bashrc(ubuntu)里添加umask 0022。
貨在終端直接執(zhí)行命令修改權(quán)限掩碼
umask 0022
實(shí)例:
umask 0
touch test1
ls -l test1
umask 0022
touch test2
ls -l test2
對比兩次運(yùn)行結(jié)果,可了解umask的作用。