意外地,当移动到已安装的卷并键入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/
Run Code Online (Sandbox Code Playgroud)
我有这个有趣的部分: drwxr-x---+ 3
我理解部分drwxr-x---,但其他部分+ 3是什么意思?
Ps:我使用的是 Ubuntu 16.04 x86
hee*_*ayl 14
在+正常的权限位后表示特别许可是在文件/目录下的效果。特殊权限是 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
Run Code Online (Sandbox Code Playgroud)
检查man getfacl并man setfacl获得更多想法。
作为旁注,如果您看到 的.inplace +,那是针对 SELINUX 上下文的。
而3after+表示文件具有的硬链接数。硬链接是文件的名称(准确地说是文件的 inode),因此硬链接的数量表示文件具有的名称数量。
在您的情况下,条目是:
drwxr-x---+ 3 root root 4096 Sep 3 08:14 ../
Run Code Online (Sandbox Code Playgroud)
它用于当前目录的父目录 ( /media/username/DATA),因此..指向/media/username目录。
现在,在 Linux 中,每个目录至少有两个硬链接,一个用于.(当前目录,链接到自身),另一个是它在父目录中的条目(名称-索引节点映射),这是从 Unix 继承的。
对于/media/username,您的硬链接数为 3 ,这意味着/media/username有一个子目录(默认为 2 加 1 用于..子目录的条目)。如果有 2 个子目录,由于两个子目录都映射..回父目录,因此硬链接计数将为 4 。
检查man ls也。
+在权限字符串的末尾表示 ACL(访问控制列表)权限。您可以确切地看到它允许哪些权限以及哪些用户具有
getfacl ../
Run Code Online (Sandbox Code Playgroud)
更确切地说
getfacl /media/$USER
Run Code Online (Sandbox Code Playgroud)
就我而言:
$ 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::---
Run Code Online (Sandbox Code Playgroud)
这显示了所有者和组,然后是未命名的“用户”(所有者)组和世界(其他人)权限,以及用户 zanna 的额外条目。“掩码”限制了组和命名用户的有效权限。
ACL 是传统 Linux 权限系统的扩展,允许为单个用户或组设置权限,从而实现更精细的控制。您可以/media在这篇文章中阅读更多关于让 root 拥有这个挂载点和使用 ACL 权限的安全原因
该3是毫无关系的+。它表示文件的硬链接数。
| 归档时间: |
|
| 查看次数: |
1849 次 |
| 最近记录: |