天天看點

每天一個Linux指令(27): chown

chown将指定檔案的擁有者改為指定的使用者或組,使用者可以是使用者名或者使用者ID;組可以是組名或者組ID;檔案是以空格分開的要改變權限的檔案清單,支援通配符。系統管理者經常使用chown指令,在将檔案拷貝到另一個使用者的名錄下之後,讓使用者擁有使用該檔案的權限。

1. 指令格式

chown [選項]   [所有者][:[組]]  檔案            

2. 指令功能

    

通過chown改變檔案的擁有者和群組。在更改檔案的所有者或所屬群組時,可以使用使用者名稱和使用者識别碼設定。普通使用者不能将自己的檔案改變成其他的擁有者。其操作權限一般為管理者。

  

3. 指令參數

  

必要參數:

    

-c,顯示更改的部分的資訊  

-f,忽略錯誤資訊

-h,修複符号連結    

-R,處理指定目錄以及其子目錄下的所有檔案    

-v,顯示詳細的處理資訊    

-deference,作用于符号連結的指向,而不是連結檔案本身

  

選擇參數:

–reference=<目錄或檔案>,把指定的目錄/檔案作為參考,把操作的檔案/目錄設定成參考檔案/目錄相同擁有者和群組

–from=<目前使用者:目前群組>,隻有目前使用者和群組跟指定的使用者和群組相同時才進行改變

–help,顯示幫助資訊

–version,顯示版本資訊

  

4. 使用執行個體

  

例一:改變檔案的屬主和屬組

  

指令:

chown mail:mail log2012.log

# ll

---xr--r-- 1 root users 302108 11-30 08:39 linklog.log
---xr--r-- 1 root users 302108 11-30 08:39 log2012.log
-rw-r--r-- 1 root users     61 11-30 08:39 log2013.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2014.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2015.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2016.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2017.log

# chown mail:mail log2012.log 

# ll

---xr--r-- 1 root users 302108 11-30 08:39 linklog.log
---xr--r-- 1 mail mail  302108 11-30 08:39 log2012.log
-rw-r--r-- 1 root users     61 11-30 08:39 log2013.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2014.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2015.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2016.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2017.log           

例二:改變檔案的屬主

  

指令:

chown root: log2012.log

# ll

總計 604
---xr--r-- 1 root users 302108 11-30 08:39 linklog.log
---xr--r-- 1 mail mail  302108 11-30 08:39 log2012.log
-rw-r--r-- 1 root users     61 11-30 08:39 log2013.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2014.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2015.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2016.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2017.log

# chown root: log2012.log 

# ll

總計 604
---xr--r-- 1 root users 302108 11-30 08:39 linklog.log
---xr--r-- 1 root root  302108 11-30 08:39 log2012.log
-rw-r--r-- 1 root users     61 11-30 08:39 log2013.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2014.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2015.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2016.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2017.log           

例三:改變檔案的屬組

指令:

chown :mail log2012.log

# ll

總計 604
---xr--r-- 1 root users 302108 11-30 08:39 linklog.log
---xr--r-- 1 root root  302108 11-30 08:39 log2012.log
-rw-r--r-- 1 root users     61 11-30 08:39 log2013.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2014.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2015.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2016.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2017.log

# chown :mail log2012.log 

# ll

總計 604
---xr--r-- 1 root users 302108 11-30 08:39 linklog.log
---xr--r-- 1 root mail  302108 11-30 08:39 log2012.log
-rw-r--r-- 1 root users     61 11-30 08:39 log2013.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2014.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2015.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2016.log
-rw-r--r-- 1 root users      0 11-30 08:39 log2017.log           

  

例四:改變指定目錄(包括子目錄)下所有檔案的屬主和屬組

  

指令:

chown -R -v root:mail test6

  

# ll

drwxr-xr-x 2 root users   4096 11-30 08:39 test6

# chown -R -v root:mail test6

“test6/log2014.log” 的所有者已更改為 root:mail
“test6/linklog.log” 的所有者已更改為 root:mail
“test6/log2015.log” 的所有者已更改為 root:mail
“test6/log2013.log” 的所有者已更改為 root:mail
“test6/log2012.log” 的所有者已保留為 root:mail
“test6/log2017.log” 的所有者已更改為 root:mail
“test6/log2016.log” 的所有者已更改為 root:mail
“test6” 的所有者已更改為 root:mail

# ll

drwxr-xr-x 2 root mail   4096 11-30 08:39 test6

# cd test6

# ll

總計 604
---xr--r-- 1 root mail 302108 11-30 08:39 linklog.log
---xr--r-- 1 root mail 302108 11-30 08:39 log2012.log
-rw-r--r-- 1 root mail     61 11-30 08:39 log2013.log
-rw-r--r-- 1 root mail      0 11-30 08:39 log2014.log
-rw-r--r-- 1 root mail      0 11-30 08:39 log2015.log
-rw-r--r-- 1 root mail      0 11-30 08:39 log2016.log
-rw-r--r-- 1 root mail      0 11-30 08:39 log2017.log           

繼續閱讀