Atualmente, faço isso para montar meu pendrive criptografado:
# Works!
pass thumbdrive-password | # get device password entry from password manager
head -n 1 | # get the device password itself
sudo cryptsetup luksOpen /dev/sdb thumbdrive # unlock device
udisksctl mount -b /dev/mapper/thumbdrive # mount device
Eu gostaria de fazer algo assim em vez disso:
# Does not work!
pass thumbdrive-password |
head -n 1 |
udisksctl unlock -b /dev/sdb # unlock device
udisksctl mount -b /dev/mapper/luks-foobar # mount device with uuid "foobar"
Isso permitiria que usuários semiprivilegiados (com permissão para org.freedesktop.udisks2.filesystem-mount
no polkit) montassem sistemas de arquivos criptografados sem usar o sudo. Os Udisks não aceitarão esse método de canalização, porque ele usa um prompt de senha interativo. Como posso fornecer a senha do meu dispositivo udisksctl unlock
sem digitá-la manualmente?
Para udisks versão 2.6.4 e posterior
Nota: eu não testei isso. Assim que obtiver o udisks 2.6.4 (sempre que https://github.com/NixOS/nixpkgs/pull/41723 for portado para o NixOS estável).
Atualização: agora tenho udisks 2.8.0, então posso testar minha solução. A única coisa que perdi foi remover a nova linha à direita da saída de
pass (...) | head (...)
. Para aparar isso, use o-n
sinalizador comecho
, ou anexe| tr -d '\n'
àhead
saída . Refleti isso em minhas duas soluções abaixo.Solução genérica (não segura)
Use o
--key-file
sinalizador e substitua a string de senha no lugar de um arquivo-chave. Para desbloquear/dev/sdb
com a senhahunter2
:Passar dados confidenciais diretamente pela linha de comando não é seguro, portanto, esse método deve ser evitado.
pass
implementaçãoEm vez disso, recupere a string de senha com
pass thumbdrive-password | head -n 1
, corte a nova linha à direita e substitua-a no lugar de um arquivo-chave:O problema é que os dados não são lidos,
stdin
mas do terminal de controle:Você pode usar a solução alternativa sugerida por frostschutz ou usar truques para fazer a entrada do pipeline aparecer no terminal de controle, por exemplo, com
expect
ousocat
.nunca é tarde para contribuir. Eu simplesmente executo #sudo apt-get install udisks2-lvm2 e ele é montado automaticamente. Kubuntu 20.4 - adaptador USB para disco SATA de 1 TB.