Script als root ausführen incl. Kennworteingabe
Script als root ausführen incl. Kennworteingabe
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
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
Re: Script als root ausführen incl. Kennworteingabe
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.
Re: Script als root ausführen incl. Kennworteingabe
Meine bevorozugte Methode
Code: Alles auswählen
su -c script
- 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
Wann und wie oft muss das Script denn ausgeführt werden?
Re: Script als root ausführen incl. Kennworteingabe
Für einzelne Scripte nutzt man eigentlich sudo.Ich muss also vorher mittels su zu root wechseln und kann dann erfolgreich das Script ausführen.
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.
Re: Script als root ausführen incl. Kennworteingabe
Hallo an Euch,
vielen Dank für die Hinweise. Ich kann mich mit 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
vielen Dank für die Hinweise. Ich kann mich mit
Code: Alles auswählen
su -c
Thomas
Re: Script als root ausführen incl. Kennworteingabe
Wenn innerhalb des Skripts - vielleicht auch wegen gemischter Benutzerführung - abgefragt werden soll, dann kann das mit "su -c" so aussehen:Mesquita hat geschrieben:25.08.2022 08:30:31Allerdings wollte ich das Script so schreiben, dass nach dem Start die Kennworteingabe vom User root erfolgt.
Code: Alles auswählen
#!/bin/sh
whoami
su -c '
whoami
'
whoami
Code: Alles auswählen
$ ./t.sh
tobo
Password:
root
tobo
$
Re: Script als root ausführen incl. Kennworteingabe
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
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
Re: Script als root ausführen incl. Kennworteingabe
Geht doch! Wie kommst du darauf, dass es nicht ginge?Aus anderen Foren bin ich gewöhnt bei direkter Benachrichtigung bzw. Ansprache eines Users, den Username mit @ zu beginnen. Dies geht hier nicht, oder?
PS: Den inflationären Gebrauch halte ich für eine Unsitte.
Re: Script als root ausführen incl. Kennworteingabe
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.Mesquita hat geschrieben:27.08.2022 08:45:50Aus anderen Foren bin ich gewöhnt bei direkter Benachrichtigung bzw. Ansprache eines Users, den Username mit @ zu beginnen.
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:27.08.2022 08:45:50bei direkter Benachrichtigung bzw. Ansprache eines Users
@fischig:fischig hat geschrieben:27.08.2022 08:51:17PS: Den inflationären Gebrauch halte ich für eine Unsitte.
Manchmal bekannt als Just (another) Terminal Hacker.
Re: Script als root ausführen incl. Kennworteingabe
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.
Ist sicherlich nicht zwingend notwendig, ich habe mich nur so daran gewöhnt. Man muss es nur wissen.
Danke.
Thomas
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.
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.Geht doch! Wie kommst du darauf, dass es nicht ginge?
Ist sicherlich nicht zwingend notwendig, ich habe mich nur so daran gewöhnt. Man muss es nur wissen.
Danke.
Thomas
Re: Script als root ausführen incl. Kennworteingabe
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. Aber ja, die Geschmäcker sind halt unterschiedlich.
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. Aber ja, die Geschmäcker sind halt unterschiedlich.