chown的手册页说chown会更改每个给定文件的用户和/或组所有权,仅提供所有者(用户名或数字用户ID)时,该用户将成为每个给定文件的所有者,并且不会更改文件组,如果所有者后跟冒号和组名(或数字组ID),并且它们之间没有空格,则文件的组所有权也会更改。当你使用冒号但在用户名后面没有组名时,该用户将成为文件的所有者,并且文件组将更改为该用户的登录组,如果给出冒号和组,但省略了所有者,则只更改文件组,在这种情况下,chown执行与chgrp相同的功能,如果仅给出冒号,或者整个操作数为空,则不会更改所有者和组。
使用常见的chown选项 -c, - 更改类似于详细信息,但仅在进行更改时报告。 -f,-silent,-quiet可以抑制大多数错误消息。 -v,-verbose为每个处理的文件输出诊断信息。 -R,-recursive递归地对文件和目录进行操作。 要查看为即将更改的文件设置的权限,请使用ls实用程序,也可参考不使用ls命令列出目录内容,转而使用替代命令的方法。
相关Linux chown示例 1、运行文件或目录的长列表: $ ls -l
如你所见,上述文件归用户tech和group tech以及用户jmwang和group jmwang所有。 2、要将configs.txt的用户和组更改为tech,请执行: # sudo chown tech:tech configs.txt 3、列出文件以显示新的所有权
要将frontend.php的用户更改为jmwang并将该组保留为tech: $ sudo chown jmwang:tech frontend.php 3、列出文件以确认更改
要将backend.php的组更改为jmwang,请执行: $ sudo chown :jmwang backend.php $ ls -l
你可以使用一个文件的权限,并使用-reference选项将它们强加于另一个文件,让我们试试看它是否有效: $ sudo chown --reference=backend.php frontend.php $ ls -l
到目前为止,我们一直在处理文件,如果你需要一起更改目录的所有权,那么它的所有文件和子目录是什么?chown带有递归功能。 要以递归方式更改目录上的用户和组所有权,只需使用-R选项,你就可以开始使用了,使用与仅添加-R选项的文件相同的命令: $ sudo chown -R http:httpd /var/www/html/ 4、仅更改组所有权: $ sudo chown -R :httpd /var/www/html/ 5、仅更改用户所有权 $ sudo chown -R httpd /var/www/html/ ## 注意没有前导全冒号。 到目前为止,我们已经与文件和目录进行了交互,当我们更改符号链接的所有权时会发生什么?让我们调查并解决它,让我们为configs.txt创建一个符号链接: $ sudo ln -s configs.txt test.txt 6、列出它们以查看软链接
让我们尝试将我们知道的方式更改为test.txt的用户和组所有权给jmwang: $ sudo chown jmwang:jmwang test.txt 7、查看更改的长列表
你会注意到test.txt的所有权没有改变。 为了强制更改符号链接的所有权,请发出-h选项,如下所示: $ sudo chown -h jmwang:jmwang test.txt 8、查看更改的长列表
结论 更改文件和目录所有权就像使用chown命令一样简单,它本身的使用就非常直观。我们希望这篇文章能够帮助你更好的理解Linux chown命令。
相关主题 |