请阅读以下步骤以了解我的问题,
执行以下命令
mkdir ~/src
mkdir ~/destination
sudo mount ~/src ~/destination --bind -o ro
src
文件夹已绑定安装到destination
文件夹。当我用 nautilus 查看该destination
文件夹时,它是只读的。但该命令为和文件夹ll
提供相同的文件权限。src
destination
这是什么原因呢?如何查看“destination”文件夹的实际权限? nautilus 如何将其显示为只读?
答案1
这里有两件事在起作用:
- 目录权限。
- 安装选项。
目录权限与挂载只读这一事实无关。因此,ls
仍然会列出分配给该文件夹的权限,而不考虑它是如何安装的。
同样的,如果我挂载一个带有 的文件夹noexec
,ls
会显示里面的可执行文件仍然是可执行的。使用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
例如,仅获取安装点和安装选项。