一、文件的属性
如上图,ls列出文件的基本属性,共有八部分,其中
1.-代表文件类型(具体-代表普通文件,如果是d代表目录;c代表字符设备;s代表套接字;p代表管道;b代表块设备;1代表链接)
2.rw-r--r--代表了文件的读写执行权限。红线隔开三个一组 |rw-|r--|r--|第一组表示所有人的权限,第二组表示所有组的权限;第三组表示其他人的权限 。r表示都的权限(查看);w表示写的权限(添加删除);x表示执行的权限(进入目录)。
3.“1”对文件:文件内容被系统记录的次数。
对目录:目录中文件属性的字节数。
4.root表示文件的所有人(文件是谁的)
5.root表示文件所有组(文件是哪个组的)
6.“0”表示文件内容大小
7.Jan 3 02:46表示文件最后一次被修改的时间
8.file表示文件的名字
监控文件属性的命令:watch -n 1 ls -lR /mnt 如下图
二、文件所有人所有组的管理
1.更改文件所有人:如下图,原所有人为root,更改命令后变为student
2.更改文件所有人和所有组:
3。更改目录和目录本身所有人:-R表示递归更改
.
4.更改目录及目录一下的所有组:chown变为chgrp
.
三、文件的读写执行权限更改
1.上面提到文件的读(r)写(w)执行(x)分为三组,第一组表示所有人用u表示;第二组表示所有组用g表示;第三组表示其他人用o表示
2.chmod命令修改其权限
(1)字符方式修改,如下图,删除所有人的执行权利
(2)给所有组添加写权限
(3):删除所有人的读权限并删除所有组和其他人的执行权限
(4):数字方式修改。在linux系统中r+4,w=2,x=1,如下图为打开了所有权限命令
四、系统默认权限设定
1.查看方式:umask命令,如下图,可以看出系统默认权限为022
(2)修改方式
1).暂时修改方式,只在当前shell中有用,umask直接加想设置的权限
2).永久修改,在vim/etc/bashrc和vim/etc/profile下找到umask的信息,将其直接修改两者必须修改一致,如下图:
如上图,我都修改为077,修改完毕后需要输入source /etc/bashrc和source /etc/profile才能成功,如下图
现在直接创建文件,他的读写执行属性已经生效,如下图:(所有人部分为6因为内核会拿走执行权利)
五、特殊权限
1.suid冒险位:只针对二进制可执行文件,文件内记录的程序产生的进程的所有人为文件所有人和进程发起人的身份无关。所有人执行位变为S
设定方式:1)chmod u+s设定,如下图
2)chmod 4xxx设定,如下图
2.sgid强制位,对文件:只针对二进制可执行文件,任何人运行二进制文件程序时,程序产生的进程的所有组都是文件的所有组和程序发起人组的身份无关。对目录:
当目录有
sgid
权限后,目录中新建的所有文件的所有组
都自动归属到目录的所有组之中和文件建立者所在的组无关。所有组执行位变为S
设定方式:1)chmod g+s设定,如下图
2)chmod 2xxx设定,如下图
示例如下:在student用户下在目录中touch文件他的所有人 和所有组都为student,此时在root下发起sgid强制命令,再切换到student用户下建立文件发现他的所有组为root,即验证,如下图
3.
sticky ##
粘制位:
只针对与目录
,
当一个目录上有
t
权限,那么目录中的文件只能被文件的拥有者删除。其他人的执行位显示t
设定方式:1)chmod o+t设定,如下图:
2)chmod 1xxx设定,如下图:
示例如下:root用户下执行此命令,切换到student用户下,其没有权限删除root建立的文件,如下图
六、文件的访问权限控制
可以直接让某个用户对某个文件有你需要的权限
1.例如:
setfacl -m u:student:rwx /mnt/file(让student用户对/mnt/file的有rwx的权限);getfacl /mnt/file查看权限列表,操作执行如下图:
2.列出文件属性时,如果一个文件在读写执行部分后有加号,即代表其有特殊权限,可getfacl查看,如果要关闭这个权限,只需要setfacl -b 文件名即可,如下图: