一.基础
文件管理最核心的就是文件的权限管理。文件的主要属性有三个:读、写和执行。
用"ls -l"参数,就可以查看文件或者目录的权限信息。
文件信息有7列,分别表示如下含义:
- 表示文件的属性信息,其中从第二位到最后一位是文件的权限信息
- 表示文件的连接
- 表示文件的拥有者
- 表示文件的拥有这所在的有效用户组
- 表示文件的大小,如果是文件夹,则大小写的都是4096
- 表示文件创建日期或最近修改日期
- 为这个文件的文件名
权限信息
文件属性由长度为10的字符串构成,其中第一个字符表明文件类型。
文件类型如下:
- d代表目录
- -代表文件
- l代表连接文件
- b代表设备文件中可供存储的借口设备
- c代表设备文件中串行端口设备
其余属性按顺序分为三组:r表示可读,w表示可写,x表示可执行
2-4表示文件所有者权限
5-7表示文件所有者的有效用户组对文件操作的权限
8-10表示其他人对文件操作的权限
二.修改权限的方法
1.chmod 修改文件的读写属性
chmod的使用方法分为两种:
(1)数字表示文件权限
r用4表示
w用2表示
x用1表示
若要设定文件的拥有者同时对该文件拥有这三种权限rwx,可以换算成4+2+1=7
若要设定文件的拥有者的有效用户组的权限为rw,可以换算成4+2=6
若要设定其他人对文件的权限为r,可以换算成4
则可以使用如下指令:
(2)符号表示文件权限
符号分为三类:
(1)+、-和=运算符号,+表示增加权限,-表示减少权限,=表示设置权限
(2)a、u、g和o权限覆盖范围符号。a表示针对所有用户,u表示针对文件拥有者,g表示针对文件拥有这的有效用户组,o表示针对其他用户。
(3)r、w和x表明权限含义的符号,r表示可读,w表示可写,x表示可执行。
注意:如果权限覆盖范围符号被省去,表明该操作是针对所有用户,即默认值为a。
(3)目录属性
r:可以读取目录内的文件列表
w:可以修改目录内的结构
x:可以用cd命令进去该目录
2. chgrp 修改文件所属的用户组
指令模板:chgrp groupname filename
3. chown 修改文件所属的用户
指令模板:chown username filename
chown username:groupname filename
第二个指令是连着所属用户组一起更改。
三.默认权限与隐藏权限
1.文件默认权限 umask
umask是指“当前用户在建立文件或目录时的默认值”。umask数值表示缺少的权限,比如:
0002表示其他用户没有可写权限;
0001表示其他用户没有可执行权限;
0022表示用户组和其他用户没有可写权限。。。。
注意无论umask如何设定,新建的文件都没有可执行权限(x)!
2.文件隐藏属性
(1)设置文件隐藏属性 chattr
指令模板:chattr [+-=][Asacdistu] filename
最常用的是a和i,
a:设置a之后,这个文件只能增加数据,不能删除数据。
i:设置之后,文件不能被删除、改名、设置链接,也无法写入。
注意:连root用户都无法删除!
(2)显示文件隐藏属性 lsattr
指令模板:lsattr [-aR] filename