歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux基礎知識 >> Linux命令之chown

Linux命令之chown

日期:2017/3/2 17:15:49   编辑:Linux基礎知識

chown 更改文件所有者和組

1:改變擁有者和群組
  命令:chown mail:mail server.log
2:改變文件擁有者和群組
  命令:chown root: server.log
3:改變文件群組
  命令:chown :mail server.log
4:改變指定目錄以及其子目錄下的所有文件的擁有者和群組
  命令:chown -R -v root:mail test6
-R 處理指定目錄以及其子目錄下的所有文件
  -v 顯示詳細的處理信息

語法:

chown [OPTION] [OWNER][:[GROUP]] FILE

chown [OPTION] --reference=RFILE FILE

描述:

chown 改變指定文件的用戶和/或組的擁有者。

  • 如果僅僅給定owner(用戶名活在用戶ID),執行此語句後,僅僅改變選定文件的擁有者,文件的組是沒有改變的。

例如:

liujl@liujl-Rev-1-0:~/mycode/TEST$ ls -l
總用量 0

-rw-rw-r-- 1 liujl liujl 0 2012-06-20 09:31 mytest.txt

執行chown 後:

liujl@liujl-Rev-1-0:~/mycode/TEST$ sudo chown juanzhang mytest.txt
[sudo] password for liujl:
liujl@liujl-Rev-1-0:~/mycode/TEST$ ls -l
總用量 0
-rw-rw-r-- 1 juanzhang liujl 0 2012-06-20 09:31 mytest.txt

  • 如果owner後跟著“:”和組名(或者組ID),注意在“:”兩邊不要有空格,執行完此條語句後,用戶和組擁有者都會發生改變,例如:

liujl@liujl-Rev-1-0:~/mycode/TEST$ ls -l
總用量 0

-rw-rw-r-- 1 liujl liujl 0 2012-06-20 09:31 mytest.txt

執行chown後:

liujl@liujl-Rev-1-0:~/mycode/TEST$ sudo chown liujl:liujl mytest.txt
[sudo] password for liujl:
liujl@liujl-Rev-1-0:~/mycode/TEST$ ls -l
總用量 0
-rw-rw-r-- 1 liujl liujl 0 2012-06-20 09:31 mytest.txt

  • 如果僅有“:”,但後面沒有組名,系統會改變文件的擁有者及此擁有組所在的組。

例如:

liujl@liujl-Rev-1-0:~/mycode/TEST$ ls -l
總用量 0
-rw-rw-r-- 1 liujl liujl 0 2012-06-20 09:31 mytest.txt

liujl@liujl-Rev-1-0:~/mycode/TEST$ sudo chown juanzhang: mytest.txt
[sudo] password for liujl:
liujl@liujl-Rev-1-0:~/mycode/TEST$ ls -l
總用量 0
-rw-rw-r-- 1 juanzhang juanzhang 0 2012-06-20 09:31 mytest.txt

  • 如果“:”和組名給定,但是擁有者忽略,僅有組名被修改;在這種情況下,chown的功能和chgrp的功能相似。

liujl@liujl-Rev-1-0:~/mycode/TEST$ ls -l
總用量 0
-rw-rw-r-- 1 juanzhang juanzhang 0 2012-06-20 09:31 mytest.txt
iujl@liujl-Rev-1-0:~/mycode/TEST$ sudo chown :liujl mytest.txt
liujl@liujl-Rev-1-0:~/mycode/TEST$ ls -l
總用量 0
-rw-rw-r-- 1 juanzhang liujl 0 2012-06-20 09:31 mytest.txt

  • 如果僅“:”給定或者整個操作數為空,文件擁有者或者組名都不會改變。

liujl@liujl-Rev-1-0:~/mycode/TEST$ ls -l
總用量 0
-rw-rw-r-- 1 juanzhang liujl 0 2012-06-20 09:31 mytest.txt
liujl@liujl-Rev-1-0:~/mycode/TEST$ chown : mytest.txt
liujl@liujl-Rev-1-0:~/mycode/TEST$ ls -l
總用量 0
-rw-rw-r-- 1 juanzhang liujl 0 2012-06-20 09:31 mytest.txt
整個操作數為空,會報錯:

liujl@liujl-Rev-1-0:~/mycode/TEST$ chown mytest.txt
chown: "mytest.txt" 後缺少操作數

參數:

-R :進行遞歸的持續更改,即將同子目錄下的所有文件、目錄都更新問這個用戶組。通常用在更改某一目錄的情況。

應用場合:

此命令用的最多的地方是,當我們使用mv或者cp拷貝給其他人的時候,這些文件的擁有者和組名沒有改變,所以需要修改。

例子:

liujl@liujl-Rev-1-0:/usr$ ls -l|grep mytest2.txt
-rw-r--r-- 1 root root 0 2012-06-20 13:50 mytest2.txt
liujl@liujl-Rev-1-0:/usr$ sudo mv mytest2.txt /home/liujl/mycode/TEST/
liujl@liujl-Rev-1-0:~/mycode/TEST$ ls -l
總用量 0
-rw-r--r-- 1 root root 0 2012-06-20 13:50 mytest2.txt
現在mytest2.txt已經mv到liujl用戶下了,但是當修改的時候是不允許的,從上句可以看出,還是屬於root root ,這就需要chown了。

何問起

//記錄自己工作學習中的點點滴滴,希望有一天會變強大//

Copyright © Linux教程網 All Rights Reserved