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

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

您需要使用PolicyKit API来请求升级权限。 通常,只有在绝对必要时才应该这样做,而不是始终以升级的权限运行应用程序。

值得注意的是,如果您在启动时只需要root权限,那么您可以并且应该以root用户身份启动,然后再转到非特权用户。 如果您作为面向用户的程序运行,这可能意味着运行该程序的用户; 如果这意味着守护进程,如httpdsshd ,它可能意味着一个令人难以置信的锁定用户,专门为您的程序运行而创建。

另外,对于GNOME和KDE,分别有sudo图形前端,分别称为gksudokdsudo 。 如果有人建议您使用这些, 请不要 。 请注意,这些程序已弃用而不支持PolicyKit ,默认情况下不会安装,并且可能会拒绝您的应用程序。

您的应用可能根本不被允许。 根据Ubuntu wiki ,App Review Board将拒绝触摸系统文件的应用程序:

您的应用程序似乎触摸系统文件作为其操作的一部分,但我们不允许应用程序作为extras.ubuntu.com的安全策略的一部分执行此操作。 对于这些应用程序,我们建议您按照https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages上的步骤将您的软件包提交到​​Debian或Ubuntu。

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

虽然本指南仅适用于开源应用程序( 专有应用程序的政策未发布 ),但我认为类似的规则适用于专有应用程序。

如果您的应用程序是开源的,您仍然可以将其打包并将其提交到主Ubuntu或Debian存储库,从而进入软件中心。

您不需要PolicyKit或其中任何一个。 只需更改应用所有者和权限级别:

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

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

Interesting Posts