1.文件权限存在的意义
文件权限的存在是系统最底层安全设定方法之一,保证文件可以被可用的用户进行相应的操作。
2.文件权限的查看
ls -l file 查看文件信息
ls -ld dir 查看目录本身信息
ll file ##相当于ls -l file
ll -d dir ##相当于ls -ld dir
ls -LR dir ##递归显示子目录
ls -l file 查看文件信息
ls -ld dir 查看目录本身信息
ls -LR dir ##递归显示子目录
3.权限的读取
[1]文件的类型
- | 空文件,或者文本 |
d | 目录 |
l | 软链接 |
s | socket套接字 |
b | block块设备 |
c | 字符设备 |
[2]文件的权限
1.[u]文件拥有者对文件能做的操作
2.[g]文件所有组对文件能做什么操作
3.[o]其他人对文件能做的操作
[3]
对文件:文件内容被记录的次数
对目录:目录中子目录的个数
[4]
文件所以人
[5]
文件的所有组
[6]:
对文件:文件大小
对目录:目录中子文件元数据大小,文件夹的时间戳不算
[7]
文件内容被修改的时间
[8]
文件的名称
4.如何改变文件的所有人和所有组
chown|chgrp
chown username file|dir ##更改文件的拥有者
chown user:group file|dir ##更改文件或者目录的用户和用户组
chown -R user:group dir ##递归更改目录的用户和用户组
示例:
chgrp group file|dir ##改变文件或者目录的用户组
chgrp -R group dir ##递归改变目录的用户组
递归更改目录的组用户
5.如何改变文件的权限
1)对权限的理解
r
对文件:是否可以查看文件中的内容 ---->cat file
对目录:是否可以查看目录中有什么子文件或者子目录 ------>ls dir
w
对文件:是否可以改变文件里面记录的字符
对目录:是否可以对目录中子目录或子文件的元数据进行更改
x
对文件:是否可以通过文件名称调用文件内记录的内容
对目录:是否可以进入目录i
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
示例:
6.umask
umask 系统建立文件是默认保留的权力
umask 077 ##临时设定系统保留权限为077
永久更改umask
vim /etc/profile
vim /etc/bashrc ##shell配置文件
让更改立即生效
7.特殊权限
1)sticky ##粘制位
作用:
只针对目录生效,当一个目录上有sticky权限时,在这个目录中的文件之能被文件所有者删除
设定方式:
chmod o+t dir
chmod 1xxx dir
示例:用户tom和leo分别在/pub中创建两个文件,在没有执行粘制位操作时leo可以删除tom创建的文件,执行粘制位操作后,只能各自删除各自创建的文件
2)sgid ##强制位
设定方式:
chmod g+s file|dir
chmod 2xxx file|dir
作用:
对文件: 只针对二进制可执行的文件,当文件上有sgid时任何人执行此文件所产生的进程都属于文件的组
对进程的监控 ps -ax -o user,group,comm | grep watch
过程:1.ls -l /bin/watch
2./bin/watch -n 1 date 运行一个进程
3.运行ps -ax -o user,group,comm | grep watch对过程进行监控
4.chgrp tom /bin/watch 改变用户组为tom
5.运行ps -ax -o user,group,comm | grep watch,发现用户组并未改变,还是root
6.chmod 2777 /bin/watch 赋予文件强制位权限
7./bin/watch -n 1 date
8.ps -ax -o user,group,comm | grep watch 用户组变成了tom
对目录: 当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所在组
示例:
用watch -n 1 'ls -ld /westos;ls -l /westos'进行监控
改变用户组之后,/westos的用户组变为tom
但新建立的文件的用户组仍为root,针对这一问题执行以下操作
再创建file1时,用户组成为了tom
3)suid ##冒险位
设定方式:
chmod u+s file
chmod 4xxx file
作用:只针对二进制可执行文件,当文件上有suid时任何人执行这个文件中程序产生的进程都属于文件的所有人
将用户改为leo,发现拥有者仍为root,执行以下指令解决这个问题
再次运行用户改为leo
将用户切换为tom,运行watch,发现拥有者仍为leo
8.acl权限列表
1)作用
让特定的用户对特定的文件拥有特定的权限
2)acl列表查看
getfcal file ##查看acl开启的文件的权限
#file :file ## 文件名称
#owner:root ##文件拥有者
#group :root ##文件拥有组
user::rw- ##文件拥有人的权限
user:kisok:rwx ##指定用户的权限
group::r-- ##文件拥有组的权力
mask::rwx ##能赋予用户的最大权力伐值
other::r-- ##其他人的权限
3)acl列表的管理
getfacl file
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列表
从列表中删除:
关闭acl列表
‘+’号消失不见,acl列表关闭
4)mask值
在权限列表中mask标示能生效的权力值
当用chmod减小开启acl的文件权限时mask值会发生改变
chmod g-w westos
如果要恢复mask值
setfacl -m m:rw westos
示例:
使用watch命令监视:
修改之前:
修改之后:mask值也随之变化
恢复mask值:
5)acl的默认的权限设定
acl默认权限只针对目录设定
“acl权限只针对设定完成之后新建立的文件或目录生效,而已经存在的文件是不会继承默认权限“
setfacl -m d:u:student:rwx /mnt/westos
setfacl -k /mnt/westos
设定默认权限:
对于已经存在的文件:
结果表示没有继承权限。
对于新建立的文件:
结果表示继承了权限。
补充:权限大小的比较
userperm > acluser > aclgroup > groupperm > otherperm