Linux命令之chown

时间:2023-03-09 03:05:16
Linux命令之chown

chown 更改文件全部者和组

语法:

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

chown [OPTION] --reference=RFILE  FILE

描写叙述:

chown 改变指定文件的用户和/或组的拥有者。

  • 假设只给定owner(username活在用户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了。

richerg85的专栏

//记录自己工作学习中的点点滴滴,希望有一天会变强大//