天天一個linux命令:chmod

一、命令簡介

chmod(Change mode) 用來將每一個文件的模式更改成指定值。Linux/Unix 的檔案調用權限分爲三級 : 檔案擁有者、羣組、其餘。linux

u :目錄或者文件的當前的用戶
g :目錄或者文件的當前的羣組
o :除了目錄或者文件的當前用戶或羣組以外的用戶或者羣組
a :全部的用戶及羣組

Linux的文件基本上分爲三個屬性:可讀(r),可寫(w),可執行(x)。另外,有一些程序屬性的執行部分不是x,而是s,這表示執行這個程序的使用者,臨時能夠有和擁有者同樣權力的身份來執行該程序。oracle

[root@oracledb dir1]# ls -l backup.sh 
-rwxr-xr-x 1 root root 0 4月  24 15:04 backup.sh

以rwx(Owner)r-x(Group)r-x(Other)爲例:這個例子表示的權限是:使用者本身可讀,可寫,可執行;同一組的用戶可讀,不可寫,可執行;其它用戶可讀,不可寫,可執行。ui

權限對文件的重要性
r (read):可讀取此一文件的實際內容,如讀取文本文件的文字內容等; 
w (write):能夠編輯、新增或者是修改該文件的內容(但不含刪除該文件); 
x (execute):該文件具備能夠被系統執行的權限。linux下文件是否能夠執行和擴展名無關
權限對目錄的重要性
r (read contents in directory):
表示具備讀取目錄結構列表的權限,因此當你具備讀取(r)一個目錄的權限時,表示你能夠查詢該目錄下的文件名數據。 因此你就能夠利用 ls 這個指令將該目錄的內容列表顯示出來!
w (modify contents of directory):
表示你具備移動該目錄結構列表的權限,也就是底下這些權限:
   創建新的文件與目錄; 
   刪除已經存在的文件與目錄(不論該文件的權限爲什麼!) 
   將已存在的文件或目錄進行改名; 
   搬移該目錄內的文件、目錄位置。
x (access directory):
目錄不能夠被執行,目錄的x表明的是用戶可否進入該目錄成爲工做目錄的用途! 所謂的工做目錄(work directory)就是你目前所在的目錄!舉例來講,當你登入Linux時, 你所在的家目錄就是你當下的工做目錄。而變換目錄的指令是cd(change directory)!
權限的數字表示法
r 讀取權限,數字代號爲「4」; 
w 寫入權限,數字代號爲「2」; 
x 執行或切換權限,數字代號爲「1」;

二、用法

 用法:chmod [選項]... 模式[,模式]... 文件...
 或:chmod [選項]... 八進制模式 文件...
 或:chmod [選項]... --reference=參考文件 文件...
一、文字設定法:

image

二、數字設定法

按照順序(u)(g)(o),將權限轉換成3個從0到7的八進制數字,如若要rwx屬性則4+2+1=7 ; 若要rw-屬性則4+2=6;spa

chmod  3個從0到7的八進制數  文件或目錄

三、選項

-c, --changes        相似 --verbose,但只在有更改時才顯示結果
    --no-preserve-root    不特殊對待根目錄(默認)
   --preserve-root        禁止對根目錄進行遞歸操做
-f, --silent, --quiet    去除大部份的錯誤信息
-v, --verbose        爲處理的全部文件顯示診斷信息
 --reference=參考文件 使用指定參考文件的模式,而非自行指定權限模式
-R, --recursive 以遞歸方式更改全部的文件及子目錄
    --help        顯示此幫助信息並退出
    --version        顯示版本信息並退出

每種 MODE 都應屬於這類形式"[ugoa]*([-+=]([rwxXst]*|[ugo]))+"

四、示例

示例1:查看權限
[root@oracledb dir1]# ls -l
總用量 0
-rw-r--r-- 1 root root 0 4月  24 15:04 backup.sh
示例2:將backup.sh設定爲只有該檔案擁有者能夠執行
chmod u+x backup.sh
示例3:同時修改不一樣用戶權限
chmod ug+w,o-x backup.sh
示例4:刪除文件權限
chmod a-x backup.sh
示例5:使用「=」設置權限
chmod u=x backup.sh
示例六、根據數字修改權限
chmod 744 backup.sh
示例七、將目前目錄下的全部檔案與子目錄皆設爲任何人可讀取 :
chmod -R a+r  *
示例八、將backup2.sh的權限改成和backup1.sh相同
[root@oracledb dir1]# ll
總用量 0
-rwxr-xr-x 1 root root 0 4月  24 15:04 backup1.sh
-rw-r--r-- 1 root root 0 4月  25 20:27 backup2.sh
[root@oracledb dir1]# chmod --reference=backup1.sh  backup2.sh
[root@oracledb dir1]# ll
總用量 0
-rwxr-xr-x 1 root root 0 4月  24 15:04 backup1.sh
-rwxr-xr-x 1 root root 0 4月  25 20:27 backup2.sh
相關文章
相關標籤/搜索