Ich brauche sudo ohne Passwortabfrage für Skripte. Was habe ich falsch gemacht?


9

Ich bin in der Sudo-Gruppe.

$ id
uid=1002(molot) gid=1002(molot) groups=1002(molot),27(sudo),33(www-data)

In meinen Sudores scheint ich eine angemessene Einstellung zu haben:

sudo    ALL=(ALL:ALL) NOPASSWD: ALL

und es ist die letzte unkommentierte Zeile dort.

Aber wenn ich es versuche git pull, möchte ich mein Passwort erneut eingeben:

$ sudo -u www-data git --git-dir /var/www/.git --work-tree /var/www pull "origin" master
[sudo] password for molot:

Es ist kein Problem, wenn ich in der Konsole angemeldet bin, aber es ist in Skripten nicht akzeptabel. Wie kann ich also jedem in der Sudo-Gruppe erlauben, als WWW-Daten zu ziehen, ohne das Passwort erneut einzugeben?

Wenn ich meinen Namen direkt eingebe:

molot ALL=(ALL) NOPASSWD: ALL

Für mich geht das. Aber natürlich nicht für marianische oder andere Benutzer aus der Sudo-Gruppe. Soweit ich das Handbuch verstanden habe , sollten sowohl Benutzernamen als auch Gruppennamen in der ersten Datei funktionieren.


Können Sie nicht sudo -u www-data ./your_script.sh? Was ist der Zweck des Skripts?
— jimbobmcgee

@jimbobmcgee es ist ein Git-Hook, also nein, ich kann ihm nichts voranstellen. Es wird von dem Benutzer aufgerufen, der Git-Änderungen vorgenommen hat, und ich habe keinen wirklichen Weg gefunden, um es zu umgehen.
— Mołot

Das erste Feld (wenn mein schnelles Verständnis des sudoersDateiformats korrekt ist) ist der Benutzername des aufrufenden Benutzers. Haben Sie versucht, es durch den Platzhalter zu ersetzen *, oder für welchen Benutzer der Git-Hook ausgeführt wird?
— Ein Lebenslauf

@ MichaelKjörling wie hier angegeben sollte es möglich sein, sowohl Benutzer als auch Gruppen in das erste Feld zu schreiben. *funktioniert nicht. Das direkte Eingeben meines Namens funktioniert für mich ... aber natürlich nicht für andere Benutzer in der Sudo-Gruppe.
— Mołot

@ MichaelKjörling danke, dein Kommentar hat mich dazu gebracht, nach speziellen Zeichen zu suchen und mir erlaubt, eine Antwort zu finden: D Bearbeiten: Selbstantwort gelöscht und Antwort von Drittanbietern im selben Moment akzeptiert.
— Mołot

Antworten:


19

Scheint, als hätten Sie die relevante Zeile in Ihren Sudoern, in der ein Charakter fehlt:

sudo ALL = (ALL: ALL) NOPASSWD: ALL

stimmt mit einem Benutzer namens 'sudo' überein. Für 'alle Benutzer in der Sudo-Gruppe' sollte es sein:

% sudo ALL = (ALL: ALL) NOPASSWD: ALL

(Beachten Sie das% -Zeichen am Anfang).


1
Ah so dass das , was die %in %wheelgemeint.
— Nikil

1

sudo visudo

Angenommen, es molotist Ihr Benutzername, gehen Sie zum Ende der Datei und:

molot ALL=(ALL) NOPASSWD: ALL

Dies sollte funktionieren, aber wenn nicht, halten Sie uns auf dem Laufenden.


Das funktioniert. Für mich. Aber natürlich nicht für Marianer oder andere Benutzer in der Sudo-Gruppe.
— Mołot

Erstellen Sie dann Benutzer-Aliase ( User_Alias) und erteilen Sie die Berechtigung, bestimmte Befehle als root ( Runas_Alias) auszuführen . Ich weiß nicht, wie Ihre Gruppe aufgebaut ist. Sie können die Sudoers-Wiki- Hilfe lesen. Ubuntu.com/community/Sudoers Es ist wirklich prägnant. Überprüfen Sie den Abschnitt "Benutzerspezifikationen", dies sollte helfen.
— Jugurtha Hadjar
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.