日期:2014-05-16  浏览次数:20589 次

Linux命令之chmod、chgrp、chown
    blog迁移至:http://www.micmiu.com

在linux系统下进程遇到查看文件的权限、修改文件的权限以及修改文件的所有者等操作,主要涉及到chmod、chgrp、chown三个命令。本文简单讲述下这三个命令的使用。
关于如何查看文件的权限问题在Linux命令之ls一文中已经做了解释
  • chgrp 修改文件所属组
  • chown 修改文件所有者
  • chmod 修改文件属性
一、chgrp 使用说明

用法:chgrp [-cfhRv][--help][--version][所属群组][文件或目录...]
或者:chgrp [-cfhRv][--help][--reference=参考文件或目录][--version][文件或目录...]

参数[-R] 用于整个目录下递归
参数[-h] 有且只有改变符号连接的用户组
参数[-c]与[-v]类似,但是v表示无论如何也要显示结果,c表示只有更改组之后才显示结果

实例:chgrp [-R] test test.txt 
表示把test.txt文件的群组修改成test

二、chown 使用说明
用法:chown [选项]... 所有者[:[组]] 文件...
  或:chown [选项]... :组 文件...
  或:chown [选项]... --reference=参考文件 文件...

chown [-cfhvR] [--help] [--version] user[:group] file...
<参数>[-cfvR] 类似上面的chgrp的用法

范例
chown test:users test.txt
将档案 test.txt 的拥有者设为 users 群的使用者 test

chown -R test:users *
将目前目录下的所有档案与子目录的拥有者皆设为 users 群体的使用者 test

chgrp和chown 的都是转移文件属主 但是chown只能在同一个用户组里面转换而chgrp可以转移到不同的用户组

三、chmod 使用说明
用法:chmod [选项]... 模式[,模式]... 文件...
  或:chmod [选项]... 八进制模式 文件...
  或:chmod [选项]... --reference=参考文件 文件...
<模式>由三部份组成:一个或以上的 ugoa 字母,一个或以上的 +-= 符号,
和一个或以上的 rwxXstugo 字母。
<参数>[-cfvR] 类似上面的chgrp的用法

具体比如 chmod [-R] u/g/o/a  +/-/=  rwx  檔案或目錄
【u/g/o/a】说明
  • u:user表示该档案的拥有者
  • g:group表示与该档案的拥有者属于同一个群体(group)者
  • o:other表示其他以外的人
  • a:all表示这三者皆是
【+-=】说明
  • +:增加权限
  • -:撤销权限
  • =:设定权限
【rwx】说明
  • r:read表示可读取
  • w:write表示可写入
  • x:excute表示可执行
  • X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行
当然rwx这些权限也可以用数字来代替
r:4 w:2 x:1 -:0
   比如执行:chmod u=rwx,g=rx,o=r filename
   就等同于:chmod u=7,g=5,o=4 filename
   
范例:
   chmod o-r test.txt
  表示给其他人撤销test.txt这个文件的读权限

   chmod -R a+r *
  将目前目录下的所有档案与子目录皆设为任何人可读取

   chmod ug+w,o-w test1.txt test2.txt
  将档案 test1.txt 与 test2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入

  chmod ug=rwx,o=x file 效果等同于 chmod 771 file

  chmod a=rwx file 效果等同于 chmod 777 file