Systemd hizmeti ile önyükleme sırasında parola sor


16

Bu Arch Linux (ve belki de diğer dağıtımları systemd) ile ilgilidir. Önyükleme sırasında bir TrueCrypt bölümü bağlamak istiyorum. Eski ile sysvinit, bu denilen bir komut dosyası ile oldukça basitti rc.local.

Bir Arch forum iş parçacığını ele geçirerek benim akım var . Başka var parçacığı bu systemd-devel iplik olarak konuşulan bir "çözüm sahip" ancak bunun gerçekte ne benim için çok açık değil ve OP onun hedefi gerçekleştirmek mümkün değildi belirten son yayın yok.

Görünüşe göre bu kişi yapıyor, ancak şifreyi yazarken sürekli önyükleme mesajlarını kapatmanın bir yolunu arıyordu. Orada yayınladım ve onun asıl .servicedosyasını göndermesini istedim .

Biraz arama yaparken, insanlar başarılı olduklarını veya mümkün olduğunu söylüyorlar, ancak çözümün tam olarak ne olduğunu açıklamıyorlar.

Ben bir systemdhizmet aracılığıyla (böylece sırayla bana otomatik olarak kapatma / yeniden başlatma sırasında sökme yeteneği verir) bölümü komut satırından kilidini mümkün olmakla birlikte , ama ben bir kez giriş yaptıktan sonra elle yapmak zorunda. d gerçekten önyükleme işlemi gibi duraklatmak ve bana parola sormak gibi.

İşte mevcut senaryom:

[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

Yorumlanan şeyleri bıraktım, bir [Unit]noktada orada olması gerektiğine dair önerilerde bulundum, ancak sorun yaşadım. Yukarıdaki önyükleme / giriş sonra iyi çalışıyor gibi görünüyor ... sırasında değil.


Anladığım kadarıyla, iletileri günlüğe kaydetmeyle kesintiye uğramak istemiyorsanız, birim dosyasında bir engel oluşturmanız gerekir - yani, tüm hizmetlerin bitmeden (başlatma) önce başlatılmasını gerektirir ve engellenir sonra çalışan herhangi bir hizmet. Ulaşmaya çalıştığınız şey bu mu?
peterph

@peterph Istemi almak zaman TrueCrypt tarafından gerekli ne çalışıyorsa sürece önemli olduğunu sanmıyorum. Diğer şeyler buna bağlı değildir, çünkü bu sadece dosyaları depolamak için bir birimdir; bu nedenle, şifreyi girerken diğer şeyler arka planda yüklenebilir. Şu anda giriş yapmak için bekliyorum, sonra manuel olarak başlayıp sudo systemctl start truecrypt-vault, suşifre girin, TC Volume şifresini girin, sonra startx. Kesinlikle giriş yaptıktan sonra ekstra adımları önlemek için bana şifre istemi önyükleme sırasında sundu?
Hendy

Bu benim amacımdı ve aslında sizinki de (soru konusu bile) - önyükleme sırasında parola istemi almak için. Gibi grafik önyükleme kullanmıyorsanız plymouth, paralel olarak başlayan hizmetlerde konsoldaki herhangi bir parola isteminin kaybolması muhtemeldir.
peterph

Ah. Hizmetleri durdurduktan sonra mı yoksa önceki tüm hizmetlerin başladığından emin olmak mı istediğimi düşündüğünü sanıyordum ... Emin değilim ve elimden geldiğince cevap vermeye çalıştım. Ben sadece metin giriş ve startxmanuel olarak çalışma seviyesi 3 önyükleme . Giriş yöneticisi yok. Ama evet, bunu aksi takdirde sadece ekran dışına ortadan edeceğiz, ben metin girmek ederken açılış mesajlarını durdurmak için gereğini.
Hendy

8
Eh, systemdbir sahip ajan , bu yönde böylece youmight görünüm şifre talep edebilir.
peterph

Yanıtlar:


2
  • Bir sarıcı komut dosyası yazın ve içine koyun ExecStart=
  • Sarma komut dosyasında, systemd-ask-password <PROMPT>stdout'tan şifreyi okuyun, okuyun ve gereken şekilde truecrypt'e besleyin
  • execEtrafta fazladan bir bash işlemi bırakmamak için betiğinizin sonundan doğru kodlamayı unutmayın.

Bu, systemd sorgusunu hemen (sistemctl kullanarak apache başlatırsanız) veya aracılardan birini (sistem önyüklemesi sırasında duvardan veya doğrudan konsoldan parola isteyen varsayılanlar vardır) kullanarak yapar. Bu, uyumlu kalmak için yapabileceğiniz en iyi şeydir.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.