文件属性
umask
文件特殊权限
1、文件属性
一个文件是否能删除和文件本身没关系,和其所在的目录权限有关;目录保存着目录中的文件元数据信息
目录权限
x 基础权限,对于目录来说,是否可以访问目录里的文件的权限
r 看不了目录中的文件,提前知道有的文件,可以在外部看,不知道其中的文件列表
w 不能删除或修改该文件
cp /etc/issue 到 /data/dir 最小需要什么全系?
/usr/bin/cp 001
/etc/ 001 /issue/ 004
/data/ 001 /dir/003
chmod --reference=bc.log f1.txt #复制文件权限
X 只针对文件夹由执行权限
默认文件都被添加了selinux限制,表现如下
-rw-r--r--.
. selinux权限
vim /etc/selinux disable #永久关闭selinux
2、umask权限修改
umask+default = 777(dir) 666(file)
uamsk功能: 将对应的权限位遮挡,666 | 777 umask=000,新建文件其余安全原因,不允许有执行权限
666
123
原算法
110110110
001010011
110100100
默认权限:
计算公式
目录=777-umask
文件=666-umask,观测结果有奇数+1
永久保存
vim /root/bashrc
echo umask 033 >> /root/bashrc
. .bashrc
影响新建文件或文件夹权限
3、文件特殊权限
加锁文件解锁文件chattr +a file 只能追加内容
chattr -a file
lsattr fiel 显示特定的属性
chattr +i file 不能删除,改名,更改
chattr -i file
SUID, SGID, Sticky权限
使用前提: 进程有属主和属组;文件有属主和属组进程有属主和属组;文件有属主和属组
s|s 有执行权限,S|T 没有执行权限
suid
1.用于二进制程序可执行文件;继承程序的所有者的权限及属主
usermod u+s FILE…
usermod u-s FILE…
sgid:
1.作用在可执行二进制程序上
2.作用在目录: 在此目录中新建文件的所属文件的所属组将自动继承此目录的所属组
chmod g+s fiel
chmod g-s fiel
例:
[root@centos7 testdir]# ll
total 0
drw-rwsr-- 2 root webs 16 Oct 4 10:58 dir
Sticky位
具有写权限的目录通常所有用户都可以可以删除该目录中的任何文件,无论该文件的权限或拥有权
在目录设置Sticky 位,只有文件的所有者或root可以删除该文件,可以覆盖,修改,查看
sticky 设置在文件上无意义,一般设置在目录上
chmod o+t DIR…
chmod o-t DIR…
注: /tmp临时文件目录就有Sticky位
[root@CentOS7 /]#ll -d /tmp
drwxrwxrwt. 41 root root 4096 Sep 27 21:07 /tmp
ACL权限
除了文件的ugo以外,可以对更多的用户设置权限
setfacl -R 递归
setfacl -R -m {u|g|o}:groupname:Power /path/ 修改当前权限
getfacl file 查看特殊权限
setfacl -k dir 删除默认ACL权限
setfacl –b file1清除所有ACL权限
setfacl file1 | setfacl --set-file=- file2 复制file1的acl权限给file2
setfacl --set-file=/file1 /Power.txt 只复制权限到某文件中
例子:
[root@centos7 testdir]# ll 可和权限为一起使用
total 0
drw-rwsr--+ 2 root webs 16 Oct 4 10:58 dir
drw-rwsr--+ 2 root webs 16 Oct 4 10:58 dir
[root@centos7 testdir]# getfacl dir/
# file: dir/
# owner: root
# group: webs
# flags: -s-
user::rw-
group::r--
group:apps:rwx
group:dbs:r-x
mask::rwx
other::r--
ACL文件上的group权限是mask 值(自定义用户,自定义组,拥有组的最大权限),而非传统的组权限
通过ACL赋予目录默认x权限,目录内文件也不会继承x权限
base ACL 不能删除
ACL生效顺序: 所有者 --> 自定义用户 --> 所属组|自定义组 -->其他人