一、文件权限存在的意义
系统最底层安全设定方法之一
保证文件可以被可用的用户做相应操作
二、文件权限的查看
ls -l file | 查看文件权限 |
---|---|
ls -ld dir | 查看目录权限 |
ll file | 查看文件权限 |
ll -d file | 查看目录权限 |
例:查看文件权限。
查看目录权限:
三、文件权限的读取
【1】文件类型
- | 空文件或文本文件 |
---|---|
d | 目录 |
l | 软链接 |
s | socket套接字 |
b | block块设备 |
c | 字符设备 |
例:文件类型的查看。
注:
●软链接,其实就是新建立一个文件,这个文件是专门用来指向别的文件的( 那就和windows下的快捷方式的那个文件有很接近的意味)。软链接产生的是一个新的文件,但这个文件的作用就是专门指向某个文件的,删了这个软连接文件,那就等于不需要这个连接,和原来的存在的实体原文件没有任何关系,但删除原来的文件,则相应的软连接不可用(cat那个软链接文件,则提示“没有该文件或目录")
●硬链接是不会建立inode的,他只是在文件原来 的inode link count域再增加1而已,也因此硬链接是不可以跨越文件系统的。相反是软连接会重新建立一-个inode,当然inode的结构跟其他的不一样,他只是一个指明源文件的字符串信息。一旦删除源文件,那么软连接将变得毫无意义。而硬链接删除的时候,系统调用会检查inode link count的数值,如果他大于等于1,那么inode不会被回收。因此文件的内容不会被删除。
【2】文件的权限
1、[u] 文件拥有者对文件能做什么操作
2、[g]文件所有人能对用户做什么操作
3、[o]其他人能做什么操作
【3】表示目录中子目录个数
【4】文件所有人身份
【5】文件所有组身份
【6】内容字节数
【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
对文件:是否可以查看文件中的内容 ---->cat file
对目录:是否可以查看目录中有有什么子文件或者子目录----->ls dir
w
对文件:是否可以改变文件里面记录的字符
对目录:是否可以对目录中子目录或子文件的元数据进行更改
x
对文件:是否可以通过文件名称调用文件内记录的程序
对目录:是否可以进入目录
五、更改方式
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
也可通过二进制对应关系修改:
例:通过加减关系修改。
例:通过字符对应关系修改
例:通过二进制对应关系修改
六、umask
umask | 查看系统建立文件时默认保留的权值 |
---|---|
umask 077 | 临时设定系统预留权限为077 |
永久修改umask
vim /etc/profile
vim /etc/bashrc
重新读取文件,在当前系统生效。
文件权限计算:777-umask-111
目录权限计算:777-umask
* 权限相减为功能相减
例:umask 333
目录:777-333=444(r–r--r–)
文件:777(rwxrwxrwx)-333(-wx-wx-wx)-111(–x--x–x)=444(r–r--r–)
七、特殊权限
1、sticky ##粘贴位
作用:只针对目录生效,当一个目录上有sticky权限时,在这个目录中的文件只能被文件的所有者删除。
设定方式:
chmod o+t dir
chmod 1xxx dir
不设置权限时:
设置后:
2、sgid ##粘贴位
对文件:
只针对二进制可执行文件
当文件上有sgid时任何人执行此文件产生的进程都属于文件的组
对目录:
当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组
设定方式:
chmod g+s file|dir
chmod 2xxx file|dir
3、suid##冒位
只针对2进制可执行文件
当文件上有suid时任何人执行这个文件中记的程序产生的进程属于文件的所有人
设定方式:
chmod u+s file
chmod 4xxx file
八、acl权限列表
1、作用
让特定的用户对特定的文件拥有特定的权限
2、acl列表查看
getfacl file#查看file文件acl开启的文件权限
3、acl列表管理
例:设定用户拥有权限
4、mask值
在权限列表中mask标示能生效的权利值
当用chmod减小开启acl的文件权限时mask值会发生改变
恢复mask值:
setfacl -m m:rwx file
例:
恢复:
5、acl的默认权限设定
acl默认权限只针对目录设定
·*acl权限只针对设定完成之后新建立的文件或目录生效。而已经存在的文件是不会继承默认权限
d:表示在具备ACL权限的目录下创建目录时默认继承父目录的ACL权限。
默认权限:
设置acl权限:
权限继承分析:
删除默认设定:
注意:
Mask只对其他用户和组的权限有影响,对owner和other的权限是没有任何影响的。
通常我们把mask设置成rwx,以不阻止任何的单个ACL项。
需要注意的是,每次修改或添加某个用户或组的ACL项的时候,mask都会随之修改以使最新的修改能够真正生效。所以如果需要一个比较严格的mask的话,可能需要每次都重新设置一下mask。