web-dev-qa-db-fra.com

Comment puis-je donner des privilèges root à une application?

J'ai essayé de soumettre une application à l'Ubuntu Software Center, mais elle a été rejetée car vous deviez entrer le mot de passe de l'administrateur pour l'utiliser. Je dois accorder des privilèges root à l'application pour que celle-ci fonctionne, j'ai donc utilisé Sudo. Mais ils ont dit que je ne pouvais pas utiliser Sudo dans mon application. Comment puis-je lui donner les privilèges root?

4
thelostlambda

Vous devez utiliser les API PolicyKit pour demander l'escalade des privilèges. En général, vous ne devez le faire que lorsque cela est absolument nécessaire et ne pas exécuter l'application à tout moment avec des privilèges élevés.

Il est à noter que si vous n'avez besoin que des privilèges root au démarrage, vous pouvez et devez démarrer en tant que root, puis passer à un utilisateur sans privilège. Si vous opérez en tant que programme destiné à l'utilisateur, cela signifie probablement l'utilisateur qui a exécuté le programme; Si cela signifie un démon, comme un httpd ou sshd, cela signifie probablement un utilisateur incroyablement verrouillé créé spécifiquement pour votre programme.

Il existe également des interfaces graphiques à Sudo appelées gksudo et kdsudo pour GNOME et KDE, respectivement. Si quelqu'un vous recommande de les utiliser, non. Sachez que ces programmes sont obsolètes en faveur de PolicyKit, qu'ils ne sont pas installés par défaut et que votre application sera probablement rejetée.

5
dobey

Votre application pourrait ne pas être autorisée du tout. Selon le wiki Ubunt , la Commission de révision des applications rejettera les applications qui touchent les fichiers système:

Votre application semble toucher les fichiers système dans le cadre de son fonctionnement. Cependant, nous n'autorisons pas les applications à le faire dans le cadre d'une politique de sécurité pour extras.ubuntu.com. Pour ces applications, nous vous recommandons de suivre les étapes sur https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages pour soumettre votre paquet à Debian ou Ubuntu.

Une application de nettoyage toucherait les fichiers système.

Bien que cette directive ne s'applique qu'aux applications open source ( la stratégie pour les applications propriétaires n'est pas publiée ), j'imagine que des règles similaires s'appliquent aux applications propriétaires.

Si votre application est open-source, vous pouvez toujours l'obtenir dans le Centre logiciel en en la conditionnant et en la soumettant aux référentiels Ubuntu ou Debian principaux .

2
Mechanical snail

Vous n'avez pas besoin de PolicyKit ou de tout cela. Il suffit de changer le propriétaire des applications et le niveau d'autorisation:

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

Bien sûr, vous aurez besoin des privilèges root pour exécuter ces commandes.

0
Chef Pharaoh