安装——不规范化?

安装——不规范化?

man两个页面都没有info提供更多关于此的信息:

mount --no-canonicalize不要规范化路径。 mount 命令规范化所有路径(来自命令行或 fstab)并将规范化路径存储到 /etc/mtab 文件。对于已经规范化的绝对​​路径,此选项可以与 -f 标志一起使用。

结合起来fuse,我发现Linux Kernel 2.8.5中引入了它来防止…本地用户绕过预期的访问限制并通过符号链接攻击卸载任意目录[→来源]。

问题:mount --no-canonicalize实际用途是什么?这只是一个安全问题还是这个选项还有什么用处?

由于我在这里的设置非常有限,因此我只能在有或没有此选项的情况下安装 USB 闪存驱动器,并且在最细微的细节上/etc/mtab和使用时都具有完全相同的输出。mount --show-labels这可能与其他文件系统不同。


更新1:umount也提供了这个选项,其中maninfopage 都告诉一个

--no-canonicalize不要规范化路径。有关此选项的更多详细信息,请参阅 mount(8) 手册页

答案1

规范化是指设备路径。所以你说:

我只能使用或不使用此选项来安装 USB 闪存驱动器,在 /etc/mtab 中具有完全相同的输出

但你尝试过这个吗?

cd /dev
mount --no-canonicalize sdb1 /mnt/usb

中的列表mtab将以“sdb1”开头。如果没有--no-canonicalize,则为 /dev/sdb1。还:

ln -s /dev/sdb1 ~/mydev
cd ~
mount --no-canonicalize mydev /mnt/usb

mtab 列表将针对“mydev”,而如果没有 --no-canonicalize,它将针对 /dev/sdb1。

不确定这与通过对非特权挂载的符号链接攻击进行卸载有什么关系,但它确实允许隐藏可公开访问的/etc/mtab.如果您没有规范(或任何)路径,则很难对某些内容进行符号链接。

相关内容