Table of Contents
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 file==
== ll file== 相当于ls -l file
==ll -d dir== 相当于ls -ld dir
==ls -lR dir==
总结:ls命令与ll命令作用相同
通过ls -lR dir命令可以第归查看dir目录下的所有子目录及子文件。
3.权限的读取
d|rw-rw-r--| 0|kiosk|kiosk|0|Jul 21 18:00|file
[1] [2] [3] [4] [5] [6] [7] [8]
[1] 文件的类型
- | 空文件或者文本 |
d | 目录 |
l | 软连接,相当于快捷方式 |
s | socket套结字(一个程序对外开放的门) |
b | block块设备 |
c | 字符设备 |
p | 管道 |
[2]文件的权限
rw-|rw-|r--
三位为一组,分别代表的是user,group,other(简写为u,g,o)
u:文件的拥有着对文件能做什么
g:文件所有组对文件能做什么
u:其他人对文件能做什么
[3]
文件:文件硬连接个数
目录:目录中子目录个数
[4]文件的所有人
[5]文件所有组
[6]
文件:文件的大小
目录:目录中子文件元数据(matedata元数据可以理解为文件案的属性)大小,文件的时间戳不算。
[7]
文件的内容被修改的时间
[8]文件的名称
4.如何改变文件所有人所有组
==chown==
chown username file|dir 更改文件拥有者
chown user-group file|dir 更改文件或目录的用户和用户组
chown -R user-group dir 第归更改目录的用户和用户组
watch监视(为了实验效果更加明显,我们使用watch监视)
1.更改文件拥有者
2.改变更改文件或目录的用户和用户组
3.第归更改了目录的用户
==chgrp==
chgrp group file|dir 改变文件或目录的用户组
chgrp -R group dir 第归改变目录的用户组
改变文件的用户组/第归改变为目录的用户组
5.如何改变权限
chmod 可以通过+(增加权限)或者-(去掉权限) file|di
5.1对权限的理解
r:
对文件:是否可以查看文件的内容
对目录:是否可以查看目录中有什么子文件或者子目录
w:
对文件:是否可以改变文件中记录的文字
不可编辑这个文件是只读的
可以看出结果我们可以对文件进行编辑了。
对目录:是否可以对目录中子目录或者子文件的元数据进行更改
x:
对文件:是否可以通过文件名调用文件内记录的程序
先建立一个文件,在文件里写入date命令:
sh 是命令解释器。在这里加上r是因为只有读了才能够执行。
对目录:是否可以进入目录
5.2更改方式
==chmod<u/g/o><+/-/=><r/w/x> file|dir 对文件或目录进行权限修改==
chmod g+x /westos/file1
chmod g-r /westos/linux
chmod ug-r /westos/file2
chmod u=r,g+x /westos/file
chmod -r /westos/file
chmod o=rw- /westos/file
5.3rwx分别对应的数字
r | 4 |
w | 2 |
x | 1 |
分别是2进制
7=rwx ,6=rw- ,5=r-x ,4=r-- ,3=-wx ,2=-w-,1=--x ,0=---
6.umask
umask 系统建立文件时默认保留的权利
6.1查看umask的值是多少
超级用户的umask
普通用户的umask
临时设定umask
umask XXX XXX是你要保留的权利
总结:
系统默认中,超级用户是777-022
普通用户是777-022-111
==永久更改umask==
1.vim /etc/profile ## 系统配置文件
59 if[$UID -gt 199]&&["id -gn"="id-un"];then
60 umask 022 ##普通用户的umask
61 else
62 umask 077 ##超级用户的umask
63 fi
2.
vim /etc/bashrc ##shell配置文件
70 if [$UID -gt 199]&&["id -gn"="id -un"];then
71 umask 002
72 else
73 umask 077
74 fi
3.
source /etc/profile ##调用让更改立即生效
source /etc/bashrc
7.特殊权限
1.
sticky ##粘制位
作用:==只针对目录有效== ,当一个目录上有sticky权限时,在这个目录中的文件只能被文件的所有者删除
设定方式:
chmod o+t dir
chmod 1xxx dir 两者功能相同
==实验如下==
song用户把yan创建的文件file2删除了,也就是说明别人可以删除不是自己建立的文件
为了解决这个问题我们进行以下操作
总结:当一个目录上有sticky权限时,在这个目录中的文件只能被文件的所有者删除
2.
sgid ##强制位
设定方式:
chmod g+s file|dir
chmod 2xxx file|dir 两者功能相同
作用:
1)对目录:当目录上有sgid权限时任何人再次目录中建立的文件都属于目录所有组
实验如下:
此时我们发现file仍旧为root用户组的,为了解决这个问题我们进行以下操作:
对于普通用户同样适用
总结:用了chmod g+s /westos 任何人在此目录上建立的文件都属于次目录的用户组。
2)对文件:只针对二进制执行文件,当文件上有sgid时任何人执行此文件产生的进程都属于文件的组
3.
suid ## 冒险位
设定方法:
chmod u+s file
chmod 4xxx file 两者功能相同
作用:==只针对二进制可执行文件==,当文件上有suid时任何人执行文件产生的进程都属于文件的所有人
8.acl权限列表
(1)作用:让特定的用户对特定的文件拥有特定的权限
(2)acl列表查看
-rw-rwxr--+ 1 root root 0 Jul 21 14:25 file ##权限中的“+”即为acl开启
getfacl file 查看acl开启的文件权限
file:file | 文件名称 |
owner:root | 文件拥有者 |
group:root | 文件拥有者 |
user::rw- | 文件拥有人的权限 |
user::kiosk:rwx | 指定用户(kiosk)的权限 |
group::r-- | 文件拥有组的权利 |
mask::rwx | 能赋予用户的最大权力值 |
other:r--: | 其他人的权限 |
(3)acl列表的管理
从acl列表增加
setfacl -m u:westos:rwx file 设定westos对file有rwx的权利
setfacl -m u:westos:0 file 设定westos对file有0的权利
从acl列表删除
setfacl –x u:harry file ##从acl列表中删除用户harry
setfacl –x g:shengchan file ##从acl列表中删除组shengchan
关闭acl列表
setfacl -b file ##关闭file上的acl列表
上面的‘+“消失不见了,说明关闭了acl列表
(4)mask的值
在权限列表中mask标志能生效的权力值,当用,mask值会发生改变
实验如下
用watch命令监视:
设定westos对/mnt/file拥有rw权限
如果要恢复mask的值,输入以下命令:chmod g+w /mnt/file
或者setfacl –m m:rw /mnt/file