1. 基础
1.1 权限
1 | [root@www /]# ls -l |
文件的第一个属性用 d 表示。d 在 Linux 中代表该文件是一个目录文件。
- 普通文件(-):用于存储信息和数据, Linux 用户可以根据访问权限对普通文件进行查看、更改和删除。比如:图片、声音、PDF、text、视频、源代码等等。
- 目录文件(d,directory file):目录也是文件的一种,用于表示和管理系统中的文件,目录文件中包含一些文件名和子目录名。打开目录事实上就是打开目录文件。
- 符号链接文件(l,symbolic link):保留了指向文件的地址而不是文件本身。
- 字符设备(c,char):用来访问字符设备比如键盘。
- 设备文件(b,block):用来访问块设备比如硬盘、软盘。
- 管道文件(p,pipe) : 一种特殊类型的文件,用于进程之间的通信。
- **套接字文件(s,socket)**:用于进程间的网络通信,也可以用于本机之间的非网络通信。

前面的 0 是什么意思
- setuid == 4
- setgid == 2
- sticky == 1
- no changes == 0
setuid 是让普通用户可以用 root 的角色运行只有 root 才能运行的程序或命令。
setgid 只对目录有效,目录被设置该权限后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。
sticky bit 可以理解为防删除位;一个文件是否可以被某用户删除,主要取决于该文件所属的组是否对该用户具有写权限。如果没有写权限,则这个目录下的所有文件都不能被删除,同时也不能添加新的文件。 如果希望用户能够添加文件但同时不能删除文件,则可以对文件使用 sticky bit 权限; 设置该权限后, 就算用户对目录具有写权限,也不能删除该文件。
1.2 软硬链接
硬链接:新建的文件是已经存在的文件的一个别名,当原文件删除时,新建的文件仍然可以使用。【修改是同时修改】
软链接:也称为符号链接,新建的文件以“路径”的形式来表示另一个文件,和Windows的快捷方式十分相似,新建的软链接可以指向不存在的文件。
- 硬链接和原来的文件没有什么区别,而且共享一个 inode 号(文件在文件系统上的唯一标识);而软链接不共享 inode,也可以说是个特殊的 inode,所以和原来的 inode 有区别。
- 若原文件删除了,则该软连接则不可以访问,而硬连接则是可以的。