歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux基礎知識

Linux命令之chown

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