Script als root ausführen incl. Kennworteingabe

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
Benutzeravatar
Mesquita
Beiträge: 127
Registriert: 18.10.2018 18:08:10

Script als root ausführen incl. Kennworteingabe

Beitrag von Mesquita » 25.08.2022 08:30:31

Hallo User,

ich habe ein Script geschrieben und muss dieses mit root Rechten ausführen. Die eigentliche Aufgabe vom Script wird seit Wochen erfolgreich erledigt. Allerdings wollte ich das Script so schreiben, dass nach dem Start die Kennworteingabe vom User root erfolgt. Alle meine Versuche sind aber gescheitert. Ich muss also vorher mittels su zu root wechseln und kann dann erfolgreich das Script ausführen.

Wie würdet Ihr dies machen?

Danke. Thomas

DeletedUserReAsG

Re: Script als root ausführen incl. Kennworteingabe

Beitrag von DeletedUserReAsG » 25.08.2022 08:44:44

Mesquita hat geschrieben: ↑ zum Beitrag ↑
25.08.2022 08:30:31
Wie würdet Ihr dies machen?
Hängt von den Umständen und den Gegebenheiten ab, sowie von anderen Faktoren, die hier nicht bekannt sind, darunter nicht zuletzt auch die persönlichen Ansichten zum Thema Sicherheit.

Ich würde auf jeden Fall vermeiden, im Script selbst mit dem Passwort hantieren zu müssen, und stattdessen einen der etablierten Mechanismen nutzen. Außerdem würde ich zusehen, dass das Passwort nicht etwa dafür genutzt werden kann, irgendwelchen anderen Kram als Root auzuführen.

Meine erste Wahl fiele auf sudo mit einer korrekten Konfiguration: die das Aufrufen nur genau des Scriptes mit Rootrechten erlaubt. Ansonsten bietet auch das policy-kit eine gute Möglichkeit, das Passwort abzufragen und die Rechte zu erlangen, ohne dass man selbst damit hantieren müsste.
Wenn die Nutzung gegebener Mechanismen aus irgendeinem Grund keine Option ist, würde ich einfach am Anfang des Scriptes die UID prüfen und bei ≠0 die Meldung ausgeben, dass man das Script doch bitte als Root starten möge.
Wenn auch das keine Option ist, und das Passwort unbedingt vom Script gelesen werden muss (was objektiv betrachtet nie der Fall ist, wodurch das nur eine theoretische Möglichkeit sein sollte), dann würde ich zu expect greifen.

Benutzeravatar
MSfree
Beiträge: 10774
Registriert: 25.09.2007 19:59:30

Re: Script als root ausführen incl. Kennworteingabe

Beitrag von MSfree » 25.08.2022 08:45:17

Mesquita hat geschrieben: ↑ zum Beitrag ↑
25.08.2022 08:30:31
Wie würdet Ihr dies machen?
Meine bevorozugte Methode

Code: Alles auswählen

su -c script
Und wenn es sowieso automatisiert ablaufen soll, kann man für den Benutzer root einen cron-Job einrichten.

Benutzeravatar
cosinus
Beiträge: 3439
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: Script als root ausführen incl. Kennworteingabe

Beitrag von cosinus » 25.08.2022 09:48:32

Mesquita hat geschrieben: ↑ zum Beitrag ↑
25.08.2022 08:30:31
Wie würdet Ihr dies machen?
Wann und wie oft muss das Script denn ausgeführt werden?

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

Re: Script als root ausführen incl. Kennworteingabe

Beitrag von uname » 25.08.2022 15:28:50

Ich muss also vorher mittels su zu root wechseln und kann dann erfolgreich das Script ausführen.
Für einzelne Scripte nutzt man eigentlich Debiansudo.
Script schreiben und Benutzer per visudo darauf berechtigen.
Oder wie bei Ubuntu. Per sudo alle Befehle als root erlauben, wobei man bei Ubuntu das Benutzer- und nicht das root-Passwort eingibt.

Benutzeravatar
Mesquita
Beiträge: 127
Registriert: 18.10.2018 18:08:10

Re: Script als root ausführen incl. Kennworteingabe

Beitrag von Mesquita » 26.08.2022 08:53:31

Hallo an Euch,

vielen Dank für die Hinweise. Ich kann mich mit

Code: Alles auswählen

su -c
vom @MSfree gut anfreunden. Mein Script läuft 3 - 4 mal pro Woche und wird von mit händisch angestoßen. Feste Zeiten über Cron möchte ich nicht, ev die Ausführung bei Neustart des Gerätes. Es handelt sich um einen meiner Notebooks

Thomas

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: Script als root ausführen incl. Kennworteingabe

Beitrag von tobo » 26.08.2022 10:10:37

