Autor Thema: (gelöst) fhem: sudo visudo einschränken  (Gelesen 1545 mal)

Offline heikoh81

  • Sr. Member
  • ****
  • Beiträge: 544
(gelöst) fhem: sudo visudo einschränken
« am: 31 Mai 2018, 18:49:58 »
Hallo zusammen,

für bestimmte Aktionen auf meinem Raspi mit Raspbian Stretch benötigt mein FHEM root rechte, da z.B. ein Reload des Apache2 durchgeführt werden soll.

Es funktioniert, wenn ich in "sudo visudo" folgenden Eintrag habe:
fhem ALL=(ALL) NOPASSWD: ALL

Es funktioniert nicht, wenn ich die root-Rechte wie folgt einschränken möchte:
fhem    ALL=(root) NOPASSWD:/usr/sbin/service
oder
fhem    ALL=(ALL) NOPASSWD:/usr/sbin/service

Dann erhalte ich folgende Fehlermeldung im Log:
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

sudo: no tty present and no askpass program specified

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

sudo: no tty present and no askpass program specified
2018.05.31 18:44:43 3: Apache2-Seite wurde aktiviert: 000-default-le-ssl.conf:
2018.05.31 18:44:43 3: Apache2-Service wurde neu geladen:
Obwohl protokolliert wird, dass die Seite aktiviert und Apache2 neu geladen wurde, ist dies nicht der Fall.
Vielmehr ist miene Apache2-Konfiguration nicht verwendbar, also läuft irgendwas wohl schief.

Wo liegt mein Denkfehler?
In verschiedenen anderen Beiträgen, auch hier im fhem-Forum, wird genau diese Vorgehensweise beschrieben.

Vielen Dank für eure Hilfe,
viele Grüße,

Heiko
« Letzte Änderung: 12 Juni 2018, 15:38:57 von heikoh81 »

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 15692
Antw:fhem: sudo visudo einschränken
« Antwort #1 am: 31 Mai 2018, 19:17:23 »
fhem    ALL = NOPASSWD:  /usr/sbin/service

So kann fhem im übrigen alle Dienste steuern.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier
kein Support für cfg Editierer

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4220
Antw:fhem: sudo visudo einschränken
« Antwort #2 am: 31 Mai 2018, 19:27:31 »
Heiko, Du musst einmal als User fhem die Belehrung abnicken. In einer Shell. Grüße Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline heikoh81

  • Sr. Member
  • ****
  • Beiträge: 544
Antw:fhem: sudo visudo einschränken
« Antwort #3 am: 03 Juni 2018, 13:38:52 »
Danke für eure Antworten.

fhem    ALL = NOPASSWD:  /usr/sbin/service

So kann fhem im übrigen alle Dienste steuern.

Wird später noch weiter eingeschränkt. Habe es für Testzwecke so allgemein gehalten...

Heiko, Du musst einmal als User fhem die Belehrung abnicken. In einer Shell. Grüße Boris

Ok, habe ich probiert.
Bin ich als root in der Shell, passiert bei "su fhem" passiert nichts.
Bin ich als pi in der Shell, fragt mich das System nach einem Passwort - welches ich nie vergeben habe.
Habe hierzu diesen Thread gefunden: https://forum.fhem.de/index.php/topic,36120.0.html
Im Thread werden nun mehrere Optionen disktuiert, ich wollte vorab klären, was für mein Problem die richtige ist:

less /etc/passwd | grep fhemliefert
fhem:x:999:20::/opt/fhem:/bin/false

(1) Passwort für user fhem setzen?
(2) in /etc/passwd für fhem die Shell auf :/bin/bash ändern?
Wenn (2), kann ich nach einmaligem Abnicken dann die Shell wieder auf /bin/false setzen, oder muss das auf /bin/bash bleiben, damit fhem die Systembefehle absetzen kann?

Viele Grüße,
Heiko

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4220
Antw:fhem: sudo visudo einschränken
« Antwort #4 am: 03 Juni 2018, 17:12:21 »
Hallo,

/etc/passwd in Ruhe lassen und vom root-Account aus mit

