Isso é relevante para o Arch Linux (e talvez outras distribuições usando systemd
). Eu quero montar uma partição TrueCrypt na inicialização. Com o antigo sysvinit
, isso era bastante direto com um script chamado por rc.local
.
Cheguei ao meu atual, seqüestrando um tópico do fórum Arch . Há outro tópico em que esse tópico do systemd-devel é mencionado como "ter a solução", no entanto, para mim não é aparente o que realmente é, e o OP tem o último post afirmando que ele não foi capaz de atingir seu objetivo.
Pelo que parece, essa pessoa está fazendo isso, mas estava procurando uma maneira de desativar as mensagens de inicialização contínuas enquanto digita a senha. Eu postei lá também pedindo para ele postar seu .service
arquivo real .
Ao pesquisar um pouco, as pessoas mencionam que foram bem-sucedidas ou que são possíveis, mas não explicam exatamente qual era a solução.
Eu sou capaz de desbloquear a partição da linha de comando por meio de um systemd
serviço (o que, por sua vez, me permite desmontá-la automaticamente no desligamento / reinicialização), mas preciso fazer isso manualmente uma vez logado. Eu realmente gostaria que o processo de inicialização parasse e me pedisse a senha.
Aqui está o meu script atual:
[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
Deixei o material comentado [Unit]
, pois em algum momento encontrei sugestões de que ele deveria estar lá, mas tive problemas com ele. O acima parece funcionar bem após a inicialização / login ... apenas não durante.
fonte
sudo systemctl start truecrypt-vault
, digite asu
senha, digite a senha do TC Volume e, em seguidastartx
. Certamente eu poderia me apresentar a solicitação de senha durante a inicialização para evitar as etapas extras após o login?plymouth
, é provável que qualquer solicitação de senha no console seja perdida nos serviços iniciados em paralelo.startx
manualmente. Nenhum gerenciador de login. Mas sim, eu faço necessidade de parar as mensagens de inicialização enquanto eu digite o texto, caso contrário ele vai simplesmente desaparecer fora da tela.systemd
tem um agente que pode solicitar uma senha, então você deve olhar nessa direção.Respostas:
ExecStart=
systemd-ask-password <PROMPT>
, leia a senha de seu stdout e alimente-a para recifrá-la da maneira que for necessáriaexec
corrigir novamente o script no final do seu script para não deixar um processo adicional do bash por aíIsso fará com que o systemd consulte a senha imediatamente (se você iniciar o apache usando o systemctl) ou usando um dos chamados agentes (existem os padrão que solicitam senhas usando o wall ou diretamente no console durante a inicialização do sistema). Essa é a melhor coisa que você pode fazer para manter a conformidade.
fonte
Eu encontrei este post no Unix StackExchange: rc.local com read não ecoará pressionamentos de tecla
Acho que você poderia tentar a solução usada
fonte