【问题标题】:mount a block device without root permission programmatically以编程方式安装没有root权限的块设备
【发布时间】:2014-03-16 13:38:06
【问题描述】:

我想在我的 Linux 应用程序(用 C++ 编写)中安装块设备,尤其是光驱,例如 /dev/sr0(或 /dev/cdrom),以便从设备中读取每个文件。 我找到了一个 mount() 函数并编写了下一段代码:

mount("/dev/sr0", "/path/to/mount/point", "udf", MS_RDONLY, "");

只有当我有 root 权限时它才能很好地工作,这不是通常的情况。

由于桌面环境(例如,KDE)可以在未经许可的情况下挂载 USB/CD/DVD,我想也许有一个接口允许这样做,例如 D-Bus 协议,但我找不到。

是否无法以编程方式在没有 root 权限的情况下挂载设备? 或者,我错过了什么?

【问题讨论】:

    标签: c linux root mount


    【解决方案1】:

    没有root权限就不能以编程方式挂载设备吗?

    是的,这是不可能的。

    来自man 2 mount

    安装文件系统需要适当的权限(Linux:CAP_SYS_ADMIN 能力)。

    【讨论】:

    • 感谢您的建议,但我没有问如何在没有 root 权限的情况下调用 mount() 函数。我问的是如何以编程方式安装没有 root 权限的设备。 mount() 只是尝试失败的一个例子。就没有其他的挂载方式了吗?
    • @xylosper:不,没有
    • 实际上,在现代 Linux 系统中这是错误的,要么通过 fstab 中的“用户”选项进行特定的挂载,要么使用 gvfs-mount 之类的东西。 askubuntu.com/a/191093 对选项有很好的解释。
    猜你喜欢
    • 2017-04-12
    • 1970-01-01
    • 2011-01-29
    • 1970-01-01
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 2021-07-06
    相关资源
    最近更新 更多