Mesquita hat geschrieben: ↑ zum Beitrag ↑
25.08.2022 08:30:31
Allerdings wollte ich das Script so schreiben, dass nach dem Start die Kennworteingabe vom User root erfolgt.
Wenn innerhalb des Skripts - vielleicht auch wegen gemischter Benutzerführung - abgefragt werden soll, dann kann das mit "su -c" so aussehen:

Code: Alles auswählen

#!/bin/sh

whoami
su -c '
    whoami
'
whoami
und führt zu:

Code: Alles auswählen

$ ./t.sh
tobo
Password: 
root
tobo
$
Alles innerhalb '...' wird von root ausgeführt und deshalb darf hier und auch bei "su -c skript" niemand außer root Schreibrechte auf dieses Skript besitzen.

Benutzeravatar
Mesquita
Beiträge: 127
Registriert: 18.10.2018 18:08:10

Re: Script als root ausführen incl. Kennworteingabe

Beitrag von Mesquita » 27.08.2022 08:45:50

Hallo @tobo,

ich habe den Code übernommen und noch etwas meinen Wünschen angepasst. Vielen Dank, es funktioniert einwandfrei und sieht jetzt auch schick aus ;-).
Noch etwas anderes: Aus anderen Foren bin ich gewöhnt bei direkter Benachrichtigung bzw. Ansprache eines Users, den Username mit @ zu beginnen. Dies geht hier nicht, oder?

Thomas

fischig
Beiträge: 3640
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: Script als root ausführen incl. Kennworteingabe

Beitrag von fischig » 27.08.2022 08:51:17

Aus anderen Foren bin ich gewöhnt bei direkter Benachrichtigung bzw. Ansprache eines Users, den Username mit @ zu beginnen. Dies geht hier nicht, oder?
Geht doch! Wie kommst du darauf, dass es nicht ginge?

PS: Den inflationären Gebrauch halte ich für eine Unsitte.

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Script als root ausführen incl. Kennworteingabe

Beitrag von JTH » 27.08.2022 09:05:30

Mesquita hat geschrieben: ↑ zum Beitrag ↑
27.08.2022 08:45:50
Aus anderen Foren bin ich gewöhnt bei direkter Benachrichtigung bzw. Ansprache eines Users, den Username mit @ zu beginnen.
Wie @fischig angedeutet hat, kannst du das natürlich machen, eine besondere technische Funktion hat das bei der hier verwendeten Forensoftware phpBB aber nicht. Einige benutzen es trotzdem gelegentlich, genauso könnte man aber z.B. „An Mesquita:“ schreiben.

Wenn du möchtest, dass derjenige, den du ansprichst, eine Benachrichtigung bekommt (abhängig von dessen Benachrichtigungseinstellungen), kannst du den (Ab-) Satz, auf den du dich beziehst, zitieren:
Mesquita hat geschrieben: ↑ zum Beitrag ↑
27.08.2022 08:45:50
bei direkter Benachrichtigung bzw. Ansprache eines Users

fischig hat geschrieben: ↑ zum Beitrag ↑
27.08.2022 08:51:17
PS: Den inflationären Gebrauch halte ich für eine Unsitte.
@fischig: :P
Manchmal bekannt als Just (another) Terminal Hacker.

Benutzeravatar
Mesquita
Beiträge: 127
Registriert: 18.10.2018 18:08:10

Re: Script als root ausführen incl. Kennworteingabe

Beitrag von Mesquita » 28.08.2022 08:48:24

Hallo @fischig, hallo @JTH,

ich frage, da in anderen Forensoftwareprodukten dies quasi Standard mit @USER ist, mit denen ich noch häufig arbeite, um bei einem Post den User direkt zu benachrichtigen. Dies erfolgt auch dann, wenn er nicht den Thread abonniert hat.
Geht doch! Wie kommst du darauf, dass es nicht ginge?
Sobald man @ gefolgt mit ersten Buchstaben des Users eingibt, zeigt die Forensoftware die Liste der möglichen User. Ich finde dies gut, denn damit schreibt man den Username definitiv richtig und derjenige erhält dann auch eine Benachrichtigung. Beispiel, hier habe ich in der Anrede zuerst @JHT geschrieben und stellte den Fehler erst bei einer manuellen Kontrolle fest.

Ist sicherlich nicht zwingend notwendig, ich habe mich nur so daran gewöhnt. Man muss es nur wissen.

Danke.

Thomas

fischig
Beiträge: 3640
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: Script als root ausführen incl. Kennworteingabe

Beitrag von fischig » 28.08.2022 09:00:15

Danke für die Beantwortung meiner Frage!
Hängt vielleicht von der grafischen Oberfläche und/oder dem verwendeten Browser ab. Bei mir ist das nicht so. Keine DE, nur WM (openbox) und firefox (91.4.1esr) unter bullseye. Und darüber bin ich ganz froh. Ich mag's nicht, wenn Software meint, für mich denken zu müssen. :wink: Aber ja, die Geschmäcker sind halt unterschiedlich. :wink:

Antworten