Problem beim Ausführen des Befehls als anderer Benutzer mit sudo -u

12

Wenn ich versuche, lsals Benutzer abcmit dem folgenden Befehl auszuführen, erhalte ich eine Fehlermeldung:

xyz@host:~/temp$ sudo -u abc ls
[sudo] password for xyz:
Sorry, user xyz is not allowed to execute '/bin/ls' as abc on host.

Aber wenn ich es tue su abcund dann ausführe, habe lsich kein Problem

user1678312
quelle

Antworten:

17

Sie sollten die sudo-Sicherheitsrichtlinie so konfigurieren, dass der Benutzer xyz etwas als Benutzer abc ausführt. Lesen Sie 'man sudoers' und verwenden Sie den Befehl visudo, um / etc / sudoers zu konfigurieren.

Lassen Sie zum Beispiel den Benutzer xyz exec / usr / bin / whoami als Benutzer abc ohne Passwort zu. Fügen Sie diesen String in / etc / sudoers ein (mit visudo bearbeiten Sie / etc / sudoers nicht direkt):

xyz ALL = (abc) NOPASSWD: /usr/bin/whoami

Und jetzt testen Sie es:

xyz@host:~$ sudo -u abc /usr/bin/whoami
abc
svq
quelle
Hat es Ihnen etwas ausgemacht zu erklären, warum Sie es vermeiden sollten, / etc / sudoers direkt zu bearbeiten?
Adi Prasetyo
Denn wenn Sie / etc / sudoers direkt bearbeiten, können Sie einen Fehler machen, die sudoers-Datei beschädigen und sich (im schlimmsten Fall) mit sudo blockieren. ‚Visudo‘ ist nicht nur ein Editor, sondern auch die Syntax der sudoers - Datei überprüft und hilft , Fehler zu vermeiden, Fehler usw.
SVQ
4

Dies liegt daran, sudounterscheidet sich von su. Wenn Sie su abc, werden Sie der Benutzer abc, was das System betrifft. Sie können dann alles tun, was Sie abckönnen.

Auf der anderen Seite sudowird verwendet, um anderen Benutzern die Ausführung einiger Befehle per Proxy zu ermöglichen. Mit anderen Worten, Ihre sudoKonfiguration ermöglicht es Ihnen, einige Befehle im Auftrag von auszuführen abc. Wenn der Befehl, den Sie ausführen möchten, keiner von ihnen ist, wird der von Ihnen gemeldete Fehler angezeigt.

Joseph R.
quelle
0

Für den Fall, dass alles in Ordnung aussieht, Sie aber trotzdem eine Sorry user xxx cannot execute...Nachricht erhalten und Sie sudojedes Mal nach einem Passwort gefragt werden.

Du kannst das:

  1. In /etc/sudoersLöschzeile mit Ihren Benutzereinstellungen
  2. Datei speichern
  3. Öffnen Sie die Datei, geben Sie (NO COPING) Ihre Optionen für diesen Benutzer ein
  4. Datei speichern
  5. Versuch es.

Das hat bei mir funktioniert. Es stellte sich heraus, dass die Endung in dieser Zeile schlecht war, da ich Befehle kopierte, die über E-Mail ausgeführt werden mussten.

borbar
quelle
Sicherlich, wenn Sie visudoes an erster Stelle bearbeitet hätten, hätten Sie das erfahren?
Auspex
Nein, würdest du nicht.
Borbar
Ah, gut. Ich hätte wirklich gedacht ... In jedem Fall denke ich, dass Sie viel wahrscheinlicher Fehler beim manuellen Tippen bekommen als beim Kopieren und Einfügen. Beachten Sie nur, dass sich die Zeilenenden unterscheiden.
Auspex