Linux chmod 命令 详解
??????
?????? chmod 命令用的很多,但是對(duì)這個(gè)命令卻不是很了解。 在網(wǎng)上搜了一下。 整理如下。
?
命令格式:
?????? 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 ~]#
?
?
參數(shù)說明:
1. -cfvR 部分
?????? -c?:?若該檔案權(quán)限確實(shí)已經(jīng)更改,才顯示其更改動(dòng)作
?????? -f?:?若該檔案權(quán)限無法被更改也不要顯示錯(cuò)誤訊息
?????? -v?:?顯示權(quán)限變更的詳細(xì)資料
?????? -R?:?對(duì)目前目錄下的所有檔案與子目錄進(jìn)行相同的權(quán)限變更(即以遞回的方式逐個(gè)變更), 這個(gè)-R 用的還是很多的。
?
2. ?Mode 部分
這部分可以分成如下3塊: [who] operator [permission]
???????????????????????????????????????????????? `[ugoa]*([-+=]([rwxXst]*|[ugo]))+'.
?
who的含義是:
?????? u 文件屬主權(quán)限
?????? g 同組用戶權(quán)限
?????? o 其它用戶權(quán)限
?????? a 所有用戶(包括以上三種)
operator的含義:
?????? + 增加權(quán)限
?????? - 取消權(quán)限
?????? = ?唯一設(shè)定權(quán)限
permission的含義:
?????? r 讀權(quán)限
?????? w 寫權(quán)限
?????? x 執(zhí)行權(quán)限
?????? X?表示只有當(dāng)該檔案是個(gè)子目錄或者該檔案已經(jīng)被設(shè)定過為可執(zhí)行。
?????? s 文件屬主和組id
?????? l 給文件加鎖,使其它用戶無法訪問
?
如: chmod a+x
?
3. 示例:
(1)將檔案?file1.txt?設(shè)為所有人皆可讀取?:
?????? chmod?ugo+r?file1.txt?
(2)將檔案?file1.txt?設(shè)為所有人皆可讀取?:
?????? chmod?a+r?file1.txt?
(3)將檔案?file1.txt?與?file2.txt?設(shè)為該檔案擁有者,與其所屬同一個(gè)群體者可寫入,但其他以外的人則不可寫入?:
?????? chmod?ug+w,o-w?file1.txt?file2.txt?
(4)將?ex1.py?設(shè)定為只有該檔案擁有者可以執(zhí)行?:
?????? chmod?u+x?ex1.py?
(5)將目前目錄下的所有檔案與子目錄皆設(shè)為任何人可讀取?:
?????? chmod?-R?a+r?*?
(6)收回所有用戶的對(duì)file1的執(zhí)行權(quán)限
?????? chmod a-x file1
?
4. 使用數(shù)字來賦權(quán)
?
4.1 先看一下文件的權(quán)限格式
?
[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的結(jié)果返回七列,分別表示如下含義:
第一欄??[文件屬性]
第二欄??[文件數(shù)]
第三欄??[擁有者]
第四欄??[所有者群組]
第五欄??[大小]
第六欄??[建檔日期]
第七欄??[檔名]
?
我們?cè)O(shè)置文件的權(quán)限就是這是第一欄里的文件屬性。
?
文件屬性這塊共有十個(gè)字段,如:drwxr-xr-x
?
我們把這10個(gè)列分成4塊:[d] [rwx] [r-x] [r-x]
第一塊:也就是第一列,用來表示這個(gè)文件的類型,有如下值:
?????? (1)[ d ]則是目錄,我這里的是d,表示的是一個(gè)目錄
?????? (2)[ - ]則是文件;
?????? (3)[ l ]則表示為連結(jié)檔(link file);
?????? (4)[ b ]則表示為裝置文件里面的可供儲(chǔ)存的接口設(shè)備;
?????? (5)[ c ]則表示為裝置文件里面的串行端口設(shè)備,例如鍵盤、鼠標(biāo)。
第二塊:第 2到4 列,表示文件擁有者的權(quán)限。
第三塊:第5到7 列,表示擁有者同組人的權(quán)限。
第四塊:第8到10列,表示是非擁有者組人的權(quán)限。
?
?????? 這些權(quán)限均有[rwx] 三個(gè)參數(shù)表示,而且分別對(duì)應(yīng)不同的位置。每塊由3個(gè)列組成,每列對(duì)應(yīng)一個(gè)值。 [ r ]代表可讀、[ w ]代表可寫、[ x ]代表可執(zhí)行。
?????? 舉例: 如果擁有者只有只讀的權(quán)限,那么第2到4列就是[r--],有讀寫的權(quán)限就是[rw-],有讀寫和執(zhí)行的權(quán)利就是[rwx].
?
4.2 使用數(shù)字賦權(quán)
在4.1 中了解準(zhǔn)備知識(shí)之后,就可以使用數(shù)字賦權(quán)了。 每塊用戶有3個(gè)權(quán)限[rwx]. 他們對(duì)應(yīng)數(shù)字:
?????? r -->4
?????? w-->2
?????? x-->1
?
使用數(shù)字賦權(quán)的命令格式如下:
?????? chmod abc filename
其中的abc 分別代表3個(gè)數(shù)字,并且分別對(duì)應(yīng)問個(gè)不同的屬組。 即:
?????? 數(shù)字a 對(duì)應(yīng) 第2到4位,表示擁有者的權(quán)限。
?????? 數(shù)字b 對(duì)應(yīng) 第5到7位,表示同組用戶的權(quán)限。
?????? 數(shù)字c 對(duì)應(yīng)第8到10位,表示其他組的權(quán)限。
?
?????? rwx 對(duì)應(yīng)4,2,1. 那么只讀的權(quán)限用4表示[r--],讀寫用6(4+2)表示[rw-],寫加執(zhí)行用7(4+2+1)表示[rwx]。 只讀加執(zhí)行用5(4+1)表示[r-x]。
?
示例:
?????? chmod 755 file1
?????? chmod 777 file1 <==> chmod?a=rwx?file?
?????? chmod?771?file? <==> chmod?ug=rwx,o=x?file?
?
?
?
?
?
整理自網(wǎng)絡(luò)
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
網(wǎng)上資源: http://tianlesoftware.download.csdn.net
相關(guān)視頻:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(滿); DBA2 群:62697977(滿)
DBA3 群:62697850?? DBA 超級(jí)群:63306533;????
聊天 群:40132017
--加群需要在備注說明Oracle表空間和數(shù)據(jù)文件的關(guān)系,否則拒絕申請(qǐng)
總結(jié)
以上是生活随笔為你收集整理的Linux chmod 命令 详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: fd_set struct
- 下一篇: linux 其他常用命令