‘ls -al’的结果中的“+ 3”是什么意思?

‘ls -al’的结果中的“+ 3”是什么意思?

意外地,当移动到已安装的卷并输入ll(别名ls -laF)时

:/media/username/DATA$ ll
total 153
drwxrwxrwx  1 username username  8192 Sep  1 20:32 ./
drwxr-x---+ 3 root     root      4096 Sep  3 08:14 ../
drwxrwxrwx  1 username username 12288 Jul 26 22:29 documents/
drwxrwxrwx  1 username username 16384 Sep  2 02:01 downloads/

我有这个有趣的部分:drwxr-x---+ 3

我理解这部分drwxr-x---,但是其他部分是什么+ 3意思?

附言:我使用的是 Ubuntu 16.04 x86

答案1

正常权限位后面+的表示文件/目录具有特殊权限。特殊权限是 POSIX ACL(访问控制列表)。

您可以使用 设置 ACL 规则setfacl,并通过 查看已设置的规则getfacl

例子:

% ls -l foo.sh
-rwxrwxr-x 1 foobar foobar 206 Aug 28 02:08 foo.sh

% setfacl -m u:spamegg:x foo.sh

% ls -l foo.sh                
-rwxrwxr-x+ 1 foobar foobar 206 Aug 28 02:08 foo.sh

% getfacl foo.sh
# file: foo.sh
# owner: foobar
# group: foobar
user::rwx
user:spamegg:--x
group::rwx
mask::rwx
other::r-x

检查man getfaclman setfacl获得更多想法。

附注:如果您看到.的替代+,则它适用于 SELINUX 上下文。


后面3+表示文件所含硬链接数。硬链接是文件的名称(准确地说是文件的 inode),因此硬链接数表示文件所含名称的数量。

就您而言,条目是:

drwxr-x---+ 3 root     root      4096 Sep  3 08:14 ../

它是当前目录的父目录(/media/username/DATA),因此..指向/media/username目录。

现在,在 Linux 中,每个目录至少有两个硬链接,一个用于.(当前目录,链接到自身),另一个是其在父目录中的条目(名称-inode 映射),这是从 Unix 继承而来的。

的硬链接数为 3 /media/username,这意味着/media/username有一个子目录(默认为 2 加上..子目录条目的 1)。如果有 2 个子目录,则硬链接数将为 4,因为两个子目录都映射..回父目录。


也檢查man ls

答案2

+权限字符串末尾的表示 ACL(访问控制列表) 权限。您可以确切地看到它允许哪些权限以及哪些用户具有

getfacl ../

更确切地说

getfacl /media/$USER

就我而言:

$ getfacl /media/zanna
getfacl: Removing leading '/' from absolute path names
# file: media/zanna
# owner: root
# group: root
user::rwx
user:zanna:r-x
group::---
mask::r-x
other::---

这显示了所有者和组,然后是未命名的“用户”(所有者)组和世界(其他人)权限,并为用户 zanna 添加了一个额外条目。“掩码”限制了组和指定用户的有效权限。

ACL 是传统 Linux 权限系统的扩展,允许为单个用户或组设置权限,从而实现更精细的控制。您可以在中阅读更多有关让 root 拥有此挂载点的安全原因以及 ACL 权限的使用的/media信息这个帖子

3与 无关+。它表示硬链接到文件。

相关内容