一:普通权限
- rw- --- --- . 1 root root 1478 Mar 30 20:31 anaconda-ks.cfg 文件类型 所属者权限 所属组权限 来宾权限 acl 硬链接数 所属者 所属组 文件大小 文件最近修改时间 文件名
文件的属主属组
chown 修改属主
- -R 递归修改
- --reference=RFILE FIEL 参考某文件修改
chgrp 修改属组
权限
用户对文件的访问类型可分为三类:
- owner: 属主, u
- group: 属组, g
- other: 其他, o
文件或文件夹访问权限可分为三种:
- r: Readable 读
- w: Writable 写
- x: eXcutable 执行
文件权限修改命令
chmod 修改文件权限
- --reference=:参照某文件为此文件修改权限
- -R:递归
- 方法一:
- chmod who opt per file
- who: u g o a
- opt: + - =
- per: r w x X:只对目录加执行权限(如果已经有执行权限的文件也会加执行权限)
- 方法2:数字法
- r:4
- w:2
- x:1
umask (掩码)+default = fiel(666)/dir(777)
- -p:输出时带umask
- -S:使用mode风格显示
- 功能:取消对应的权限
- 对于目录:
- default=777-umask
- 对于文件:
- defautl(奇数加1)=666-umask
- 非特权用户umask是 002
- root的umask 是 022
- 全局设置: /etc/bashrc 用户设置:~/.bashrc
总结:文件目录权限对文件的影响
- 普通用户不能改文件所有者
- 普通用户想改所属组必须在组里
- 读写权限对于root不生效,但是执行权限对root生效
- 读权限对于二进制程序不是必须的
- 操作文件需要的是文件夹的权限
- 对目录来讲没有执行权限,不能cd进去,不能查看目录中文件的详细属性,也不能读文件
二:特殊权限
SUID、SGID和sticky权限
SUID 赋予执行者继承所属者的权限,仅对二进制文件有效,在目录上设置无意义
- chmod u+s FILE...
- chmod u-s FILE...
SGID 文件 :继承二进制程序所有组的权限;文件夹 :此目录新建的文件继承目录的所属组
- chmod g+s FILE...
- chmod g-s FILE...
- chmod g+s DIR...
- chmod g-s DIR...
sticky 粘滞位,给文件夹赋予权限,此目录的文件只能被所有者删除
- chmod o+t DIR...
- chmod o-t DIR...
[root@centos6 ~]# ll -d /tmp/ drwxrwxrwt. 31 root root 4096 Apr 2 15:16 /tmp/
特殊权限数字法设置
[root@centos6 ~]# mkdir testdir [root@centos6 ~]# chmod 1755 testdir [root@centos6 ~]# ll -d testdir/ drwxr-xr-t. 2 root root 4096 Apr 2 15:37 testdir
特定权限
chattr 设置文件特定权限,防止误操作
- +i:锁定文件,不可删除,修改
- -i:解锁文件
- +a:锁定文件,可以追加
- -A:锁定文件读时间,可以降低系统负载
lsattr 查看锁定文件状态
三:访问控制列表
setfacl 设定访问控制列表
- -m u|g:USER:0|rwx FILE 添加 d 给文件夹设置默认acl权限
- -x u|g:USER|GROUP 删除
- mask:限高线 -m mask::rwx
- -b FILE:清空所有acl权限
- -R 递归
- -M file.acl 批量设置
- -X 批量删除
- --set-file=- 参考前边的权限设置指定文件
getfacl 查看文件的访问控制列表
ACL的备份与恢复
[root@centos6 data]# mkdir dir1 [root@centos6 data]# setfacl -m u:user1:rw dir1 [root@centos6 data]# setfacl -m u:user2:r dir1 [root@centos6 data]# getfacl -R dir1/ # file: dir1/ # owner: root # group: root user::rwx user:user1:rw- user:user2:r-- group::r-x mask::rwx other::r-x [root@centos6 data]# getfacl -R dir1/ >acl.txt [root@centos6 data]# setfacl -R -b dir1 [root@centos6 data]# getfacl -R dir1 # file: dir1 # owner: root # group: root user::rwx group::r-x other::r-x [root@centos6 data]# setfacl -R --set-file=acl.txt dir1 [root@centos6 data]# getfacl -R dir1 # file: dir1 # owner: root # group: root user::rwx user:user1:rw- user:user2:r-- group::r-x mask::rwx other::r-x
欢迎大家一起学习交流~