赞
踩
文件的属性被叫做文件的元数据(meta data),元数据是描述数据的数据。一种元数据用1个Byte来记录内容。
- rw-r--r-- . 1 root root 0 Apr 12 10:57 file [1] [2] [3] [4] [5] [6] [7] [8] [9] 一个属性占一个字节,共9个字节。没个字节代表的内容如下: [1]文件类型 - 普通文件 d 目录 l 软连接 #类似于windows的快捷方式 b 块设备 #指对其信息的存取以“块”为单位,如通常的光盘、硬磁盘、软磁盘、磁带等,块长取512字节或1024字节或4096字节 c 字符设备 s socket套接字 p 管道 | [2]用户权限 [3]系统的selinux开启 [4]对于文件:文件内容被系统记录的次数(硬链接个数);对于目录:目录中子目录的个数 [5]文件拥有者 [6]文件拥有组 [7]对于文件:文件内容大小;对于目录:目录中子文件的元数据大小 [8]文件内容被修改的时间 [9]文件名称
文件属性查看命令:
ls -l file
##查看文件属性
ls -ld dir
##查看目录属性
用户对文件的身份:
rw- r-- r--
u g o
u: user 文件的拥有者,ls -l 看到的第五列信息
g: group 文件的拥有组, ls -l 看到的第六列信息
o: other 既不是拥有者也不是拥有组成员的其他用户的通称
用户身份匹配:user>group>other
权限类型:
- 权限未开启
r 可读,对于文件:可以读取文件内容;对于目录:可以ls列出目录中的文件
w 可写,对于文件:可以更改文件内容;对于目录:可以在目录中新建或者删除文件
x 可执行,对于文件:可以用文件名称调用文件内记录的程序;对于目录:可以进入目录中
watch -n 1 "ls -l file1;echo -------;ls -l dir""
监控相应文件权限变化,用;
分隔不同的命令,用“”
将命令合起来,用---------当分割线。如下图:
用字符方式设定文件权限:
chmod <a|u|g|o> <+|-|=> <r|w|x> file
加-R的话目录下的文件属性也全部都跟着改变
用数字方式设定权限(布尔值表示):
三位二进制可以表示的最大范围为8进制数,1代表权限开放,0代表权限禁止。
第一位r | 第二位w | 第三位x | 二进制相加结果 |
---|---|---|---|
1 | 1 | 1 | rwx = 7 |
1 | 1 | 0 | rw- = 6 |
1 | 0 | 1 | r-x = 5 |
1 | 0 | 0 | r- - = 4 |
0 | 1 | 1 | -wx = 3 |
0 | 1 | 0 | -w- = 2 |
0 | 0 | 1 | - -x = 1 |
0 | 0 | 0 | - - - = 0 |
复制权限:
chmod --reference=/tmp /mnt/dir
##复制/tmp目录的权限到/mnt/dir上
chmod -R --reference=/tmp /mnt/dir
#复制/tmp目录的权限到/mnt/dir及目录中的子文件上, -R 代表第归操作
从安全角度讲系统共享的资源越少,开放的权力越小系统安全性越高,因此既要保证系统安全,又要系统创造价值,就把应该开放的权力默认开放,把不安全的权力默认保留
umask ##查看系统保留权力
文件默认权限 = 777-umask-111
目录默认权限 = 777-umask
vim /etc/bashrc
vim /etc/profile
source /etc/bashrc
、source /etc/profile
chown username file ##更改文件拥有者
chgrp groupname file ##更改文件拥有组
chown username:groupname file ##同时更改文件的拥有者和拥有组
chown -R username dir ##更改目录本身及目录中内容的拥有者
chgrp -R groupname dir ##更改目录本身及目录中内容的拥有组
在查看umask时我们会发现权限有四位,其实第一位就是特殊权限位。(如下图,1代表开启,0代表关闭)
suid | sgid | stickyid | 二进制相加结果 |
---|---|---|---|
1 | 1 | 1 | 7 |
1 | 1 | 0 | 6 |
1 | 0 | 1 | 5 |
1 | 0 | 0 | 4 |
0 | 1 | 1 | 3 |
0 | 1 | 0 | 2 |
0 | 0 | 1 | 1 |
0 | 0 | 0 | 0 |
chmod 4原属性 file
或者chmod u+s file
chmod 2源文件权限 dir
或者chmod g+s dir
chmod 1原始权限 dir
或者chmod o+t dir
功能: 在列表中可以设定特殊用户对于特殊文件有特殊权限。
##可以满足文件只有特殊的人才可以操作某些文件
##也可以对目录设置
文件设置/控制acl列表:
setfacl -m u:username:rw file ##设定username用户对file有读写权利
setfacl -m g:group:rw file ##设定group组对file有读写权利
setfacl -m u::rwx file ##设定所有用户都有读写操作权利
setfacl -m g::0 file ##设定所有组都有读写操作权利
setfacl -x u:username file ##删除列表中的lee用户权限
setfacl -b file ##关闭acl列表
acl列表开启标识
目录设置/控制acl列表:
setfacl -m u:lee:rwx /mnt/dir ##只对于/mnt/dir目录本身生效
setfacl -Rm u:lee:rwx /mnt/dir ##对于/mnt/dir目录和目录中已经存在的内容生效
##以上的命令只针对于存在的文件生效,新建文件是不会被设定的
setfacl -m d:u:lee:rwx /mnt/westosdir/ ##针对于/mnt/dir目录中新建文件生效
acl列表权限读取
getfacl file
上图中mask是指能够赋予指定用户权限的最大阀值。
会随着更改而改变,如下图:
但此时不能使用chmod来更改组的权限,也不能用ls-l来查看文件权限,因为列表开启后,ls -l显示的是mask值,chmod更改的也是mask值,并不是组的权限值,查看权限列表会发现权限值与实际权限值不一样,大于mask值的都不能用了。
恢复:setfacl -m m:权限 文件
acl 权限优先级:
拥有者 > 特殊指定用户 > 权限多的组 >权限少的组 > 其他
attr权限限制所有用户,可以防止root用户误删某些文件。
i ##不能作任何的更改,想使用
a ##能添加不能删除
lsattr dir|file
##查看attr权限
chattr +i|+a|-i|-a dir|file
##设定attr权限
设置了i权限后用vim打开想编辑保存会报错:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。