![‘ls -al’的结果中的“+ 3”是什么意思?](https://linux22.com/image/1140084/%E2%80%98ls%20-al%E2%80%99%E7%9A%84%E7%BB%93%E6%9E%9C%E4%B8%AD%E7%9A%84%E2%80%9C%2B%203%E2%80%9D%E6%98%AF%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D%EF%BC%9F.png)
意外地,当移动到已安装的卷并输入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 getfacl
并man 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
与 无关+
。它表示硬链接到文件。