在Linux系统中一切都是文件!
一、Linux文件类型
Linux存在很多的文件类型:(可以通过ls -l进行查看文件的类型)
- |
普通文件 |
d |
目录文件 |
l |
链接文件 |
b |
块设备文件 |
c |
字符设备文件 |
p |
管道文件 |
二、Linux文件目录结构
目录名称 |
应放置文件的内容 |
/boot |
开机所需文件—内核、开机菜单以及所需配置文件等 |
/dev |
以文件形式存放任何设备与接口 |
/etc |
配置文件 |
/home |
用户主目录 |
/bin |
存放单用户模式下还可以操作的命令 |
/lib |
开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数 |
/sbin |
开机过程中需要的命令 |
/media |
用于挂载设备文件的目录 |
/opt |
放置第三方的软件 |
/root |
系统管理员的家目录 |
/srv |
一些网络服务的数据文件目录 |
/tmp |
任何人均可使用的"共享"临时目录 |
/proc |
虚拟文件系统,例如系统内核、进程、外部设备及网络状态等 |
/usr/local |
用户自行安装的软件 |
/usr/sbin |
Linux系统开机时不会使用到的软件/命令/脚本 |
/usr/share |
帮助与说明文件,也可放置共享文件 |
/var |
主要存放经常变化的文件,如日志 |
/lost+found |
当文件系统发生错误时,将一些丢失的文件片段存放在这里 |
三、文件权限
1、文件基础权限简介
Linux系统中的每个文件都有所属的所有者和所有组,并对文件根据r(读),w(写),x(执行)规定所有者、所有组及其他人的权限。
对一般文件权限的解释:
可读 |
能够读取文件的实际内容 |
可写 |
能够编辑、新增、修改、删除文件的实际内容 |
可执行 |
能够运行一个脚本程序 |
对目录文件权限的解释:
可读 |
能够读取目录内的文件列表 |
可写 |
能够在目录内新增、删除、重命名文件 |
可执行 |
表示能够进入该目录 |
备注:对于一个文件夹使其拥有可执行权限是对其最基本的尊重。
2、文件基础权限与数字关系
四、修改文件权限
1、chmod命令
作用:用来设置文件或目录的权限
格式:chmod <参数> 【+-=】权限 文件名
参数:-R 递归修改
操作符:
“+”表示添加某个权限。
“-”表示取消某个权限。
“=”表示赋予给定的权限,同时取消文档以前的所有权限。
2、chown命令
作用:设置文件或目录的所有者和所有组
格式:chown <参数> 所有者:所有组 文件名
参数:-R 递归修改
五、文件特殊权限
1、SUID
解释:SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。
格式:chmod u+s 文件名
备注:当为文件添加SUID权限时若所有者权限已经具有执行权限则会将x改为s;若没有执行权限则会在执行权限的位置添加一个S。
2、SGID
解释:①让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置);
②在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。
格式:chmod g+s 文件名
备注:当为文件添加SGID时所有组已经具有执行权限则会将x改为s;若没有执行权限则会在执行权限的位置添加一个S。
3、SBIT粘滞位
解释:某个目录设置了SBIT粘滞位权限后,那么该目录中的文件就只能被其所有者执行删除操作了
格式:chmod o+t 文件名
备注:当为文件添加SBID时其他人已经具有执行权限则会将x改为s;若没有执行权限则会在执行权限的位置添加一个S。
六、文件隐藏属性
1、chattr命令
作用:用于设置文件的隐藏权限
格式:chattr [参数] 文件
参数:
参数 |
作用 |
i |
无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件 |
a |
仅允许补充(追加)内容,无法覆盖/删除内容(Append Only) |
S |
文件内容在变更后立即同步到硬盘(sync) |
s |
彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域) |
A |
不再修改这个文件或目录的最后访问时间(atime) |
b |
不再修改文件或目录的存取时间 |
D |
检查压缩文件中的错误 |
d |
使用dump命令备份时忽略本文件/目录 |
c |
默认将文件或目录进行压缩 |
u |
当删除该文件后依然保留其在硬盘中的数据,方便日后恢复 |
t |
让文件系统支持尾部合并(tail-merging) |
x |
可以直接访问压缩文件中的内容 |
备注:若想添加隐藏功能则在其后 +参数,若想去掉隐藏功能在其后-参数。
2、lsattr命令
作用:显示文件的隐藏权限
格式:lsattr [参数] 文件
七、文件访问控制列表
对某个指定的用户进行单独的权限控制,就需要用到文件的访问控制列表(ACL)了。针对某个目录设置了ACL,则目录中的文件会继承其ACL;若针对文件设置了ACL,则文件不再继承其所在目录的ACL。
1、setfacl命令
作用:用于管理文件的ACL规则
格式:setfacl [参数] u:用户名:权限 文针名称
-R |
对目录文件递归修改 |
-m |
普通文件 |
-b |
删除ACL |
2、getfacl命令
作用:显示文件上设置的ACL信息
格式:getfacl 文件名称