1、chmod 命令 改变文件权限

    文件对于使用者来说,有 读 、写 、执行 (当然,还有删除),而这里主要说的是,读写执行(rwx)

    r  w  x    对应的是 读写执行,也对应 :

   4   2  1   (即 4 表示 可读  ,2 表示可写, 1 表示可以执行)

2、然后,文件的所属关系来说,又分为, 文件的创建者(即拥有者)、创建者所属的组、 和其它用户;

   谁创建了文件或目录,那么,他就是那个文件的拥有者(user)

  而拥有者,所属的用户群体(即用户组),就是文件的所属于组(group)

  对于拥有者和所属组而言, 其它的用户或用户组,都属于其它(other)

   u   g  o    (即 用户,用户组,其它)

于是 对于一个文件或一个目录来说,就会存在,不同的人,就会拥有不同的权限:

   u  可能拥有: r  w  x  (读写执行权限)

 g  可能也会拥有: r  w  x  (读写执行权限)

 o  同样也可能会拥有: r w  x  (读写执行权限)

这样子,就出现了

那么chmod,就是改变,不同用户或组,对文件所拥有的不同权限

有两种方式:

a:  chmod 777  file_name  或 chmod 755 file_name  ; chmod 721  file_name  ;chmo 333 file_name;

这里表示的意思就是 因为7 表示 rwx  所以  第一位的 7 表示 用户所拥有的权限 , 第二位的7或5  表示 用户组所拥有的权限, 第三位的7 表示 其它用户所拥有的权限。

chmod 333 file_name;

b :    chmod u+x  file_name  ;  chmod g+rx    file_name ; chmod go+rwx  file_name ;     chmod ugo-rx  file_name;

     chmod u=wx , g=rw , o=rw   file_name

a=all(所有)    chmod    a+rwx ,a-wx,a=rwx , a=wx  file_name

 这里的 u+x  就是表示 的  拥有者 增加一个执行权限 ,  而后面的 ugo-rx  就表示  拥有者  用户组 和其它   都 减去 读 和执行权限 

注意: 以上是针对于单个文件或目录, 那么 针对于一个目录下的多个文件 或目录呢? 这里就要用到 递归 参数   - R   比如:

chmod  -R  dir_name

3 chown 命令(change owner),即改变文件的 拥有者 和 所属组

   chown    user   file_name   (改变用户 不改变用户组)

   chown          :group   file_name   (只改变用户组,不改变用户)(group 前面有一个点  .group   或冒号   :group  )

   chown    user.      file_name    (改变用户和用户组)(user后面,用一个小点  user.  或冒号  user:  )

同理,要改变目录下的所有文件 的拥有者和所属组呢?

chown  -R     user:group    dir_name

但这以上所改变的用户或用户组,必需是已经存在的,用户或用户组

 

4  umask  (为什么我们创建一个文件 或目录的时候,会有一个默认权限?  这里的umask 就是就是用来设置默认权限的)

umask  默认为  0022

目录的权限   为 777 - 0022  = 755    (对于目录而言,要进入一个目录,所以必需要有执行权限)

文件的权限   为 666 - 0022  = 644     (对于文件来说,可读可写,就行了,若需要执行,再加执行权限)

5、chattr /lsattr 隐藏权限

chattr + i  file_name  

chattr -i  file_name  (移除i 权限)

chattr + a    file_name   只能追加。  其它操作跟 chattr + i  一样的操作

chattr -a    file_name   移除a 权限

对目录而言呢? 跟对文件是一样的效果

chattr +i   dir_name

chattr -i   dir_name

chattr +a  dir_name

chattr -a   dir_name

 

总体来讲,就是可以写,但不可删!

lsattr -R dir_name  可以看 目录下的,所有文件的 attr权限