我正在按照配置 Dovecot MDA 的说明进行操作,并且说明告诉我 /var/mail 应该具有以下权限:
drwxrwsr-x 2 root mail
当我运行 ls -ld /var/mail 时,权限是:
drwxrwsr-x 3 vmail vmail
因此,我按照说明使用 chown 将所有权更改为 root 和 mail,我认为这会起作用。权限现在是:
drwxrwsr-x 3 root mail
我不明白的是 2 和 3 之间有什么区别?我搜索了好久,似乎没有一个网站能给出答案。我知道你们中有些人是 Linux 专家,你能告诉我吗?就权限而言(2 和 3)会有所不同吗?我可以使用 chmod 来更改它吗?谢谢。
答案1
此数字是文件链接数(当引用文件时)或目录条目数(当引用目录时,包括 . 和 .. 条目)。如果此数字为 1,则表示这是唯一实例。如果此数字大于 1,则表示有其他目录条目链接到同一文件。
通过将 -i 选项传递给 ls 命令,您可以发现 inode 编号:
$ ls -i mail
199053 mail
(仅举例)
在这种情况下,邮件文件的 inode 编号为 199053。现在您有了 inode 编号,您可以实际搜索具有相同 inode 编号的文件。
$ sudo find / -inum 199053
然而一般来说你不必担心它,可以忽略这个数字。
答案2
权限后面的数字是硬链接数该文件或目录(更准确地说:该 inode)的权限与权限无关;请参阅info ls
。并且,它与文件数无关,但该目录内的目录会影响数量(请参阅第 3 点)。
让我解释一下,但请让你舒服地的概念硬链接首先。简而言之:你可以把它看作是非常一样文件(由其 inode 编号标识)。
例子解释:
foo
创建一个包含字符串“test”的文件;ls
显示一硬链接到该 inode 编号:$ echo test > foo $ ls -l foo -rw-r--r-- 1 user users 5 6. Aug 13:13 foo
现在创建一个到同一个 inode 的硬链接,名为
bar
$ ln foo bar $ ls -li foo bar 10862620 -rw-r--r-- 2 user users 5 6. Aug 13:13 bar 10862620 -rw-r--r-- 2 user users 5 6. Aug 13:13 foo
ls
识别两个文件硬链接计数为 2,并且(包括-i
选项), ls 显示两个名称都引用 inode10862620
。请注意,两个名称(foo 和 bar)都引用同一个文件:$ cat foo test $ echo overwritten > bar $ cat foo overwritten
您可能很容易对目录的硬链接数量感到困惑。因为每个目录都有一个指向自身的链接
.
和一个指向父目录的链接..
。因此,如果您有一个包含 5 个子目录的目录,则硬链接的数量等于 7:$ mkdir -p foo/{1..5} $ ls -ld foo drwxr-xr-x 7 user users 4096 6. Aug 13:21 foo
foo
位于一个目录中,您可以通过 来访问它foo
。编号 1。foo
有一个指向自身的链接。2 号- 每个子目录都有一个链接
foo
。..
编号 3 到 7
答案3
第二个字段指定该文件的硬链接数。
假设你有一个文件测试
ls -l test
-rw-r----- 1 nabil nabil 0 Jun 13 15:27 test
一旦你创建硬链接,你将获得此
ln test test_link
ls -l test
-rw-r----- 2 nabil nabil 0 Jun 13 15:27 test