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权限