既然之前我们也说过了,Linux 中的文件对于不同的用户有不同的权限,那么我们就来看看 Linux 中的文件都有什么样的属性。
以我电脑中的 hoom 目录为例,执行以下指令:
ls -al
上边的指令能够列出当前路径中所有的文件信息。显示为:
total 180
drwxr-xr-x 25 wood wood 4096 2月 12 20:31 .
drwxr-xr-x 4 root root 4096 2月 8 20:59 ..
-rw------- 1 wood wood 3341 2月 12 19:45 .bash_history
-rw-r--r-- 1 wood wood 220 2月 8 20:59 .bash_logout
-rw-r--r-- 1 wood wood 3857 2月 9 18:23 .bashrc
-rw-r--r-- 1 root root 3771 2月 9 18:23 .bashrc-anaconda3.bak
drwx------ 26 wood wood 4096 2月 11 16:03 .cache
drwxrwxr-x 3 wood wood 4096 2月 12 21:58 code
drwx------ 3 wood wood 4096 2月 8 21:33 .compiz
drwxrwxr-x 3 wood wood 4096 2月 9 20:49 .conda
drwx------ 22 wood wood 4096 2月 11 14:53 .config
drwx------ 3 root root 4096 2月 8 21:18 .dbus
drwxr-xr-x 2 wood wood 4096 2月 9 05:06 Desktop
-rw-r--r-- 1 wood wood 25 2月 9 05:06 .dmrc
drwxr-xr-x 2 wood wood 4096 2月 9 05:06 Documents
drwxr-xr-x 3 wood wood 4096 2月 12 21:19 Downloads
-rw-r--r-- 1 wood wood 8980 2月 8 20:59 examples.desktop
drwx------ 2 wood wood 4096 2月 8 21:09 .gconf
drwx------ 3 wood wood 4096 2月 13 2020 .gnupg
-rw------- 1 wood wood 2170 2月 13 2020 .ICEauthority
drwxrwxr-x 4 wood wood 4096 2月 9 20:43 .java
drwx------ 3 wood wood 4096 2月 9 05:06 .local
drwx------ 5 wood wood 4096 2月 9 05:07 .mozilla
drwxr-xr-x 2 wood wood 20480 2月 9 22:59 Music
drwxr-xr-x 2 wood wood 4096 2月 11 15:03 Pictures
drwx------ 3 wood wood 4096 2月 8 21:58 .pki
-rw-r--r-- 1 wood wood 655 2月 8 20:59 .profile
drwxr-xr-x 2 wood wood 4096 2月 9 05:06 Public
drwxrwxr-x 4 wood wood 4096 2月 9 20:43 .PyCharmCE2018.3
-rw------- 1 wood wood 20 2月 9 20:40 .python_history
drwxrwxr-x 3 wood wood 4096 2月 8 23:46 R
-rw-rw-r-- 1 wood wood 0 2月 9 22:45 .Rhistory
drwxrwxr-x 14 wood wood 4096 2月 9 22:45 .rstudio-desktop
-rw-r--r-- 1 wood wood 0 2月 8 21:18 .sudo_as_admin_successful
drwxr-xr-x 2 wood wood 4096 2月 9 05:06 Templates
drwxr-xr-x 3 wood wood 4096 2月 9 08:20 Videos
-rw------- 1 wood wood 915 2月 12 20:31 .viminfo
-rw------- 1 wood wood 49 2月 13 2020 .Xauthority
-rw-rw-r-- 1 wood wood 131 2月 8 21:37 .xinputrc
-rw------- 1 wood wood 82 2月 13 2020 .xsession-errors
-rw------- 1 wood wood 1221 2月 11 18:30 .xsession-errors.old
从上边的结果我们可以看出,当前目录下的所有文件都按行列出来了,其中每一行代表一个文件,每个文件的属性信息又按列给出了,每一列的信息分别表示为:
- 第一栏代表该文件的类型与权限
- 第一个字符代表文件的类型,如目录,文件和链接文件等
- d 代表目录
- - 代表文件
- l 代表链接文件
- b 代表设备文件中的可供存储的周边设备(能够按块随机读写的设备)
- c 代表设备文件中的穿行端口设备(键盘,鼠标)
- 剩下字符三个一组,代表文件权限。均为 rwx 的组合,r 代表可读(read),w 代表可写(write),x 代表可执行(execute),没有缺省为 -
- 第一组代表文件拥有者的权限
- 第二组代表该用户组的权限
- 第三组代表其他人的权限
- 第二栏表示有多少文件名链接到此节点(inode)
每个文件都会将它的权限和属性记录到文件系统的 inode 中,而 Linux 使用的目录树则是使用文件名来记录的,因此每个文件名都被链接到一个 inode。该属性记录的就是有多少不同的文件名被链接到相同的一个 inode。
- 第三栏表示这个文件的拥有者帐号
- 第四栏表示这个文件所属的用户组
- 第五栏表示该文件的容量大小,默认为字节(Bytes)
- 第六栏表示文件的创建日期或最近的修改日期
- 第七栏表示文件名
从上边的结果可以看到几个特殊的文件,其中第一行的是(.),表示为当前目录,第二行为(..),表示上级目录,还有以(.)开头的文件,表示隐藏文件,剩下的都是普通文件了。
题外话
虽然我们可以针对不同的用户设置不同的权限以限制某些不明用户对文件的操作,但是这一切对于 root 用户来说是无效的,root 用户可以无视任何文件权限对文件进行操作。