每天一点Linux-09进程掩码与文件属性
进程掩码 mask umask
文件权限管理之: 进程umask(每个进程都有自己的umask值)
进程 新建文件、目录的默认权限会受到umask的影响,umask表示要减掉的权限
一般用户的umask的值为0002,root用户的umask值为0022
shell (vim,touch) =======umask======> 新文件或目录权限
vsftpd =======umask======> 新文件或目录权限
samba =======umask======> 新文件或目录权限
useradd =======umask======> 用户HOME
示例1: 在shell进程中创建文件
[root@ecs-ea9d ~]# umask //查看当前用户的umask权限
0022 (x:用户:组:其他用户)
[root@ecs-ea9d ~]# touch file800
[root@ecs-ea9d ~]# mkdir dir800
[root@ecs-ea9d ~]# ll -d dir800 file800
drwxr-xr-x. 2 root root 4096 3月 11 19:40 dir800
-rw-r–r–. 1 root root 0 3月 11 19:40 file800
示例2:修改shell umask值(临时)
[root@ecs-ea9d ~]# umask 000
[root@ecs-ea9d ~]# mkdir dir900
[root@ecs-ea9d ~]# touch file900
[root@ecs-ea9d ~]# ll -d dir900 file900
drwxrwxrwx. 2 root root 4096 3月 11 19:44 dir900
-rw-rw-rw-. 1 root root 0 3月 11 19:44 file900
示例3:修改shell umask值(永久)
[root@ecs-ea9d ~]# vim /etc/profile
if [ $UID -gt 199 ] && [ “id -gn” = “id -un” ]; then
umask 002
else
umask 022
fi
[root@ecs-ea9d ~]# source /etc/profile //立即在当前shell中生效
示例4:通过umask决定新建用户HOME目录的权限
[root@ecs-ea9d ~]# vim /etc/login.defs
UMASK 077
[root@ecs-ea9d ~]# useradd gougou
[root@ecs-ea9d ~]# ll -d /home/gougou/
drwx——. 4 gougou gougou 4096 3月 11 19:50 /home/gougou/
[root@ecs-ea9d ~]# vim /etc/login.defs
UMASK 000
[root@ecs-ea9d ~]# useradd yangyang
[root@ecs-ea9d ~]# ll -d /home/yangyang/
drwxrwxrwx. 4 yangyang yangyang 4096 3月 11 19:53 /home/yangyang/
示例5:例如vsftpd进程 /etc/vsftpd/vsftpd.conf 【了解】
anon_umask=007
local_umask=000
文件属性 chattr
文件权限管理之: 文件属性(attribute)
注:设置文件属性,针对所有用户,包括root,属性高于权限,只能root用户操作
a属性可以对文件进行追加,但不允许删除
i属性不允许对文件有任何形式修改
A(atime)属性不会更新对文件访问时间
[root@ecs-ea9d ~]# touch file100 file200 file300
[root@ecs-ea9d ~]# lsattr file100 file200 file300
————-e- file100
————-e- file200
————-e- file300
[root@ecs-ea9d ~]# man chattr
[root@ecs-ea9d ~]# chattr +a file100
[root@ecs-ea9d ~]# chattr +i file200
[root@ecs-ea9d ~]# chattr +A file300
[root@ecs-ea9d ~]# lsattr file100 file200 file300
—–a——-e- file100
—-i——–e- file200
——-A—–e- file300
[root@ecs-ea9d ~]# echo 111 > file100 //以覆盖的方式写入
bash: file100: Operation not permitted
[root@ecs-ea9d ~]# rm -rf file100
rm: cannot remove `file100’: Operation not permitted
[root@ecs-ea9d ~]# echo 111 >> file100 //以追加的方式写入,例如日志文件
[root@ecs-ea9d ~]# echo 111 > file200
bash: file200: Permission denied
[root@instructor ~]# echo 111 >> file200
bash: file200: Permission denied
[root@ecs-ea9d ~]# rm -rf file200
rm: cannot remove `file200’: Operation not permitted
[root@ecs-ea9d ~]# chattr -a file100
[root@ecs-ea9d ~]# chattr -i file200
[root@ecs-ea9d ~]# chattr -A file300
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2924854739@qq.com
文章标题:每天一点Linux-09进程掩码与文件属性
本文作者:DROBP
发布时间:2019-08-17, 20:07:22
最后更新:2019-08-17, 20:09:00
原始链接:https://DROBP.github.io/2019/08/17/每天一点Linux-09进程掩码与文件属性/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。