Linux 里处处皆文件,了解文件和文件属性是学习 linux 的第一步。每个人都应该了解了解 linux 的文件权限, 这是 linux 比其他操作系统安全的原因所在!
打印目录详解
文件类型。linux 一切接文件!而文件有许多类型,常见的文件类型有 d、l、- 分别表示文件夹、连接和文件(普通文件、二进制文件、命令文件..)。还有些不常见的 c/b 表示字符/块文件,通常是一些设备的文件,如 cdrom、sda 等;s,表示 socket 指网络通信文件。
文件权限,文件权限一共分为三组,第一组表示属主的文件权限,第二组表示属组的权限,第三组表示其他用户权限,每组有 3 位,分别表示读权限 r、写权限 w、执行权限 x。除了常规的 rwx 权限外,还有两个特殊的权限 s、t 分别是特指执行权限和特殊共享权限,特殊执行权限可以加载属主和属组上(chmod u+s/g+s),设置该权限的命令所有用户可以执行或所有属组的用户可执行;t 是粘滞位(sticky bit)设置该属性文件加用来共享数据,其他用户能否创建文件取决于该文件夹的其他用用户是否有写 w
的权限。
属主、属组,谁创建的文件/文件夹,则该文件/文件夹的属主属组就标记为谁。属主对文件有第一管理权(当然,root 除外)。
文件属性详解
使用stat
命令查看文件。
文件属性的关系
一个文件占用一个 inode,一个文件占用多个 block 来存储文件数据,这些 block 信息都记录在 inode 里。
硬链接软链接详解
链接创建
注意 硬链接不能指向文件夹。而软链接文件夹/文件均可以。
ln <链接源> <链接目标> # 硬链接
ln -s <链接源> <链接目标> # 软链接
# 创建
[root@lqc /home]# ln -s /home/a.sh /home/a_soft.sh
[root@lqc /home]# ln /home/a.sh /home/a_hard.sh
硬软链接的区别
- 连接后的文件大小不一致,一般软链接文件较小
- 文件类型不同,硬链接为文件类型-,而软链接为链接类型 l
- 权限不一致,硬链接和源文件保持一致,软链接权限读写执行均有。
- 软链接 inode 不一致,硬链接一致
- 源文件删除后,硬链接文件依然有效,软链接无效
硬链接可以说的文件的另一个入口,因此删了源文件,硬链接依然有效。软链接的 inode 是执行源文件的 inode 的,相当于间接指向源文件数据,因此源文件删了,软链接也就失效了。
硬链接数
文件的多个入口, 当只有一个文件时连接数为 1, 存在一个硬链接硬链接数就会加 1。
硬软连接使用建议
- 可以使用硬链接实现备份数据功能,但不能防止修改
- 创建硬链接最好使用绝对路径