Quando clico nautilus
ou caja
clico no ícone de um disco criptografado e digito minha senha, o dispositivo de bloco subjacente é mapeado /dev/mapper/luks-$UUID
e montado /media/$USER/$DISK
, sem a necessidade de senha root. Existe uma maneira de chamar esse processo a partir da linha de comando, sem a GUI, incluindo a eliminação do sudo e a possibilidade de o ponto de montagem ser desmontado novamente da GUI.
11
udisks
(ouudisks2
). Investigar as opções do seu utilitário CLI pode fornecer respostas adicionais.Respostas:
Não conheço uma maneira de comando único para fazer isso. Os programas da GUI estão fazendo um bom interrogatório sobre o disco para adotar a abordagem "correta" e você precisará fazer parte desse trabalho. Você não precisa do sudo e acho que a sequência de eventos resultante é relativamente indolor.
A resposta curta
Use a
udisksctl
partir doudisks2
pacote:Sua conta de usuário precisará ser devidamente autorizada para que o procedimento acima funcione. No Debian e no Ubuntu, isso significa adicionar sua conta ao
plugdev
grupo.Quando você terminar o disco:
Como configurar as coisas
Veja como você pode configurar as coisas (via linha de comando) para tornar o processo de usar o disco o mais simples possível. Suponho que você queira usar a totalidade da unidade USB como um único sistema de arquivos. Outras configurações exigirão modificações nas instruções. Advertência sobre variações: não encontrei uma maneira de usar o LVM no contêiner criptografado que permitirá que uma conta sem privilégios desconecte tudo. (Não vejo uma maneira de desativar um grupo de volumes via
udisksctl
.)Para fins de ilustração, diremos que o disco é
/dev/sda
. Você precisará de um nome para o sistema de arquivos para facilitar a referência posteriormente. Eu vou usar "example
".Particionar o disco
Execute
sudo parted /dev/sda
e execute os seguintes comandos:O
mkpart
comando provavelmente solicitará que você ajuste ligeiramente os parâmetros. Você deve aceitar os números recomendados.A partição estará agora disponível via
/dev/disk/by-partlabel/example-part
.Criar e montar a partição LUKS
Siga as instruções.
O dispositivo criptografado está agora disponível em
/dev/mapper/example-unlocked
. Isso não será permanente; é apenas para o processo de instalação.Crie seu sistema de arquivos
Vamos supor que o sistema de arquivos que você está usando seja XFS. Praticamente qualquer outro sistema de arquivos tradicional funcionará da mesma maneira. O importante é adicionar um rótulo que você possa fazer referência posteriormente:
O dispositivo de bloco do sistema de arquivos agora pode ser acessado via
/dev/disk/by-label/example
.Definir permissões do sistema de arquivos
Por padrão, o sistema de arquivos estará acessível apenas pela raiz. Na maioria dos casos, você provavelmente deseja que os arquivos sejam acessíveis por sua conta de usuário. Supondo que o nome da sua conta seja "
user
":Fechar tudo para baixo
Use seu sistema de arquivos
Isto é o que você fará regularmente. Depois de conectar a unidade USB,
Se sua conta de usuário for "
user
", o sistema de arquivos será montado em/media/user/example
.Para desmontar o sistema de arquivos:
Agora você pode desconectar a unidade USB.
fonte
A resposta de asciiphil parece-me correta e deve ser marcada como tal.
Começa: "Não conheço uma maneira de comando único para fazer isso". Também não abri uma solicitação de recurso correspondente . Como solução alternativa, é possível criar um script de wrapper para fornecer uma maneira de comando único para desbloquear e montar uma partição.
Supondo que você use o Bash, salve o script abaixo como, por exemplo
unlock-and-mount
, torne-o executável e coloque-o em um diretório no seuPATH
. Você poderá desbloquear e montar um dispositivo em uma única etapaunlock-and-mount /dev/disk/by-id/my-device-part-X
.Aviso: isso depende da análise das mensagens enviadas
udisksctl
para stdout e da estabilidade daudisksctl
interface da linha de comandos. Isso é frágil, de acordo com audisksctl
página de manual , que diz:Enquanto isso, aqui está o script, que funciona por enquanto:
fonte
Isso usará a chave armazenada pelo Nautilus / Nemo:
gio mount -d /dev/dm-x
Para detalhes, veja esta resposta .
fonte