chown和chmod命令的区别

时间:2022-05-04 16:42:28

来源:http://blog.csdn.net/klyz1314/article/details/20250487


chmod 命令有两种用法:
一,用包含字母和操作符表达式的文字设定法
    其语法格式为:chmod [who] [opt] [mode] 文件/目录名 
    其中who表示对象,是以下字母中的一个或组合:
       u:表示文件所有者 
       g:表示同组用户
       o:表示其它用户
       a:表示所有用户
   opt则是代表操作,可以为: +:添加某个权限 -:取消某个权限 =:赋予给定的权限,并取消原有的权限
   mode则代表权限:
       r:可读 
       w:可写 
       x:可执行  表示只有当该档案是个子目录或者该档案已经被设定过为可执行
 例如:为同组用户增加对文件a.txt的读写权限:eg: chmod g+rw a.txt
二, 用数字设定法 
  数字设定法则更为简单:chmod [mode] 文件名 或者chmod UPO file 分别表示User、Group、及Other的权限
  关键是mode的取值,其实很简单,我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,
  那么rwx r-x r-- 则可以表示成为: 111 101 100 再将其每三位转换成为一个十进制数,就是754。
  例如,我们想让a.txt这个文件的权限为: 
        自己 同组用户 其他用户 
   可读  是     是         是 
   可写  是     是            
   可执行 
  那么,我们先根据上表得到权限串为:rw-rw-r--,那么转换成二进制数就是110 110 100,
  再每三位转换成为一个十进制数,就得到664,
  因此我们执行命令: chmod 664 a.txt
例如:
-rw------- (600) -- 只有属主有读写权限。
-rw-r--r-- (644) -- 只有属主有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) -- 只有属主有读、写、执行权限。
-rwxrwxrwx (777) -- 所有用户都有读、写、执行权限
-rwxrwx--- (770) -- 只有属主和属组用户有读、写、执行权限

例子剖析:

chmod 修改文件和文件夹读写执行属性 
这是linux系统管理员最常用到的命令之一,它用于改变文件或目录的访问权限
1,把hh.c文件修改为可写可读可执行 
chmod 777 hh.c 
要修改某目录下所有的文件属性为可写可读可执行 
chmod 777 *.* 
把文件夹名称与后缀名用*来代替就可以了。 
同理若是要修改所有htm文件的属性 
eg:chmod 777 *.htm 
2。把目录 /tmp/sco修改为可写可读可执行 
chmod 777 /tmp/sco

要修改某目录下所有的文件夹属性为可写可读可执行 
chmod 777 * 
把文件夹名称用*来代替就可以了

要修改/tmp/sco下所有的文件和文件夹及其子文件夹属性为可写可读可执行 
chmod -R 777 /tmp/sco

可写 w=4
可读 r=2 
可执行 x=1 
777就是拥有全权限。根据需要可以*组合用户和组的权限



chown:用来更改某个目录或文件的用户名和用户组的

语法

chown [-cfhvR] [--help] [--version] user[:group] file...

参数 :

  • user : 新的文件拥有者的使用者 ID
  • group : 新的文件拥有者的使用者群体(group)
  • -c : 若该文件拥有者确实已经更改,才显示其更改动作
  • -f : 若该文件拥有者无法被更改也不要显示错误讯息
  • -h : 只对于连结(link)进行变更,而非该 link 真正指向的文件
  • -v : 显示拥有者变更的详细资料
  • -R : 对目前目录下的所有文件与子目录进行相同的拥有者变更(即以递回的方式逐个变更)
  • --help : 显示辅助说明
  • --version : 显示版本

实例

chown 用户名:组名 文件路径(可以是就对路径也可以是相对路径)
例1:chown root:root /tmp/tmp1
就是把tmp下的tmp1的用户名和用户组改成root和root(只修改了tmp1的属组).
例2:chown -R root:root /tmp/tmp1

就是把tmp下的tmp1下的所有文件的用户名和用户组都改成root和root。

例3: chown -R liu /usr/meng

将目录/usr/meng及其下面的所有文件、子目录的文件主改成 liu