Linux chmod 命令 详解
??????
?????? chmod 命令用的很多,但是對這個命令卻不是很了解。 在網上搜了一下。 整理如下。
?
命令格式:
?????? chmod?[-cfvR]?[--help]?[--version]?mode?file...
[root@qs-wg-db2 ~]# chmod --help
Usage: chmod [OPTION]... MODE[,MODE]... FILE...
? or:? chmod [OPTION]... OCTAL-MODE FILE...
? or:? chmod [OPTION]... --reference=RFILE FILE...
Change the mode of each FILE to MODE.
?
? -c, --changes?????????? like verbose but report only when a change is made
????? --no-preserve-root? do not treat `/' specially (the default)
????? --preserve-root???? fail to operate recursively on `/'
? -f, --silent, --quiet?? suppress most error messages
? -v, --verbose?????????? output a diagnostic for every file processed
????? --reference=RFILE?? use RFILE's mode instead of MODE values
? -R, --recursive???????? change files and directories recursively
????? --help???? display this help and exit
????? --version? output version information and exit
?
Each MODE is of the form `[ugoa]*([-+=]([rwxXst]*|[ugo]))+'.
?
Report bugs to <bug-coreutils@gnu.org>.
[root@qs-wg-db2 ~]#
?
?
參數說明:
1. -cfvR 部分
?????? -c?:?若該檔案權限確實已經更改,才顯示其更改動作
?????? -f?:?若該檔案權限無法被更改也不要顯示錯誤訊息
?????? -v?:?顯示權限變更的詳細資料
?????? -R?:?對目前目錄下的所有檔案與子目錄進行相同的權限變更(即以遞回的方式逐個變更), 這個-R 用的還是很多的。
?
2. ?Mode 部分
這部分可以分成如下3塊: [who] operator [permission]
???????????????????????????????????????????????? `[ugoa]*([-+=]([rwxXst]*|[ugo]))+'.
?
who的含義是:
?????? u 文件屬主權限
?????? g 同組用戶權限
?????? o 其它用戶權限
?????? a 所有用戶(包括以上三種)
operator的含義:
?????? + 增加權限
?????? - 取消權限
?????? = ?唯一設定權限
permission的含義:
?????? r 讀權限
?????? w 寫權限
?????? x 執行權限
?????? X?表示只有當該檔案是個子目錄或者該檔案已經被設定過為可執行。
?????? s 文件屬主和組id
?????? l 給文件加鎖,使其它用戶無法訪問
?
如: chmod a+x
?
3. 示例:
(1)將檔案?file1.txt?設為所有人皆可讀取?:
?????? chmod?ugo+r?file1.txt?
(2)將檔案?file1.txt?設為所有人皆可讀取?:
?????? chmod?a+r?file1.txt?
(3)將檔案?file1.txt?與?file2.txt?設為該檔案擁有者,與其所屬同一個群體者可寫入,但其他以外的人則不可寫入?:
?????? chmod?ug+w,o-w?file1.txt?file2.txt?
(4)將?ex1.py?設定為只有該檔案擁有者可以執行?:
?????? chmod?u+x?ex1.py?
(5)將目前目錄下的所有檔案與子目錄皆設為任何人可讀取?:
?????? chmod?-R?a+r?*?
(6)收回所有用戶的對file1的執行權限
?????? chmod a-x file1
?
4. 使用數字來賦權
?
4.1 先看一下文件的權限格式
?
[root@qs-wg-db2 scripts]# ll
total 20
-rw-r--r-- 1 oracle oinstall??? 0 Feb 24 00:00 alertlogbyday.log
-rwxr-xr-x 1 oracle oinstall? 430 Feb 20 01:10 alertlogbyday.sh
-rwxr-xr-x 1 oracle oinstall??? 7 Feb 24 05:00 del_st_arch.log
-rwxr-xr-x 1 oracle oinstall? 648 Feb 19 00:51 del_st_archive.sh
-rwxr-xr-x 1 oracle oinstall??? 9 Feb 24 05:00 max_sn.log
drwxr-xr-x 3 root?? root???? 4096 Feb 23 23:40 pymonitor
?
ll的結果返回七列,分別表示如下含義:
第一欄??[文件屬性]
第二欄??[文件數]
第三欄??[擁有者]
第四欄??[所有者群組]
第五欄??[大小]
第六欄??[建檔日期]
第七欄??[檔名]
?
我們設置文件的權限就是這是第一欄里的文件屬性。
?
文件屬性這塊共有十個字段,如:drwxr-xr-x
?
我們把這10個列分成4塊:[d] [rwx] [r-x] [r-x]
第一塊:也就是第一列,用來表示這個文件的類型,有如下值:
?????? (1)[ d ]則是目錄,我這里的是d,表示的是一個目錄
?????? (2)[ - ]則是文件;
?????? (3)[ l ]則表示為連結檔(link file);
?????? (4)[ b ]則表示為裝置文件里面的可供儲存的接口設備;
?????? (5)[ c ]則表示為裝置文件里面的串行端口設備,例如鍵盤、鼠標。
第二塊:第 2到4 列,表示文件擁有者的權限。
第三塊:第5到7 列,表示擁有者同組人的權限。
第四塊:第8到10列,表示是非擁有者組人的權限。
?
?????? 這些權限均有[rwx] 三個參數表示,而且分別對應不同的位置。每塊由3個列組成,每列對應一個值。 [ r ]代表可讀、[ w ]代表可寫、[ x ]代表可執行。
?????? 舉例: 如果擁有者只有只讀的權限,那么第2到4列就是[r--],有讀寫的權限就是[rw-],有讀寫和執行的權利就是[rwx].
?
4.2 使用數字賦權
在4.1 中了解準備知識之后,就可以使用數字賦權了。 每塊用戶有3個權限[rwx]. 他們對應數字:
?????? r -->4
?????? w-->2
?????? x-->1
?
使用數字賦權的命令格式如下:
?????? chmod abc filename
其中的abc 分別代表3個數字,并且分別對應問個不同的屬組。 即:
?????? 數字a 對應 第2到4位,表示擁有者的權限。
?????? 數字b 對應 第5到7位,表示同組用戶的權限。
?????? 數字c 對應第8到10位,表示其他組的權限。
?
?????? rwx 對應4,2,1. 那么只讀的權限用4表示[r--],讀寫用6(4+2)表示[rw-],寫加執行用7(4+2+1)表示[rwx]。 只讀加執行用5(4+1)表示[r-x]。
?
示例:
?????? chmod 755 file1
?????? chmod 777 file1 <==> chmod?a=rwx?file?
?????? chmod?771?file? <==> chmod?ug=rwx,o=x?file?
?
?
?
?
?
整理自網絡
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
網上資源: http://tianlesoftware.download.csdn.net
相關視頻:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(滿); DBA2 群:62697977(滿)
DBA3 群:62697850?? DBA 超級群:63306533;????
聊天 群:40132017
--加群需要在備注說明Oracle表空間和數據文件的關系,否則拒絕申請
總結
以上是生活随笔為你收集整理的Linux chmod 命令 详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: fd_set struct
- 下一篇: MM的静态寻址和动态寻址