当我研究命令手册页时挂载我读了以下内容:
pmount(“策略挂载”)是标准挂载程序的包装器,允许普通用户挂载可移动设备。
当我pmount /dev/sdc1
作为普通用户使用(没有 sudo)时,它创建了一个名为folder的文件夹/media/sdc1
,而系统/media
文件夹的权限是drwxr-xr-x
并且它的所有者是root
.这意味着普通用户(当前是我)无法在/media
文件夹中创建文件和文件夹。
这是否与Linux中的权限和所有权规则相矛盾?
另一个问题是,虽然mount
需要超级用户权限,并且在内部pmount
使用mount
,但如何pmount
在没有超级用户权限的情况下使用sudo
?
答案1
/usr/bin/pmount
是一个设定值二进制。运行 setuid 可执行文件时,uid 或 gid 将更改为可执行文件的所有者。执行 pmount 时,该进程将拥有 root 权限,因此可以创建 root 拥有的目录并挂载文件系统。
相同的 setuid 机制也适用于 sudo。