如何授予应用程序 root 权限?

如何授予应用程序 root 权限?

我尝试向 Ubuntu 软件中心提交一个应用程序,但被拒绝了,因为你需要输入管理员密码才能使用它。我需要授予应用程序 root 权限才能运行,所以我使用了 sudo。但他们说我不能在我的应用程序中使用 sudo。我该如何授予它 root 权限?

答案1

您需要使用PolicyKitAPI 来请求提升权限。一般来说,您只应在绝对必要时才这样做,并且不要一直以提升的权限运行应用程序。

值得注意的是,如果您在启动时只需要 root 权限,那么您可以并且应该以 root 身份启动,然后降为非特权用户。如果您以面向用户的程序运行,这可能意味着运行该程序的用户;如果这意味着守护进程(如httpd或 )sshd,它可能意味着专门为您的程序在其下运行而创建的极其锁定的用户。

此外,还有分别用于 GNOME 和 KDE 的图形前端sudogksudo如果kdsudo有人推荐你使用这些,。请注意,这些程序已被弃用,取而代之的是PolicyKit,默认情况下不会安装,并且可能会导致您的应用程序被拒绝。

答案2

您的应用可能根本不被允许。根据 Ubuntu wiki,应用审查委员会将拒绝接触系统文件的应用程序:

您的应用程序似乎在操作过程中接触了系统文件,但是根据 extras.ubuntu.com 的安全策略,我们不允许应用程序这样做。对于这些应用程序,我们建议您按照https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages用于将您的软件包提交给 Debian 或 Ubuntu。

清理应用程序将会接触系统文件。

虽然本指南仅适用于开源应用程序(专有应用程序的政策尚未公布),我想类似的规则也适用于专有应用程序。

如果你的应用程序是开源的,你仍然可以通过以下方式将其放入软件中心:打包并提交到主 Ubuntu 或 Debian 存储库

答案3

您不需要 PolicyKit 或任何类似的东西。只需更改应用程序所有者和权限级别:

sudo chown root:root /path/to/app
sudo chmod 4755 /path/to/app

当然,您需要root权限才能执行这些命令。

相关内容