su fhem -s /bin/bash
zum fhem-Account wechseln. Dann irgendwas mit sudo ausführen, die Belehrung abnicken, und mit exit wieder raus.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline heikoh81

  • Sr. Member
  • ****
  • Beiträge: 544
Antw:fhem: sudo visudo einschränken
« Antwort #5 am: 04 Juni 2018, 21:45:38 »
Das funktioniert leider noch nicht.

Ich habe die Shell in Raspian geöffnet und bin erstmal user "pi".
Dann "sudo su" eingegeben, ich bin user root.

Wenn ich nun den von dir angegebenen Befehl eingebe, kommt eine Passwort-Abfrage (nicht in der Shell, sondern vom Raspian-Dektop "Authentication is required"), bei der ich nur die Benutzer "pi" oder "root" auswählen kann.
Ich habe für beide das Passwort eingegeben und OK geklickt. Der Befehl aus der Shell wird schon ausgeführt.
Aber in FHEM erscheint noch immer diesselbe Fehlermeldung im Log, wenn ich fhem dann denselben Befehl ausführen lasse.

Viele Grüße,
Heiko

Online Wernieman

  • Hero Member
  • *****
  • Beiträge: 4331
Antw:fhem: sudo visudo einschränken
« Antwort #6 am: 06 Juni 2018, 08:12:10 »
Baue Dir beim nächsten mal bitte ein System ohne Grafische Oberfläche. Bei mir z.B: funzt es...

Du Öffnest eine Konsole, bist also pi. Wirst dann mit "sudo su" root (wobei ich immer "sudo -i" verwende). Wenn Du jetzt "su fhem -s /bin/bash" öffnest, kommt ein grafisches Fenster???

Du bist Dir sicher, in der gleichen Konsole zu sein??
Was für aliase hast Du?
alias
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 10200
    • Otto's Technik Blog
Antw:fhem: sudo visudo einschränken
« Antwort #7 am: 06 Juni 2018, 09:40:23 »
Heiko, Du musst einmal als User fhem die Belehrung abnicken. In einer Shell. Grüße Boris
Hallo Boris,

wirklich? Ist das System abhängig?
Musste ich noch nicht machen. Ich richte meine Pi  Systeme so ein, damit funktioniert das ohne Umschweife.

Aber wie Werner empfiehlt: nur -lite- ohne graphischen Desktop.

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7490+7412,WRT1900ACS-OpenWrt,Sonos,ET9200,Arduino nano,ESP8266

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4220
Antw:fhem: sudo visudo einschränken
« Antwort #8 am: 07 Juni 2018, 18:23:34 »
Mannomann. Jetzt bin ich seit Tagen mal wieder an meinem Rechner, habe 30 Sekunden gegoogelt, und die folgende Lösung aufgetrieben:

In die Datei

/etc/sudoers.d/privacy
die Zeile

Defaults        lecture = never
reinschreiben. Test ist dem Verwender überlassen. Ich hoffe, dass das Thema damit erledigt ist. Ansonsten hilft

man sudoers
in einer Shell weiter.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline JoWiemann

  • Tester
  • Hero Member
  • ****
  • Beiträge: 2421
Antw:fhem: sudo visudo einschränken
« Antwort #9 am: 07 Juni 2018, 19:39:33 »
Wobei ich letztens noch einmal festgestellt habe, das Google uns sehr unterschiedlich behandelt. Bei einem Bekannten, der wenig im IT Bereich googelt, habe ich die ersten Seiten ganz andere Treffer gehabt. Erst nachdem ich mich mit meinem Account angemeldet hatte war mir Google wieder gnädig...


Gesendet von iPhone mit Tapatalk

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Offline heikoh81

  • Sr. Member
  • ****
  • Beiträge: 544
Antw:fhem: sudo visudo einschränken
« Antwort #10 am: 07 Juni 2018, 22:07:35 »
Danke für eure Antworten.

Mannomann. Jetzt bin ich seit Tagen mal wieder an meinem Rechner, habe 30 Sekunden gegoogelt, und die folgende Lösung aufgetrieben:
Naja, ich habe wesentlich länger erfolglos gegoogelt, bevor ich hier gepostet habe. Wenn man weiß, wonach man sucht, findet man die Lösung sicher auch schneller.

