chmod權限命令


chmod權限命令

一、chmod命令的語法

用於改變文件或目錄權限

語法:chmod [對誰操作(ugoa)] [操作符 (+-=)] [賦予的權限(rwx)] 文件名1 文件名2...

chmod [-cfvR] [--help] [--version] mode file...

-c : 若該檔案權限確實已經更改,才顯示其更改動作
-f : 若該檔案權限無法被更改也不要顯示錯誤訊息
-v : 顯示權限變更的詳細資料
-R : 對目前目錄下的所有檔案與子目錄進行相同的權限變更(即以遞回的方式逐個變更)
--help : 顯示輔助說明
--version : 顯示版本

對誰操作:

u    用戶user,表現文件或目錄的所有者
g    用戶組group,表現文件或目錄所屬的用戶組
o    其他用戶other
a    所有用戶all   

操作符:

+ 添加權限       -  減少權限         =直接給定一個權限

權限:

r 讀  w 寫  x 執行

八進制數字表示權限

​ r w x
二進制代表100 010 001
十進制代表 4 2 1

范例:

chmod 755 1.txt
chmod 777 /etc/hurenxiang 將hurenxiang這個文件夾權限改為對所有用戶可讀,可寫,可執行
chmod 775 /etc/caiyao 將caiyao這個文件夾權限改為其他用戶不可讀

rwx的值為4+2+1=7; 
rw-的值為4+2=6; 
r-x的值為4+1=5。 
rwxr-xr-x的值為755
-rw------- (600) 只有屬主有讀寫權限。  
-rw-r--r-- (644) 只有屬主有讀寫權限;而屬組用戶和其他用戶只有讀權限。 
-rwx------ (700) 只有屬主有讀、寫、執行權限。  
-rwxr-xr-x (755) 屬主有讀、寫、執行權限;而屬組用戶和其他用戶只有讀、執行權限。  
-rwx--x--x (711) 屬主有讀、寫、執行權限;而屬組用戶和其他用戶只有執行權限。  
-rw-rw-rw- (666) 所有用戶都有文件讀、寫權限。這種做法不可取。  
-rwxrwxrwx (777) 所有用戶都有讀、寫、執行權限。更不可取的做法。

二.chmod命令結構詳解

在Linux中輸入ll,會出現指定目錄下文件/目錄的詳細信息,

img

詳解下圖:權限一共是10個字符,第1個字符分為1組,后面9個字符分為3組。

第1個字符有兩種情況:如果是“d”則代表這是一個文件夾,如果是“—”代表這是一個文件;

第2、3、4個字符:表示文件擁有者的權限,可以用u來表示,擁有四個權限:r:讀權限 , w:寫權限,x:執行權限,—:無權限;

第5、6、7個字符:表示文件所屬群組的權限,可以用g來表示,擁有四個權限:r:讀權限 , w:寫權限,x:執行權限,—:無權限;

第8、9、10個字符:表示的是除擁有者和所屬群組之外的其他所有的用戶,可以用o來表示,擁有四個權限:r:讀權限 , w:寫權限,x:執行權限,—:無權限。
img

三.chmod命令的使用

-rw--wx--x //該文件的 擁有者有讀取和寫入的權限,但沒有執行權限;
所在群組沒有讀取的權限,但有寫入和執行的權限;
其他用戶沒有讀取和寫入的權限,但有執行的權限

d--xr-xrw- //該文件夾的 擁有者沒有讀取和寫入的權限,但有執行的權限;
所在群組沒有寫入的權限,但有讀取和執行的權限;
其他用戶沒有執行權限,但有讀取和寫入的權限

范例 :

第一種修改權限的方法

將檔案 file1.txt 設為所有人皆可讀取 :
chmod ugo+r file1.txt
將檔案 file1.txt 設為所有人皆可讀取 :
chmod a+r file1.txt
將檔案 file1.txt 與 file2.txt 設為該檔案擁有者,與其所屬同一個群體者可寫入,但其他以外的人則不可寫入(逗號隔開) :
chmod ug+w,o-w file1.txt file2.txt
將 ex1.py 設定為只有該檔案擁有者可以執行 :
chmod u+x ex1.py
將目前目錄下的所有檔案與子目錄皆設為任何人可讀取 :
chmod -R a+r *
(-R : 對目前目錄下的所有檔案與子目錄進行相同的權限變更(即以遞回的方式逐個變更) )

第二種:用數字賦權:
chmod a=rwx file 和 chmod 777 file 效果相同
chmod ug=rwx,o=x file 和 chmod 771 file 效果相同

第三種:修改目錄下的所有文件 | 所有文件 | 所有文件夾和文件的權限

要修改某目錄下所有的文件夾屬性為可寫可讀可執行

chmod 777 *
把文件夾名稱用*來代替就可以了

要修改某目錄下所有的文件屬性為可寫可讀可執行

chmod 777 *.*
把文件夾名稱與后綴名用*來代替就可以了。 
同理若是要修改所有htm文件的屬性
chmod 777 *.htm

要修改/tmp/sco下所有的文件和文件夾及其子文件夾屬性為可寫可讀可執行

chmod -R 777 /tmp/sco

四.對可執行文件的賦權

用戶創建的一個文件是沒有任何權限的,再Linux的控制台可見文件無權限文件的字體是灰白色的,沒權限那么此文件就只是文本文件,不可執行。

img

藍色表示目錄;
綠色表示可執行文件,可執行的程序;
紅色表示壓縮文件或包文件;
淺藍色表示鏈接文件;
灰色表示其它文件;
  • 下面實踐來看

首先上傳了一個stop1.sh文件,是灰色,然后進行chmod +x給了權限。后來使用chmod -x 去除執行權限,可以明顯看到效果

image-20200305184553462


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM