• 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了。

    richerg85的专栏

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

  • 相关阅读:
    《大道至简》读后笔记_3
    学习进度表_十周
    《大道至简》读后笔记_2
    《大道至简》读后笔记_1
    《梦断代码》读后笔记_3
    《梦断代码》读后笔记_2
    学习进度表_九周
    《梦断代码》读后笔记_1
    小组评价
    团队效绩计划
  • 原文地址:https://www.cnblogs.com/catkins/p/5296196.html
Copyright © 2020-2023  润新知