Linux之文件访问权限管理
概述:在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。
有以下三种访问方式限制访问权限:
只允许用户自己访问;
允许一个预先指定的用户组中的用户访问;
允许系统中的任何用户访问。
同时,用户能够控制一个给定的文件或目录的访问程度。一个文件活目录可能有读(r)、写(w)及执行权限(x)。当创建一个文件时,系统会自动地赋予文件所有者读和写的权限,这样可以允许所有者能够显示文件内容和修改文件。
三种不同的用户类型访问一个目录或者文件:所有者(ownuer: u)、用户组(group: g)或其他用户(other: o)。
所有者创建文件的用户,用户是所有用户所创建的文件的所有者,用户可以允许所在的用户组能访问用户的文件。通常,用户都组合成用户组。在这种意义上,系统内的其他所有用户就是other用户类。
每一个用户它自身的读(r)、写(w)和执行权限(x)。
1、权限控制访问自己的文件权限,即所有者权限。
2、权限控制用户组访问其中一个用户的文件的权限。
3、权限控制其他所有用户访
3种权限赋予用户不同类型读、写及执行权限就构成了一个有9种类型的权限组
用-l参数的ls命令显示文件的详细信息,包括权限
如下:
[CENTOS@localhost ~]$ ls -lh /var/log/
总用量 1.7M
-rw-------. 1 root root 2.4K 8月 23 20:12 anaconda.ifcfg.log
-rw-------. 1 root root 30K 8月 23 20:12 anaconda.log
-rw-------. 1 root root 43K 8月 23 20:12 anaconda.program.log
-rw-------. 1 root root 145K 8月 23 20:12 anaconda.storage.log
-rw-------. 1 root root 133K 8月 23 20:12 anaconda.syslog
-rw-------. 1 root root 31K 8月 23 20:12 anaconda.xlog
-rw-------. 1 root root 117K 8月 23 20:12 anaconda.yum.log
drwxr-x---. 2 root root 4.0K 8月 23 20:24 audit
-rw-r--r--. 1 root root 2.6K 8月 25 14:27 boot.log
-rw-------. 1 root utmp 384 8月 25 04:16 btmp
drwxr-xr-x. 2 root root 4.0K 8月 23 21:55 ConsoleKit
-rw-------. 1 root root 19K 8月 25 23:53 cron
drwxr-xr-x. 2 lp sys 4.0K 7月 24 19:09 cups
注:最前面的第2~10个字符是用来表示权限。第一个字符一般用来区分文件和目录。以下用二进制和十进制表示权限
权限 二进制 十进制
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
如上面的cpus文件访问权限用十进制为
drwxr-xr-x. cups 十进制表示法:755
Linux命令之文件系统权限管理命令,chmod、chown,chgrp,umask(遮罩码)
chmod:改变文件或目录的访问权限;该命令有两种用法:包含字母和操作符表达式设定法;包含数字的数字设定法
语法:chmod [who] [+ | - | =] [mode] 文件名
常用选项参数
对象who有下述字母中的任一个或者任意组合:
u:user,文件或目录的所有者
g:group,文件或目录属组
o:others,其他用户
a:all,默认所有用户
操作符[+ | - | =]:
+:添加权限
-:取消权限
=:赋予权限
[mode]下述字母的任意组合权限:
r(可读),w(可写),x(可执行)
示例:给/tmp/back.local文件属组添加可写权限
删除/tmp/back.local所有可读权限
设定/tmp/back.local文件属主可读可写,属组、其他用户均为可读
chown:改变文件的拥有者和群组
语法:chown [选项]... [所有者][:[组]] FILE...
常见选项参数
-R:处理指定目录以及其子目录下的所有文件
--reference=<目录或文件> 把指定的目录/文件作为参考,把操作的文件/目录设置成参考文件/目录相同拥有者和群组
示例:改变/tmp/log/log2015.log拥有者和群组为user1
改变指定目录以及其子目录下的所有文件的拥有者和群组
chgrp:改变文件或目录的所属群组,使用权限是超级用户
语法:chgrp [选项] [组] [FILE]
常见参数选项
-R:处理指定目录以及其子目录下的所有文件
-v:显示详细的处理信息
--reference=<目录或文件> 把指定的目录/文件作为参考,把操作的文件/目录设置成参考文件/目录相同拥有者和群组
示例:改变指定目录以及其子目录下的所有文件的群组
通过GID改变文件群组
指定文件改变文件的群组
umask:权限掩码,默认情况下的umask值是022(可以用umask命令查看)。umask是为控制默认权限,新建文件默认权限为644,即(6-0,6-2,6-2),新建目录默认权限为755即(7-0,7-2,7-2)
常用的umask值及对应的文件和目录权限
umsk(022) 目录(755)文件(644)
umsk(002) 目录(775)文件(664)
umsk(006) 目录(771)文件(660)
修改umask值方法
umask [mode] 注:此命令只对当前shell有效
示例:修改umask为024,即对应的新建的文件和目录分别为642、753,并且只对当前shell有效