Linux系统中 chown和chmod 命令的区别:

时间:2021-07-27 08:46:58

chown 和 chmod 的区别:

一,chown

文件/目录权限设置命令:chmod 这是Linux系统管理员最常用到的命令之一,它用于改变文件或目录的访问权限。
使用方式 : chmod [-cfvR] [--help] [--version] mode file...
[-cfvR]诠释:----
-c : 若该档案权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help : 显示辅助说明
--version : 显示版本

该命令有两种用法:
一,用包含字母和操作符表达式的文字设定法
    其语法格式为: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
使用权限 : root
使用方式 : chown [-cfhvR] [--help] [--version] user[:group] file...
chown 修改文件的用户权限 修改文件和文件夹的用户和用户组属性
[-cfvR]诠释:----
-c : 若该档案权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help : 显示辅助说明
--version : 显示版本
user : 新的档案拥有者的使用者的 ID   
group : 新的档案拥有者的使用者群体(group)

实例剖析:


1,要修改文件hh.c的所有者,修改为HEHE这个用户所有
chown HEHE hh.c
这样就把hh.c的用户访问权限应用到HEHE作为所有者

2,将目录 /tmp/sco 这个目录的所有者和组分别改为HEHE和组net
chown -R HEHE:net /tmp/sco
eg:chown -R oracle:oinstall /database/      ----------------------------------------------------

Linux/Unix 是多人多工作业系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。
一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,
也没有权限可以将自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限