文件权限
一、权限的意义
- 系统最底层安全设定方法之一
保证文件可以被可用的用户做相应操作
二、文件权限的查看
可使用如下的命令行对文件或目录查询其属性
命令行 | 功能 |
---|---|
ls -l | 对目录内部文件或子目录属性 |
ls -ld | 对目录本身查看属性 |
ll | 等同于ls -l |
ll -d | 等同于ll -ld |
ll -R | 递归显示,即列出所有子目录下的文件 |
输入ll查看1.unit1文件的属性,出现如下格式将其可具体分为八部分,以|隔开。
-|rw-rw-r-- |1| kiosk | kiosk | 2740 |Mar 23 16:48| 1.unti1
1)第一部分
表示文件的类型
字符 | 含义 |
---|---|
- | 表示纯文本或空文件,即普通文件 |
l | 表示符号链接文件。软链接,类似于windows里的快捷方式 |
d | 表示目录 directory |
c | 表示字符设备 |
s | socket表示套接字符,与程序交互的“门” |
b | block表示块设备 如/dev/sda u盘 /dev/pts/l 设备 |
p | pipe表示管道文件 |
2)第二部分
-
表示文件对于U、G、O三者的权限
rw-|rw-|r-- 【u】【g】【o】 user group other
文件 | 目录 |
---|---|
r表示可读 | r表示可查看目录下有什么文件 |
w表示可写 | w表示是否可以删除或新建 |
x表示可执行 | x表示是否可进入目录 |
-
关于对于权限的修改:
1.mod u(g,o)+r(w,x) 例如chmod u+rwx file
2.使用r=4,w=2,x=1三者修改权限
使用命令chmod XXX file进行修改
例如chmod 777 file
3)第三部分
文件 | 目录 |
---|---|
表示文件的硬链接数 | 表示目录所含的子目录数 |
4)第四部分
-
表示该文件的所属用户
chown ##修改所属用户(仅限超户) chown user:(.)group ##同时修改用户及组
-R ##递归修改
如上两图对比,输入命令行chmod -R kiosk 1 将1及1内的2同时修改所有者为kiosk
5)第五部分
表示所属组
chgrp ##修改所属组
6)第六部分
文件 | 目录 |
---|---|
表示文件大小 | 子文件元数据(metadata)大小 |
*元数据:又称中介数据、中继数据,为描述数据的数据(data about data),
主要是描述数据属性(property)的信息,
用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。
元数据计算:一个文件属性可分为八部分,除文件名外,其他各部分各占一个字节,
文件名一个字符占一个字节。
7)第七部分
表示文件最后一次的修改时间
8)第八部分
表示文件名
三、系统预留权限
umask ##系统预留权限
输入命令行umask可查看当前umask值
通过umask xxx可临时修改当前umask值为xxx
永久修改umask值方法:
vim /etc/profile(bashrc) ##进入永久修改预留权限系统配置文件(在shell配置文件修改)
source /etc/profile(bashrc) ##使其生效
- 文件内形式如上
- 002表示对于系统用户的预留权限
- 022表示对于其他用户的预留权限
上图为修改后的umask值
-
profile与bashrc区别:
/etc/profile为系统配置文件 修改其后,在系统中创建的文件预留权限会根据修改值变化 /etc/bashrc为shell配置文件 修改其后,在shell中创建的文件预留权限会根据修改值变化
四、特殊权限
1)sticky ##粘滞位
作用:
只针对目录生效,当一个目录上有sticky权限时
在这个目录中的文件只能被文件的所有者删除
修改方式:
chmod o+t dir
chmod 1xxx dir
- 如上图,修改后,其文件权限最后位会变成t
- 在对已经有sticky权限的目录test内部文件进行删除时,提示Operation not permitted无法删除。
2)sgid ##强制位
作用:
对文件: 只针对于二进制可执行文件
当文件上有sgin时任何人执行此文件产生的进程都属于文件的组
对目录: 在该目录内的任何人建立的文件的所属组都会变为该目录所属的组
修改方式:
sgid chmod g+s die|file
chmod 2xxx dir|file
- 由上图可看到在该目录表示G权限的最后一位变成了s,代表已经成功的修改
- 在该目录下建立文件,文件所属组为root
- 上图可看到在该文件表示G权限的最后一位变成了s,代表已经成功的修改
- 当文件上有sgin时任何人执行此文件产生的进程都属于文件的组
3)suid ##冒险位
对文件: 只针对于二进制可执行文件
当文件上有suid时任何人执行此文件产生的进程都属于文件的所有人
修改方式
与sgid类似
chmod u+s(4xxx)file
acl权限列表
1.作用
- 让特定的用户对特定的文件拥有特定权限
2.acl列表查看
-rw-rw-r--+ 1 kiosk kiosk 0 Mar 31 16:17 file
|
”+“表示acl开启
输入命令行getfacl: ##查看acl的文件的权限
含义 | |
---|---|
file: home/kiosk/file | 文件名 |
owner: kiosk | 文件拥有者 |
group: kiosk | 文件拥有组 |
user::rw- | 文件拥有人的权限 |
user:kiosk:rw- | 指定用户的权限 |
group::rw- | 文件拥有组的权限 |
mask::rw- | 最大权力阀值 |
other::r– | 其他人的权限 |
设定acl权限方式:
setfacl -m u:kiosk:6 /home/kiosk/file ##设定用户kiosk对file拥有6的权限
getfacl /home/kiosk/file ##查看
setfacl -m g:kiosk:6 /home/kiosk/file ##设定组kiosk对file拥有6的权限
setfacl -x u:kiosk file ##删除用户kiosk对file拥有的权限
setfacl -x g:kiosk file ##删除组kiosk对file拥有的权限
setfacl -b file ##关闭acl
修改acl权限内mask方式
mask
setfacl -m m:--- file ##修改mask值
acl的默认权限设定
只针对目录设定
"acl默认权限只针对设定完成后新建立的文件或目录生效,已经存在的文件不会继承权限"
acl的默认权限设定方式:
setfacl -m d:u:kiosk:rwx /home/kiosk/file #开启
setfacl -k /home/kiosk/file #关闭
- 对该目录进行默认权限设定
- 在该目录建立文件file1,file1自动含有acl列表,而原来已有的file并没有变化。