【问题标题】:How to open a file in write mode which is in ROOT?如何以写入模式打开处于ROOT的文件?
【发布时间】:2013-05-10 15:33:34
【问题描述】:
我在根目录中有一个文件,我想在我的 QT 应用程序中打开它进行编辑。
通常我们使用 sudo filepath 以所有权限打开文件。
但我想在我的 c++ QT 应用程序中实现这一点。
任何形式的帮助都是可观的。
谢谢。
【问题讨论】:
-
在根目录下与文件权限无关。但是如果您需要特殊权限,则需要以具有正确权限的用户身份运行您的应用程序。也许看看setuid。
标签:
c++
qt
ubuntu
file-io
root
【解决方案1】:
执行以下操作。
- 获取userid,如果不为0(root的uid为0),执行如下操作
- 使用 gksu/kdesu 执行 argv[0]。
- 执行任务。
【解决方案2】:
您的程序需要以 root 权限执行,或者更具体地说,它需要以对这些文件具有访问权限的用户身份执行。
如果不是,则不可能访问这些文件,因为操作系统不允许您的程序这样做。 C++ 代码中没有可以解决此问题的更改。您需要使用sudo 执行您的程序。