我最近安装了双启动的 Ubuntu 16.04,使用brij
安装时创建的用户名。我创建了一个新用户work
,并将其添加到所有组中,就像brij
ie一样
brij adm cdrom sudo dip plugdev lpadmin sambashare work
我有 3 个 NTFS 分区。现在,如果我ls -l
在/media
目录中运行命令,我将获得如下输出
total 8
drwxr-x---+ 2 root root 4096 Oct 12 21:55 brij
drwxr-x---+ 5 root root 4096 Oct 12 22:18 work
因此,从此输出中,我可以轻松得出结论,该文件归 grouproot
和 user所有root
。并且它还具有 chmod as 750
。
但问题是我可以访问这个目录(但我可以通过 brij 用户访问 brij 目录,通过工作用户访问工作目录)。如果用户brij
不属于 root 组,那么如何访问这个目录。另一件事是,如果brij
和work
属于同一个组,那么为什么work
不能访问/media/brij
目录和brij
不能访问/media/work
目录,而他们可以访问各自名称的目录?我遗漏了什么吗?
getfactl 的输出是
# file: brij
# owner: root
# group: root
user::rwx
user:brij:r-x
group::---
mask::r-x
other::---
# file: work
# owner: root
# group: root
user::rwx
user:work:r-x
group::---
mask::r-x
other::---
答案1
正如 Muru 所说,ls 输出中的 + 表示 ACL(访问控制列表)。当这些列表处于活动状态时,它们会取代正常的文件权限,这可能会很烦人,因此很多人因此不使用 acl。
如果我没记错的话,你似乎没有意识到自己在使用 ACL,而且除了正常的文件权限之外可能不需要它。如果这是正确的,你可以使用以下命令删除 ACL 权限:
setfacl --remove-all -R <file or directory name>
此命令将删除给定路径中任何内容的 ACL 权限。然后,文件/目录将恢复使用您可能希望使用的基本文件权限。
ps 关于你关于掩码的问题。当用户创建文件或目录时,它会被创建为具有一组默认权限。使用 umask,你可以指定这些默认值。你可以忽略它,直到它阻碍你,因为你现在知道你可以在需要时更改它。