文件权限是系统最底层安全设定方法之一,保证文件可以被可用的用户做相应操作
<<…文件权限的查看…>>
ls -l file ## 查看文件属性 “ll”是“ls -l”的别名
ls -ld dir ## 显示目录本身属性
ll file ## “ll”是系统定义词
ll -d dir ## 显示目录本身属性
<<…文件权限的读取…>>
文件类型和权限、连接点、所有者、所属组、文件容量、最近修改日期、文件名
- rw- r- - r - - 1 root root 0 Jul 21 09:18 file
[1] [2] [3] [4] [5] [6] [7] [8]
【1】文件类型
- ##空文件,或者文本
d ##目录
l ##软连接
s ##socket套接字
b ##block块设备
c ##字符设备
【2】文件权限
r w- | r w- | r- -
1 2 3
1. [u] 文件所有者对文件能做什么操作
2. [g] 文件所有组对文件能做什么操作
3. [o] 其他人能对文件做什么操作
【3】
对文件:文件硬链接个数(文件内容被记录的次数)
对目录:目录中子目录的个数
【4】
文件所有者
【5】
文件所有组
【6】
对文件:文件大小
对目录:目录中子 文件元数据(matedate可理解为文件属性)大小
【7】
文件内容被修改的时间
【8】
文件名
<<…改变文件所有人和所有组…>>
chown | chgrp
chown username file | dir
chown user.group file | dir
chown -R user.group dir
chgrp group file | dir
chgrp -R group dir ## - R表示递归
<<…改变文件的权限…>>
1.对文件权限的理解
r
对文件:是否可以查看文件中的内容 cat file
对目录:是否可以查看文件中的子文件或子目录
w
对文件:是否可以更改文件中的内容
对目录:是否可以更改目录中子目录或子文件的元数据进行更改
x
对文件:是否可以通过文件名调用文件内记录的程序
对目录:是否可以进入目录
2.更改方式
chmod < u | g | o > < + | - | = > < r | w | x > file/dir
chmod u+x /mnt/file1
chmod g-r /mnt/file2
chmod ug-r /mnt/file3
chmod u-r,g+x /mnt/file4
chmod -r /mnt/file5
chmod o=r-x /mnt/file6
rwx 210 r=4 w=2 x=1
r - x | r - - | - - x
5 4 1
chmod 541 /mnt/file1
7= r w x
6= r w -
5= r - x
4= r - -
3= - w x
2= - w -
1= - - x
<<…umask…>>
umask ## 系统建立文件时默认保留的权限
umask 022 ## 建立目录时默认预留权限
>>默认建立的目录都是755
111 ## 文件系统默认保留权限
>>默认建立的文件都是644,在目录755的基础上再减111
永久更改umask
vim /etc /profile ## 系统配置文件
59 if [ $UID -gt 199 ] && [ “id -gn
” = “id -un
” ]; then
60 umask 002 ## 普通用户的umask
61 else
62 umask 077 ## 超级用户的umask
63 fi
vim /etc /bashrc ## shell配置文件
70 if [ $UID -gt 199 ] && [ “id -gn
” = “id -un
” ]; then
71 umask 002
72 else
73 umask 077
74 fi
需要同时更改两个文件,然后source /etc/profile /etc/bashrc 重新读取两文件使其立即生效
<<…特殊权限…>>
1.Sticky " t " ## 粘滞位
作用:
只针对目录生效,当一个目录上有sticky权限时在这个目录中的文件只能被文件的所有者删除
设定方式:chmod o+t dir
chmod 1xxx dir
2.SGID ‘s’ ## 强制位
作用:
对文件:只针对于二进制可执行文件,当文件上有sgid时任何人执行此文件产成的进程都属于文件的所属组
对目录:当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组
设定方式:chmod g+s file | dir
chmod 2xxx file | dir
3.SUID ‘s’ ## 冒险位
作用:
只针对于二进制可执行文件,当文件上有suid时任何人执行这个文件中记的程序产生的进程都属于文件的所有者
设定方式:chmod u+s file
chmod 4xxx file
PS : (1) 命令执行者要对改程序拥有x(执行)权限
(2) 命令执行者在执行该程序时获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)
(3) SUID和SGID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效
<<…ACL权限列表…>>
ACL ##让特定用户对特定文件拥有特定权限
1.ACL列表查看
- rw-rwxr- - + 1 root root 0 Jul 21 15:45 file ## 有"+"表示ACL开启
getfacl file ## 查看ACL开启的文件的权限
在权限后有"+"时,外部的rwx- - - - - -就不能准确显示该文件的权限,必须getfacl查看
2.ACL列表的管理
setfacl -m u:username:rwx file ## 设定username对file拥有rwx权限
setfacl -m g:group:rwx file ## 设定group组成员对file拥有rwx权限
setfacl -x u:username file ## 从ACL列表中删除username
setfacl -b file ## 关闭file上的ACL列表
3.ACL默认权限
ACL默认权限只针对目录设定
“ACL权限只针对设定完成之后新建立的文件或目录生效,而已经存在的文件是不会继承默认权限”
setfacl -m d:u:student:rwx /mnt/westos