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=參考文件 文件...
按照順序(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]))+"。
[root@oracledb dir1]# ls -l
總用量 0
-rw-r--r-- 1 root root 0 4月 24 15:04 backup.sh
chmod u+x backup.sh
chmod ug+w,o-x backup.sh
chmod a-x backup.sh
chmod u=x backup.sh
chmod 744 backup.sh
chmod -R a+r *
[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