1、chmod——改變一個或多個文件的存取模式(mode)
chmod [options] mode files
只能文件屬主或特權用戶才能使用該功能來改變文件存取模式。mode可以是數字形式或以who opcode permission形式表示。who是可選的,默認是a(所有用戶)。只能選擇一個opcode(操作碼)。可指定多個mode,以逗號分開。
options:
-c,——changes
只輸出被改變文件的信息
-f,——silent,——quiet
當chmod不能改變文件模式時,不通知文件的用戶
——help
輸出幫助信息。
-R,——recursive
可遞歸遍歷子目錄,把修改應到目錄下所有文件和子目錄
——reference=filename
參照filename的權限來設置權限
-v,——verbose
無論修改是否成功,輸出每個文件的信息
——version
輸出版本信息。
#who
u
用戶
g
組
o
其它
a
所有用戶(默認)
#opcode
+
增加權限
-
刪除權限
=
重新分配權限
#permission
r
讀
w
寫
x
執行
s
設置用戶(或組)的ID號
t
設置粘著位(sticky bit),防止文件或目錄被非屬主刪除
u
用戶的當前權限
g
組的當前權限
o
其他用戶的當前權限
作為選擇,我們多數用三位八進制數字的形式來表示權限,第一位指定屬主的權限,第二位指定組權限,第三位指定其他用戶的權限,每位通過4(讀)、2(寫)、1(執行)三種數值的和來確定權限。如6(4+2)代表有讀寫權,7(4+2+1)有讀、寫和執行的權限。
還可設置第四位,它位於三位權限序列的前面,第四位數字取值是4,2,1,代表意思如下:
- 4,執行時設置用戶ID,用於授權給基於文件屬主的進程,而不是給創建此進程的用戶。
- 2,執行時設置用戶組ID,用於授權給基於文件所在組的進程,而不是基於創建此進程的用戶。
- 1,設置粘著位。
實例:
$ chmod u+x file 給file的屬主增加執行權限
$ chmod 751 file 給file的屬主分配讀、寫、執行(7)的權限,給file的所在組分配讀、執行(5)的權限,給其他用戶分配執行(1)的權限
$ chmod u=rwx,g=rx,o=x file 上例的另一種形式
$ chmod =r file 為所有用戶分配讀權限
$ chmod 444 file 同上例
$ chmod a-wx,a+r 同上例
$ chmod -R u+r directory 遞歸地給directory目錄下所有文件和子目錄的屬主分配讀的權限
$ chmod 4755 設置用ID,給屬主分配讀、寫和執行權限,給組和其他用戶分配讀、執行的權限
2、chgrp——修改文件或目錄的所屬組
chgrp [options] newgroup files/directorys
組名可以用組的ID號,也可用/etc/group中的組名。只有文件的屬主或特權用戶(root)才可改變它的組。
options:
-c,——changes
只輸出被改變文件的信息
-f,——silent,——quiet
當不能改變文件組屬性時,不通知文件的用戶
——help
輸出幫助信息。
-R,——recursive
可遞歸遍歷子目錄,把修改應到目錄下所有文件和子目錄
——reference=filename
參照filename的組信息來設置當前文件的組
-v,——verbose
輸出詳細信息
——version
輸出版本信息。
實例:
$ chgrp root test 把test的所屬組更改root組
$ chgrp -R mysql test 遞歸地把test目錄及該目錄下所有文件和子目錄的組屬性設置成mysql
$ chgrp root * 把當前目錄中所有文件的組屬性設置成root
3、chown——設置一個或多個文件或目錄的屬主身份
chown [options] newowner files/directorys
新的屬主可以是用戶的ID號,也可以是/etc/passwd裡的登錄名。chown也可接受這樣的形式:newowner:newgroup或newowner.newgroup.同時改變所屬組的屬性。如果句點和冒號後沒有組名,則組改變為新屬主的組。只有文件或目錄的當前屬主才有權改變它的屬性。
options:
-c,——changes
只輸出被改變文件的信息
——dereference
跟蹤符號鏈接
-h,——no-dereference
改變每一個符號鏈的屬主身份,而不是被引用文件的屬主身份
-f,——silent,——quiet
當不能改變文件屬主屬性時,不通知文件的用戶
——help
輸出幫助信息。
-R,——recursive
可遞歸遍歷子目錄,把修改應到目錄下所有文件和子目錄
——reference=filename
把屬主改變成filename文件的屬主
-v,——verbose
輸出詳細信息
——version
輸出版本信息。
實例:
$ chown root test 把test文件的屬主改進root
$ chown -R root test_directory 遞歸地把test_directory目錄下的所有文件屬主改成root
$ chown ——dereference root test_link 把test_link鏈接的原文件屬主改成root,鏈接文件屬主不變
$ chown ——no-dereference root test_link 把test_link的鏈接文件屬主改成root,原文件屬主不變