linux chmod,chown命令詳解
linux chmod,chown命令詳解
指令名稱:chmod
使用許可權 : 所有使用者
使用方式 : chmod [-cfvR] [--help] [--version] mode file...
說明 : Linux/Unix 的檔案存取許可權分為三級 : 檔案擁有者、群組、其他。
利用 chmod
可以藉以控制檔案如何被他人所存取。
mode
許可權設定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...]
u
:表示該檔案的擁有者
g
: 表示與該檔案的擁有者屬於同一個群體(group)
者
o
:表示其他以外的人
a
: 表示這三者皆是
+
: 表示增加許可權、- 表示取消許可權、= 表示唯一設定許可權。
r
-c
: 若該檔案許可權確實已經更改,才顯示其更改動作
-f
: 若該檔案許可權無法被更改也不要顯示錯誤訊息
-v
: 顯示許可權變更的詳細資料
-R
: 對目前目錄下的所有檔案與子目錄進行相同的許可權變更(即以遞迴的方式逐個變更)
--help
: 顯示輔助說明
--version
: 顯示版本
示例1:
將檔案 ymq.txt
設為所有人皆可讀取 :
chmod ugo+r ymq.txt
將檔案 ymq.txt 設為所有人皆可讀取 :
chmod a+r ymq.txt
將檔案 ymq1.txt 與 ymq2.txt 設為該檔案擁有者,與其所屬同一個群體者可寫入,但其他以外的人則不可寫入 :
chmod ug+w,o-w ymq1.txt ymq2.txt
將 ymq.py 設定為只有該檔案擁有者可以執行 :
chmod u+x ymq.py
將目前目錄下的所有檔案與子目錄皆設為任何人可讀取 :
chmod -R a+r *
此外chmod
也可以用數字來表示許可權如 chmod 777 file
語法為:chmod abc file
其中a,b,c
各為一個數字,分別表示User
、Group
、及Other
的許可權
r=4,w=2,x=1
若要rwx
屬性則4+2+1=7
若要rw-
屬性則4+2=6
若要r-x
屬性則4+1=5
示例2:
chmod a=rwx file
#和
chmod 777 file
#效果相同
chmod ug=rwx,o=x file
#和
chmod 771 file
#效果相同
若用chmod 4755 filename
可使此程式具有root
的許可權
指令名稱:chown
使用許可權 : root
使用方式 : chown [-cfhvR] [--help] [--version] user[:group] file...
說明 : Linux/Unix
是多人多工作業系統,所有的檔案皆有擁有者。利用 chown
可以將檔案的擁 有者加以改變。一般來說,這個指令只有是由系統管理者(root
)所使用,一般使用者沒有許可權可以 改變別人的檔案擁有者,也沒有許可權可以自己的檔案擁有者改設為別人。只有系統管理者(root
)才 有這樣的許可權。
user
: 新的檔案擁有者的使用者 ID
group
: 新的檔案擁有者的使用者群體(group)
-c
或 -change
:作用與-v相似,但只傳回修改的部分
-f
或 –quiet或–silent
:不顯示錯誤資訊
-h
或 –no-dereference
:只對符號連結的檔案做修改,而不更改其他任何相關檔案
-R
或 -recursive
:遞迴處理,將指定目錄下的所有檔案及子目錄一併處理
-v
或 –verbose
:顯示指令執行過程
–dereference
:作用和-h剛好相反
–help
:顯示線上說明
–reference=<參考檔案或目錄>
:把指定檔案或目錄的所有者與所屬組,統統設定成和參考檔案或目錄的所有者與所屬組相同
–version
:顯示版本資訊
示例1:
將檔案 file1.txt
的擁有者設為 users
群體的使用者 jessie
:
chown jessie:users file1.txt
將目前目錄下的所有檔案與子目錄的擁有者設為
chown -R ymq
(所屬使用者) :
ymqgroup
(所屬使用者組名) *
(要更改的檔案路徑)
chown [-R] [使用者名稱稱] [檔案或目錄]
chown [-R] [使用者名稱稱:組名稱] [檔案或目錄]
chown -R ymq:ymqgroup *
rwx
分別表示User
、Group
、及Other
的許可權。
-rw-------
(
600) -- 只有屬主有讀寫許可權
-rw-r–r– (644
) – 只有屬主有讀寫許可權;而屬組使用者和其他使用者只有讀許可權
-rwx------
(
700) -- 只有屬主有讀、寫、執行許可權
-rwxr-xr-x (755
) – 屬主有讀、寫、執行許可權;而屬組使用者和其他使用者只有讀、執行許可權
-rwx--x--x
(
711) -- 屬主有讀、寫、執行許可權;而屬組使用者和其他使用者只有執行許可權
-rw-rw-rw- (666
) – 所有使用者都有檔案讀、寫許可權。這種做法不可取
-rwxrwxrwx
(
777`) – 所有使用者都有讀、寫、執行許可權。更不可取的做法
示例2:
將test3.txt
檔案的屬主改為test使用者。
# ls -l test3.txt
-rw-r–r– 1 test root 0 2017-08-20 9:59 test3.txt
# chown test:root test3.txt
# ls -l test3.txt
-rw-r–r– 1 test root 0 2017-08-20 9:59
示例3:
chown
所接的新的屬主和新的屬組之間可以使用:連線,屬主和屬組之一可以為空。如果屬主為空,應該是“:屬組”;如果屬組為空,“:”可以不用帶上。
# ls -l test3.txt
-rw-r–r– 1 test root 0 2017-08-20 9:59 test3.txt
# chown :test test3.txt <==把檔案test3.txt的屬組改為test
# ls -l test3.txt
-rw-r–r– 1 test test 0 2017-08-20 9:59 test3.txt
示例4:
chown
也提供了-R
引數,這個引數對目錄改變屬主和屬組極為有用,可以通過加 -R
引數來改變某個目錄下的所有檔案到新的屬主或屬組。
# ls -l testdir <== 檢視testdir目錄屬性
drwxr-xr-x 2 usr root 0 2009-10-56 10:38 testdir/ <==檔案屬主是usr使用者,屬組是 root使用者
# ls -lr testdir <==檢視testdir目錄下所有檔案及其屬性
total 0
-rw-r–r– 1 usr root 0 2017-08-20 10:38 test1.txt
-rw-r–r– 1 usr root 0 2017-08-20 10:38 test2.txt
-rw-r–r– 1 usr root 0 2017-08-20 10:38 test3.txt
# chown -R test:test testdir/ <==修改testdir及它的下級目錄和所有檔案到新的使用者和使用者組
# ls -l testdir
drwxr-xr-x 2 test test 0 2017-08-20 10:38 testdir/
# ls -lr testdir
total 0
-rw-r–r– 1 test test 0 2017-08-20 10:38 test1.txt
-rw-r–r– 1 test test 0 2017-08-20 10:38 test2.txt
-rw-r–r– 1 test test 0 2017-08-20 10:38 test3.txt
Contact
- 作者:鵬磊
- 出處:http://www.ymq.io
- Email:[email protected]
- 版權歸作者所有,轉載請註明出處
- Wechat:關注公眾號,搜雲庫,專注於開發技術的研究與知識分享