一 文件目录权限定义
首先我们先认识一下文件目录的权限定义,请看下面ls -l的结果
我们发现一个文件或者目录的前面有10位的信息,第一位表示文件类型,大概有一下几种类型:d 表示目录 - 普通文件 b 块设备 (sda,sda1)l 链接文件 c 字符文件 p 管道文件 s 套接字文件 我们熟悉前四种即可。
后面的9位,没3位一组,分别表示用户(拥有者/属主),用户组(拥有组/属组),其他用户的权限.符号表示为u(user),g(group),o(others)
每组里面有3个权限r,w,x 分表表示读,写,执行。数字记法为rwx=421=7
rw=42=6依次类推
三种权限对于文件和目录的详细含义见以下表格
注意文件权限在root账户下失效,登陆普通账户验证
二 属主属组修改 chown
含义为:change owner 更改文件所属用户
格式 chown 用户 filename
也可以 chown 用户:用户组 filename 同时修改属主跟属组
-R 参数可以级联
三 文件目录权限修改
chmod 更改文件权限有三种办法:
1 chmod u=rwx filename
2 chmod u+r filename 或者 chmod u-r filename
备注:u可以换作g,o,也可以用逗号隔开,同时赋值,后面的权限自定义
chmod a+x filename 同时给u,g,o 可执行权限
3 chmod 770 filename 直接给u,g,o 修改权限
4 -R 参数可以给目录级联修改权限
四 umask
umask 可以说是一个文件权限的开放标准, 我们新建一个文件或者目录都会有一个默认权限,比如在普通用户下,新建一个文件权限为664,目录为775, 此时我们查看umask 发现为0002, 默认四位,第一位0为补位,后三位分别表示u,g,o的参考权限, 简单求和 我们发现,
对于普通文件满权限为 664+002=666
对于目录文件满权限为 775+002=777
那么意味着我们对普通文件默认不给x权限,尽量限制普通用户权限,目录则无法从源头控制,默认最大权限。
我们可以修改umask值,来修改预设权限
命令格式为 umask xxx, xxx为三个数字表示的基准权限
五 隐藏权限 chattr lsattr
下面介绍两个隐藏权限 i 权限 和 a 权限
命令 chattr:
chattr [+-=] [i,a] [文件或目录名] 例 chattr +a test.txt
‘+-=’ : 分别为增加、减少、设定
‘a’ : 增加该属性后,只能追加不能删除,非root用户不能设定该属性;
'i’ : 增加后,使文件不能被删除、重命名、设定链接接、写入、新增数据;
我们举例说明,给一个目录怎家i权限看下效果:
我们对test目录增加i权限后,即使root用户也不能再里面创建或删除文件
下面我们给目录增加a权限 ,看下结果
我们发现给目录增加a权限后可以在里面创建文件,但不能删除
下面我们给文件增加i和a权限,看下结果
命令 : lsattr
该命令用来读取文件或者目录的特殊权限,语法为 lsattr [-aR] [文件/目录名]
‘-a’ : 类似与ls 的-a 选项,即连同隐藏文件一同列出;
‘-R’ : 连同子目录的数据一同列出