文件权限

文件权限

1、基本权限UGO

– rw- r– r– 1 alice hr 0 Aug 31 16:29 file1
文件类型 属主权限 属组权限 其他人权限 属主 属组

权限对象:
属主: u
属组: g
其他人: o

基本权限类型:
读:  r 4
写:  w 2
执行: x 1

2、设置权限(符号 或 数字)

1)更改文件的属主chown、属组chgrp

chown:
[root@test ~]# chown alice.hr file1 //改属主、属组
[root@test ~]# chown alice file1 //只改属主
[root@test ~]# chown .hr file1 //只改属组
[root@test ~]# chown -R alice.hr dir1 //将dir1目录下的所有文件和目录及目录下面的三四级文件更改属组和属主
chgrp:
[root@test ~]# chgrp it file1 //改文件属组
[root@test ~]# chgrp -R it dir1 //改文件属组

2)更改权限

a. 使用符号

对象 赋值符 权限类型
u + r
chmod g – w file1
o = x
a

Example:
[root@test ~]# chmod u+x file1 //属主增加执行
[root@test ~]# chmod a=rwx file1 //所有人等于读写执行
[root@test ~]# chmod a=- file1 //所有人没有权限
[root@test ~]# chmod ug=rw,o=r file1 //属主属组等于读写,其他人只读
[root@test ~]# ll file1 //以长模式方式查看文件权限
-rw-rw-r– 1 alice it 17 10-25 16:45 file1 //显示的结果

b. 使用数字

[root@test ~]# chmod 644 file1
[root@test ~]# ll file1
-rw-r–r– 1 alice hr 17 10-25 16:45 file1

3、基本权限ACL

getfacl
               //查看文件ACL权限
setfacl [选项] 参数
   //设置文件ACL权限
-b,–remove-all:删除所有扩展的acl规则,基本的acl规则(所有者,群组,其他)将被保留
-R,–recursive:递归的对所有文件及目录进行操作

Example:

[root@test ~]# touch /home/test.txt
[root@test ~]# ll /home/test.txt
-rw-r–r– 1 root root 0 10-26 13:59 /home/test.txt

[root@test ~]# getfacl /home/test.txt
[root@test ~]# setfacl -m u:alice:rw /home/test.txt //增加用户alice权限
[root@test ~]# setfacl -m u:jack:- /home/test.txt //增加用户jack权限
[root@test ~]# setfacl -m o::rw /home/test.txt

查看/删除:

[root@test ~]# ll /home/test.txt
-rw-rw-r–+ 1 root root 0 10-26 13:59 /home/test.txt
[root@test ~]# getfacl /home/test.txt

[root@test ~]# setfacl -m g:hr:r /home/test.txt
[root@test ~]# setfacl -x g:hr /home/test.txt //删除组hr的acl权限
[root@test ~]# setfacl -b /home/test.txt //删除所有acl权限

4、ACL高级

mask:
用于临时降低用户或组(除属主和其他人)的权限
mask决定了他们的最高权限
建议:为了方便管理文件权限,其他人的权限置为空
[root@test ~]# setfacl -m o::- /home/file100.txt //chmod o=- /home/file100.txt
[root@test ~]# setfacl -m m::— /home/file100.txt

5、高级权限suid,sgid,sticky

高级权限的类型

suid 4 //普通用户通过suid提权 <针对文件>
sgid 2 //用户只能删除自己的文件 <针对目录>
sticky 1 //新建文件继承目录属组 <针对目录>

设置特殊权限

a、字符

chmod u+s file
chmod g+s file
chmod g+s dir
chmod o+t dir

b、数字

chmod 4777 file
chmod 7777 file
chmod 2770 dir
chmod 3770 dir

6、文件属性(设置文件属性(权限),针对所有用户,包括root)

lsattr [选项] 参数 //查看文件属性
-a:列出目录中的所有文件,包括隐藏文件
chattr [选项] 参数 //设置文件属性
-a:让文件或目录仅供附加用途
-i:不得任意更改文件或目录

Example:

[root@test ~]# touch file100 file200 file300
[root@test ~]# lsattr file100 file200 file300
————-e- file100
————-e- file200
————-e- file300
[root@test ~]# chattr +a file100
[root@test ~]# chattr +i file200
[root@test ~]# chattr +A file300
[root@test ~]# lsattr file100 file200 file300
—–a——-e- file100
—-i——–e- file200
——-A—–e- file300
[root@test ~]# echo 111 > file100 //以覆盖的方式写入
bash: file100: Operation not permitted
[root@test ~]# rm -rf file100
rm: cannot remove `file100′: Operation not permitted
[root@test ~]# echo 111 >> file100 //以追加的方式写入,例如日志文件

[root@test ~]# echo 111 > file200
bash: file200: Permission denied
[root@instructor ~]# echo 111 >> file200
bash: file200: Permission denied
[root@test ~]# rm -rf file200
rm: cannot remove `file200′: Operation not permitted

[root@test ~]# chattr -a file100
[root@test ~]# chattr -i file200
[root@test ~]# chattr -A file300

7、进程掩码 mask umask

文件权限管理之: 进程umask
进程、新建文件、目录的默认权限会受到umask的影响,umask表示要减掉的权限

Example:

示例1: 在shell进程中创建文件

[root@test ~]# umask //查看当前用户的umask权限
0022
[root@test ~]# touch file800
[root@test ~]# mkdir dir800
[root@test ~]# 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@test ~]# umask 000
[root@test ~]# mkdir dir900
[root@test ~]# touch file900
[root@test ~]# 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@test ~]# vim /etc/profile
if [ $UID -gt 199 ] && [ “`id -gn`” = “`id -un`” ]; then
umask 002
else
umask 022
fi
[root@test ~]# source /etc/profile //立即在当前shell中生效

示例4:通过umask决定新建用户HOME目录的权限

[root@test ~]# vim /etc/login.defs
UMASK 077
[root@test ~]# useradd gougou
[root@test ~]# ll -d /home/gougou/
drwx——. 4 gougou gougou 4096 3月 11 19:50 /home/gougou/

[root@test ~]# vim /etc/login.defs
UMASK 000
[root@test ~]# useradd yangyang
[root@test ~]# ll -d /home/yangyang/
drwxrwxrwx. 4 yangyang yangyang 4096 3月 11 19:53 /home/yangyang/
posted @ 2021-08-27 14:43  Cai_HL  阅读(202)  评论(0编辑  收藏  举报
>