web-dev-qa-db-fra.com

Comment faire fonctionner un programme en tant que root sans "sudo"?

J'ai un certain programme binaire sur OS X qui ne peut être exécuté que comme une racine.

J'en ai marre de préparer Sudo Chaque fois que je l'appelle et en tapant le mot de passe, et j'aimerais qu'il fonctionne automatiquement en tant que root lorsque je l'invoque régulièrement, sans demander un mot de passe.

Le propriétaire du programme est root et son groupe est une roue.

J'ai essayé chmod ug+s Pour définir l'ID utilisateur et l'élevage lors de l'exécution de la racine/de la roue, mais lorsque j'exécute le programme sans sudo, il se plaint toujours qu'il ne peut fonctionner que avec sudo ou en tant que root.

10
UrEl

Êtes-vous sûr que le programme que vous essayez d'exécuter est en réalité un script binaire et non un script shell. La plupart des coquilles ignorent les scripts suid parce qu'ils sont vraiment difficiles à faire en toute sécurité. Un moyen facile de vérifier est d'utiliser la commande file sur le programme.

2
KeithB

Une demi solution à votre problème:

dans le fichier sudoers, ajoutez ce qui suit:

username ALL= NOPASSWD: /path/to/command

Ensuite, à partir de la ligne de commande, vous pouvez taper:

Sudo command

et il exécutera la commande sans demander votre mot de passe. Cette commande fonctionnera en tant que root.

Remarque, vous devrez remplacer le nom d'utilisateur avec votre nom d'utilisateur actuel.

17
Walter

Si vous ne pouvez vraiment pas l'appeler comme un démon pour une raison quelconque (Cette question serait pertinente dans ce cas , cette méthode peut Soyez piraté ensemble, mais c'est Jolie sale et non sécurisée du tout.

Le concept est de le lancer avec un AppleScript. Vous devez d'abord savoir comment appeler le processus à partir de la ligne de commande (laquelle si vous utilisez déjà sudo, vous devez être tous défini). Vous allez lancer ce processus en utilisant le do Shell script commande, et au lieu d'utiliser sudo, vous écrivez vos informations d'identification dans le document AppleScript:

do Shell script "/path/to/your/executable/here" user name "me" password "mypassword" with administrator privileges

J'ai réitéré la partie à ce sujet d'être insécurisé: Cela signifie que vos crédits d'administrateur seront stockés en texte brut. Si possible, vous devriez trouver un moyen de trouver un moyen de Contexte en tant que lanceurDaemon.

4
NReilingh

Sur OSX Supposons que le programme que vous avez est localisé dans/USR/local/bin/YourProgramName ... Pour résoudre ce problème, la commande suivante, pour modifier l'ID utilisateur/ID de groupe pour les hiérarchies de fichiers enracinées dans les fichiers au lieu des fichiers eux-mêmes. .

Sudo chown -R $(whoami) /usr/local/bin/

... Ensuite, dans le terminal, appelez votre nom de programme, $ YourprogramName

2
abdimuna

on dirait que le programme lui-même vérifie si elle fonctionne avec ID = 0

0
jet