Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?
21.04.2021, 13:05:46

.
Einloggen mit Benutzername, Passwort und Sitzungslänge

Mitglieder
  • Mitglieder insgesamt: 25519
  • Letzte: oli66
Statistiken
  • Beiträge insgesamt: 730220
  • Themen insgesamt: 58910
  • Heute online: 607
  • Am meisten online: 2287
  • (22.01.2020, 19:20:24)
Benutzer Online

Autor Thema:  Cron Befehl mit einer Passwortabfrage  (Gelesen 407 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Cron Befehl mit einer Passwortabfrage
« am: 04.03.2021, 18:10:46 »
Hallo allerseits,

Ich habe mir ein kleines Skript geschrieben welches automatisch eine verschlüsselte Festplatte mountet. Wenn ich das Skript über das Terminal oder Dateien starte bekomme ich beim Entschlüsseln eine normale Passwortabfrage. Nun wollte ich dieses Skript über den Crontab meines Benutzer ausführen nur bekomme ich dabei nie ein Terminal Fenster in welchen ich mein Passwort eingeben könnte.
Ich habe schon einiges versucht, wie ein Terminal zu starten in den der Befehl ausgeführt wird:
* * * * * gnome-terminal --display=:0.0 -- ./EncryptHDD (Befehl in der Crontab Datei)
Was die variable Display bedeutet habe ich noch nicht ganz verstanden allerdings habe ich beim suchen danach auch nicht mehr herausgefunden.
Wie ich cron oder crontab benutze weiß ich und habe auch schon verschiedenen Beispielskripte getestet nur das mit der Passwortabfrage hat noch nicht funktioniert.

Ich hoffe ihr könnt mir helfen und ich bedanke mich jetzt schon mal für eure Hilfe

Zu meinem System:
Kernel: 5.4.0-65-generic x86_64 bits: 64 compiler: gcc v: 9.3.0 Desktop: Cinnamon wm: muffin dm: LightDM Distro: Linux Mint 20.1 Ulyssa base: Ubuntu 20.04 focal

Re: Cron Befehl mit einer Passwortabfrage
« Antwort #1 am: 05.03.2021, 12:57:27 »
Zitat
* * * * * gnome…
Ich nutze kein cron, aber würde das so lesen, dass durch die Sternchen angeben wird, dass egal welche Zahl für Jahr, Monat, Tag, Stunde und Minute ermittelt wird, das hinterlegte Kommando ausgeführt werden soll. Und das würde bedeuten, dass du nicht mehr zum Arbeiten kommst, weil jede Minute ein Terminal aufpopt.
Aber mal ganz ab davon. Die Stärke von cron liegt darin, Dinge die im Hintergrund passieren sollen, zu automatisieren. (Wobei man das heute auch unter systemd mit unit und timer erledigen kann.) Wenn aber eine Interaktion mit dem Benutzer erfolgen soll, da wird es schon schwierig, weil cron nicht weiß auf welchen Bildschirm etwas ausgegeben werden soll, weshalb du den auch übergeben solltest.

Wahrscheinlich soll die die externe Platte nur einmalig eingebunden werden und das nach dem Systemstart(?). Da bietet es sich doch an, dies über Startprogramme (im Menü) zu konfigurieren. Der Vorteil: Da dies schon innerhalb der grafischen Sitzung geschieht, fällt die Fehlerquelle mit der Variable DISPLAY schon mal weg und es wird nur einmalig ausgeführt.

Re: Cron Befehl mit einer Passwortabfrage
« Antwort #2 am: 05.03.2021, 15:23:53 »
Hi :)
ganz einfach.. cron wird als system task gestartet ;) also ist bereits root.. daher kein pw :)

Re: Cron Befehl mit einer Passwortabfrage
« Antwort #3 am: 05.03.2021, 17:11:56 »
Hi :)
ganz einfach.. cron wird als system task gestartet ;) also ist bereits root.. daher kein pw :)

Cronjobs, die man als Benutzer mit crontab -e anlegt, werden auch als dieser Benutzer ausgeführt. Sonst könnte sich ja jeder Benutzer root Rechte erschleichen mit einem einfachen Cronjob.

Gruß
Whitie

Re: Cron Befehl mit einer Passwortabfrage
« Antwort #4 am: 05.03.2021, 18:20:08 »
Erstmal vielen Dank für eure Antworten.

