ls -la 不显示 mount --bind 文件夹的正确权限

ls -la 不显示 mount --bind 文件夹的正确权限

请阅读以下步骤以了解我的问题,

执行以下命令

mkdir ~/src
mkdir ~/destination

sudo mount ~/src ~/destination --bind -o ro

src文件夹已绑定安装到destination文件夹。当我用 nautilus 查看该destination文件夹时,它是只读的。但该命令为和文件夹ll提供相同的文件权限。srcdestination

这是什么原因呢?如何查看“destination”文件夹的实际权限? nautilus 如何将其显示为只读?

答案1

这里有两件事在起作用:

  1. 目录权限。
  2. 安装选项。

目录权限与挂载只读这一事实无关。因此,ls仍然会列出分配给该文件夹的权限,而不考虑它是如何安装的。

同样的,如果我挂载一个带有 的文件夹noexecls会显示里面的可执行文件仍然是可执行的。使用noexec(或ro根据您的情况)安装文件夹不更改文件和目录的权限

不过,文件管理器似乎更聪明,并且知道该目录是以只读方式安装的。显然,它不仅仅查询权限位来找出这一点。


来自评论:“在我的用例中,我想使用 shell 命令读取安装权限”。

不带任何选项的命令mount将输出所有当前挂载的分区及其挂载选项:

$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=32841600k,nr_inodes=8210400,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=6572324k,mode=755)
(etc.)

安装选项列在括号中。

您还可以调查/etc/mtab当前安装的文件系统。该文件的格式与 相同/etc/fstab,因此您可以这样做

awk '{ print $2, $4 }' /etc/mtab

例如,仅获取安装点和安装选项。

相关内容