Zitat
In die Datei
/etc/sudoers.d/privacydie Zeile
Defaults        lecture = neverreinschreiben. Test ist dem Verwender überlassen. Ich hoffe, dass das Thema damit erledigt ist.

Habe ich gemacht, Test morgen (Haussteuerung kann ich zu dieser Zeit nicht neu starten, da um diese Zeit viele Timer anstehen).

Baue Dir beim nächsten mal bitte ein System ohne Grafische Oberfläche. Bei mir z.B: funzt es...
Du Öffnest eine Konsole, bist also pi. Wirst dann mit "sudo su" root (wobei ich immer "sudo -i" verwende). Wenn Du jetzt "su fhem -s /bin/bash" öffnest, kommt ein grafisches Fenster???
Du bist Dir sicher, in der gleichen Konsole zu sein??
Was für aliase hast Du?
alias

Ich habe auch headless-raspis im Einsatz, aber grundsätzlich muss es ja auch mit grafischer Oberfläche funktionieren.
Ich habe schon meine Gründe für den grafischen Desktop: Der Raspi 3b+ hat genug Leistung, um neben fhem auch noch als "management station" für meine Headless Raspis zu dienen.
Auf dem Tablet geht ssh eher schlecht als recht und ein Notebook oder PC möchte ich dafür nicht hochfahren.

Alias als user pi liefert:
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias ls='ls --color=auto'
Alias als user root liefert nichts.

Viele Grüße,
Heiko

Online Wernieman

  • Hero Member
  • *****
  • Beiträge: 4331
Antw:fhem: sudo visudo einschränken
« Antwort #11 am: 07 Juni 2018, 22:18:10 »
Leider unterscheiden sich die Distris mit/ohne Grafischer Oberfläche gerade in solchen Details ....

Und bei den aktuellen PIs würde ich für Grafik eher noch einen Pi zulegen
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline heikoh81

  • Sr. Member
  • ****
  • Beiträge: 544
Antw:fhem: sudo visudo einschränken
« Antwort #12 am: 08 Juni 2018, 11:58:09 »
Zitat
In die Datei
/etc/sudoers.d/privacydie Zeile
Defaults        lecture = neverreinschreiben.

Funktioniert zwar für "shutdown -r now", nicht aber für "Service apache2 reload".
Folgenden Eintrag habe ich in visudo:

fhem    ALL=(ALL) NOPASSWD:/sbin/shutdown,/usr/sbin/a2ensite,/usr/sbin/a2dissite,/usr/sbin/service apache2 reload

Log:
sudo: no tty present and no askpass program specified
Can't ignore signal CHLD, forcing to default.
2018.06.08 11:55:06 3: Apache2-Seite wurde aktiviert: 000-default-le-ssl.conf: Site 000-default-le-ssl already enabled
2018.06.08 11:55:06 3: Apache2-Service wurde neu geladen:

Mit diesem visudo funktioniert alles auch ohne Eintrag in /etc/sudoers.d/privacy:
fhem ALL=(ALL) NOPASSWD: ALL

Viele Grüße,
Heiko

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 10200
    • Otto's Technik Blog
Antw:fhem: sudo visudo einschränken
« Antwort #13 am: 08 Juni 2018, 12:33:07 »
Hallo Heiko,

du rufst dann aber auch exakt diese Zeile auf?sudo /usr/sbin/service apache2 reload
Mit Service apache2 reload wird es wirklich nicht gehen. So mein Verständnis  :D was nicht richtig sein muss.

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7490+7412,WRT1900ACS-OpenWrt,Sonos,ET9200,Arduino nano,ESP8266

Offline heikoh81

  • Sr. Member
  • ****
  • Beiträge: 544
Antw:fhem: sudo visudo einschränken
« Antwort #14 am: 08 Juni 2018, 12:38:32 »
In fhem rufe ich dann tatsächlich nur "sudo service apache2 reload" auf.
Nachfolgend lässt mich sudo visudo aber gar nicht speichern und weißt mich auf einen Fehler hin:
fhem    ALL=(ALL) NOPASSWD: service apache2 reload
« Letzte Änderung: 08 Juni 2018, 12:42:18 von heikoh81 »