Zitat
Und das würde bedeuten, dass du nicht mehr zum Arbeiten kommst, weil jede Minute ein Terminal aufpopt.
Ja du hast richtig interpretiert das die Sternchen für Minute, Stunde, Tag, usw. stehen. Nur habe ich das hier im meinem Beispiel Befehl vereinfacht ausgedrückt weil ich dachte wenn da so was wie:
17 * * * * gnome...
verwirrt das nur noch mehr. Ich habe ja erstmal nur testweise herausfinden wollen ob der Befehl über cron korrekt ausgeführt wird. Bei meinen Test habe ich das immer so eingestellt das der Zeitpunkt für die Ausführung kurz nach dem ändern den crontab files war.
Ich habe eine HDD die nur für BackUps gemountet wird und das auch nur ein mal am Tag. Das Skript dahinter funktioniert einwandfrei nur gibt es dabei eine Passwortabfrage welche ohne entsprechendes Terminal-Fenster nicht möglich ist.
Zitat
Wenn aber eine Interaktion mit dem Benutzer erfolgen soll, da wird es schon schwierig, weil cron nicht weiß auf welchen Bildschirm etwas ausgegeben werden soll, weshalb du den auch übergeben solltest.
Berichtige mich wenn ich falsch liege aber ich dachte dafür wäre die Variable DISPLAY da?

Zu den anderen zwei Posts:
Die Passwortabfrage ist keine zum root- / adminpasswort. Ich möchte eine HDD entschlüsseln welche mit einem anderen Passwort gesichert ist. Zu der Thematik mir Root und cronjobs gibt es schon einige Posts und Lösungen die ich mir angeschaut habe.

Re: Cron Befehl mit einer Passwortabfrage
« Antwort #5 am: 06.03.2021, 10:23:12 »
Vielleicht ist cron das falsche Werkzeug für deine Aufgabe.

Ich muss raten, du kannst bitte mal folgendes versuchen
17 * * * * env DISPLAY=:0 /pfad/zum/skriptoder stattdessen mal
DISPLAY=:0 in den Anfang deines Skripts schreiben

Hast du mal eine Ausgabe mitgeschrieben?
17 * * * * env DISPLAY=:0 your_script >/pfad/zur/ausgabe_datei

Re: Cron Befehl mit einer Passwortabfrage
« Antwort #6 am: 06.03.2021, 11:20:37 »
Hallo pinky,
17 * * * * env DISPLAY=:0 /pfad/zum/skripthabe ich ausprobiert und hatte leider keine Effekt (immer noch kein Fenster) auch Display=:0 in den Anfang meines Skriptes (welchen über cron ausgeführt wird) zu schreiben hat leider nicht verändert.
Die Ausgabe enthielt keinerlei Text was seltsam ist, da vor der Passwortabfrage noch die Ausgabe vom Mounten der HDD kommen müsste. Ich habe euch hier mal das skript und die eigentliche Ausgabe mithin geschrieben:

udisksctl unlock -b /dev/disk/by-uuid/... >> /pfad/zum/skript/Encrypting.log
sleep 2
udisksctl mount -b /dev/mapper/luks-... >> /pfad/zum/skript/Encrypting.log
sleep 2
sudo timeshift --create
udisksctl unmount -b /dev/mapper/luks-...>> /pfad/zum/skript/Encrypting.log
sleep 2
udisksctl lock -b /dev/disk/by-uuid/... >> /pfad/zum/skript/Encrypting.log
sleep 2


Re: Cron Befehl mit einer Passwortabfrage
« Antwort #7 am: 06.03.2021, 11:23:54 »
* * * * * DISPLAY=:0 gnome-terminal -- /pfad/zu/EncryptHDD
Edit:
Allerdings würde ich das Skript auch über Startprogramme aufrufen, so wie get_well(soon) es in Antwort #1 bereits angemerkt hat.
« Letzte Änderung: 06.03.2021, 12:08:00 von ZeckeSZ »

Re: Cron Befehl mit einer Passwortabfrage
« Antwort #8 am: 06.03.2021, 13:27:41 »
Hey ZeckeSZ,

danke für die Idee die Variable Display=:0 vor den restlichen Befehl zu setzten jetzt funktioniert es einwandfrei.
Vielen Dank an alle die mir geholfen haben