Gelöst: Mentales Problem mit sudoers

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
heliosoph
Beiträge: 455
Registriert: 28.03.2005 15:48:04
Wohnort: Neustadt / Aisch
Kontaktdaten:

Gelöst: Mentales Problem mit sudoers

Beitrag von heliosoph » 14.11.2012 08:26:42

Hallo allerseits,

ich beschäftige mich gerade mit sudo und /etc/sudoers und komme nicht weiter, scheint ein Verständnisproblem meinerseits zu sein.

Folgendes:
Ich habe das Skript /usr/lib/cups/backend/mgetty-fax (stammt aus fax4cups). Es läuft als User lp (wird durch cups aufgerufen) und führt einen Befehl als root aus und einen als User (ich). Wenn ich mit visudo in die etc/sudoers folgendes schreibe:

Code: Alles auswählen

lp ALL=(ALL) NOPASSWD: ALL
dann geht es so wie ich will. Wenn ich die Rechte für lp einschränken will mit

Code: Alles auswählen

lp ALL=(ALL) NOPASSWD: /usr/lib/cups/backend/mgetty-fax
gehts nicht, d. h. lp bekommt nicht die notwendigen Rechte beim Ausführen der Datei. Ich habe inzwischen schon etliche Manuals, Anleitungen und Tutorials gelesen, komme aber nicht weiter. Kann mir jemand einen Tipp geben?

Viele Grüße

heliosoph
Zuletzt geändert von heliosoph am 14.11.2012 16:13:36, insgesamt 1-mal geändert.
Debian auf allen meinen Rechnern.

http://heliosoph.mit-links.info Mein Blog über Linux, arduino und Elektronik

Benutzeravatar
4A4B
Beiträge: 981
Registriert: 09.11.2011 11:19:55
Kontaktdaten:

Re: Mentales Problem mit sudoers

Beitrag von 4A4B » 14.11.2012 11:46:06

und führt einen Befehl als root aus
Ich nehme an, dass dieser Befehl in die sudoers eingetragen werden muss

Benutzeravatar
r900
Beiträge: 1053
Registriert: 09.10.2011 20:06:11
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Stockholm

Re: Mentales Problem mit sudoers

Beitrag von r900 » 14.11.2012 12:33:04

4A4B hat geschrieben:
und führt einen Befehl als root aus
Ich nehme an, dass dieser Befehl in die sudoers eingetragen werden muss
Ja, wenn cups dieses Skript als user lp ausfuehrt bringt es nichts wenn du das Skript in die sudoers einträgst weil cups ja nicht versucht das Skript mit Root-Rechten auszufuehren. Da musst du mal ins Skript schauen welcher Befehl es genau ist der mit sudo ausgefuehrt wird.

Benutzeravatar
Meillo
Moderator
Beiträge: 9267
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Mentales Problem mit sudoers

Beitrag von Meillo » 14.11.2012 13:33:29

heliosoph hat geschrieben: Ich habe inzwischen schon etliche Manuals, Anleitungen und Tutorials gelesen, komme aber nicht weiter. Kann mir jemand einen Tipp geben?
Keine Ahnung ob das hier ebenfalls so ist, aber wenn ich mit sudoers Probleme hatte, dann war es immer die Reihenfolge der Anweisungen in der Datei, die ist naemlich entscheidend.
Use ed once in a while!

uname
Beiträge: 12474
Registriert: 03.06.2008 09:33:02

Re: Mentales Problem mit sudoers

Beitrag von uname » 14.11.2012 15:57:01

Ist der Pfad und Dateiname richtig? Auch weiß ich nicht was wäre wenn es ein symbolischer Link ist. Prüfe das.
Versuche testweise:
Umbenennen:

Code: Alles auswählen

mv /usr/lib/cups/backend/mgetty-fax /usr/lib/cups/backend/mgetty-fax.old
Kopiere

Code: Alles auswählen

cp /usr/bin/whoami /usr/lib/cups/backend/mgetty-fax
Was sagt nun der Aufruf. Es sollte "root" (Befehl whoami) ausgegeben werden. Wenn dem so ist gibt es wohl nachgelagerte Probleme. Wenn nicht mal "root" ausgegeben wird sondern der Name "lp" ist dein sudo-Zeug wohl Schrott. Aber "sudo" hast du schon vorher eingegeben, oder?

heliosoph
Beiträge: 455
Registriert: 28.03.2005 15:48:04
Wohnort: Neustadt / Aisch
Kontaktdaten:

Re: Mentales Problem mit sudoers

Beitrag von heliosoph » 14.11.2012 16:13:04

r900 hat Recht:
r900 hat geschrieben: Ja, wenn cups dieses Skript als user lp ausfuehrt bringt es nichts wenn du das Skript in die sudoers einträgst weil cups ja nicht versucht das Skript mit Root-Rechten auszufuehren. Da musst du mal ins Skript schauen welcher Befehl es genau ist der mit sudo ausgefuehrt wird.
Genau so funktionierts. In die sudoers eingetragen:

Code: Alles auswählen

lp ALL=(ALL) NOPASSWD: /usr/bin/faxspool
lp ALL=(ALL) NOPASSWD: /bin/chown
Das sind die zwei Befehle, die per sudo aufgerufen werden. Jetzt habe ich verstanden, was es bedeutet, daß sudo auf Befehlsebene arbeitet :D

Vielen Dank (!!!) und noch einen schönen Tag

heliosoph
Debian auf allen meinen Rechnern.

http://heliosoph.mit-links.info Mein Blog über Linux, arduino und Elektronik

Antworten