一 文件目录权限定义

首先我们先认识一下文件目录的权限定义,请看下面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’ : 连同子目录的数据一同列出