Dies ist relevant für Arch Linux (und möglicherweise für andere Distributionen, die Arch Linux verwenden systemd
). Ich möchte beim Booten eine TrueCrypt-Partition mounten. Bei den alten sysvinit
war dies mit einem Skript, das von aufgerufen wurde, ziemlich einfach rc.local
.
Ich bin zu meinem aktuellen Stand gekommen, indem ich einen Arch-Forenthread entführt habe . Es gibt einen anderen Thread, in dem dieser systemd-devel-Thread als "die Lösung haben" bezeichnet wird, für mich ist es jedoch nicht ersichtlich, was es tatsächlich ist, und der OP hat den letzten Post, der besagt, dass er sein Ziel nicht erreichen konnte.
So wie es aussieht, tut diese Person es, suchte jedoch nach einer Möglichkeit, fortlaufende Startnachrichten zu deaktivieren, während sie das Kennwort eingibt. Ich habe auch dort gepostet und ihn gebeten, seine aktuelle .service
Datei zu posten .
Bei einigen Suchanfragen wird erwähnt, dass sie erfolgreich waren oder dass dies möglich ist, aber es wird nicht genau angegeben, wie die Lösung lautete.
Ich bin zwar in der Lage, die Partition über einen systemd
Dienst von der Befehlszeile zu entsperren (was mir wiederum die Möglichkeit gibt, die Bereitstellung beim Herunterfahren / Neustarten automatisch aufzuheben), muss dies aber nach dem Anmelden manuell tun. Ich möchte wirklich, dass der Startvorgang pausiert und mich nach dem Kennwort fragt.
Hier ist mein aktuelles Skript:
[Unit]
Description=Truecrypt Setup for vault
#DefaultDependencies=no
#Conflicts=umount.target
#Before=umount.target
#After=systemd-readahead-collect.service systemd-readahead-replay.service
#After=cryptsetup.target
[Service]
Type=oneshot
RemainAfterExit=yes
#StandardInput=tty-force
ExecStart=/bin/sh -c '/usr/bin/truecrypt -t --protect-hidden=no -k "" --filesystem=none --slot=1 -p `systemd-ask-password "Enter password for truecrypt volume: "` /dev/sda4'
ExecStop=/usr/bin/truecrypt --filesystem=none -d /dev/sda4
[Install]
WantedBy=multi-user.target
Ich habe das kommentierte Zeug in gelassen [Unit]
, als ich irgendwann auf Vorschläge stieß, dass es dort sein sollte, aber ich hatte Probleme damit. Das obige scheint nach dem Booten / Einloggen einwandfrei zu funktionieren ... nur nicht während.
quelle
sudo systemctl start truecrypt-vault
, gib dassu
Passwort ein, gib das TC Volume Passwort ein und dannstartx
. Sicher könnte ich mir die Passwortabfrage beim Booten anzeigen lassen, um die zusätzlichen Schritte nach dem Login zu vermeiden?plymouth
, ist es wahrscheinlich, dass bei Diensten, die parallel gestartet werden , eine Kennwortabfrage an der Konsole verloren geht.startx
manuell auf Runlevel 3 . Kein Login Manager. Aber ja, ich muss die Startmeldungen anhalten, während ich den Text eingebe, sonst verschwindet er einfach vom Bildschirm.systemd
hat einen Agenten , der ein Passwort anfordern kann, so dass Sie in diese Richtung schauen können.Antworten:
ExecStart=
systemd-ask-password <PROMPT>
lesen Sie das Kennwort aus der Standardausgabe und geben Sie es in der erforderlichen Weise an truecrypt weiterexec
vom Ende Ihres Skripts an TrueCrypt zu verwenden, um einen zusätzlichen Bash-Prozess zu vermeidenDies veranlasst systemd, das Passwort sofort abzufragen (wenn Sie Apache mit systemctl starten) oder einen der sogenannten Agenten zu verwenden (es gibt Standard-Agenten, die während des Systemstarts über wall oder direkt auf der Konsole nach Passwörtern fragen). Dies ist das Beste, was Sie tun können, um konform zu bleiben.
quelle
Ich habe diesen Beitrag auf Unix StackExchange gefunden: rc.local mit read gibt keine Tastatureingaben aus.
Ich denke, Sie könnten die verwendete Lösung ausprobieren
quelle