AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1053343
Accepted
brunoais
brunoais
Asked: 2018-07-09 13:26:58 +0800 CST2018-07-09 13:26:58 +0800 CST 2018-07-09 13:26:58 +0800 CST

Montagem de unidade criptografada LUKS atrasada com prompt de senha não pedindo senha visivelmente

  • 772

Eu tenho uma configuração ubuntu MATE 18.04 LTS (GNU/Linux 4.15.0-23-generic x86_64). Quero ter um $HOME criptografado enquanto o restante permanece não criptografado. Além disso, decidi usar btrfs com algoritmo de compactação zstd (o "porquê" está fora do escopo desta questão).

Devido a como o PC será usado. É necessário aguardar a Internet até que a senha de descriptografia seja necessária; nesse ponto, a senha pode ser solicitada ao usuário de qualquer forma.

No começo, encontrei estes sintomas:

Se eu deixar tudo /home/myUsercriptografado, não consigo fazer o login. Depois de preencher a senha, fico pendurado .... Até que o tempo limite aconteça e o lightdm desista de fazer login. Se eu usar um tty diferente, também fico pendurado, exceto que $HOME é alterado para "/"

Se eu mudar, em fstab o diretório de montagem para algum lugar dentro $HOMEde , posso fazer o login normalmente, mas nunca recebo a solicitação para preencher a senha quando desejo acessar o diretório criptografado (embora o diretório esteja visível ao fazer ls).

Após investigação, descobri que:

  1. se eu logar com sucesso,
  2. tente acessar /home/myUser/crypt(veja abaixo)
  3. em seguida, execute systemd-tty-ask-password-agent --queryem um terminal,

há uma senha esperando para ser preenchida.

Também notei que, se em vez de executar o terminal, eu apenas parar o lightdm e permanecer no tty7, o texto "Insira a senha com a ferramenta systemd-tty-ask-password-agent!" parece.
Nesse ponto, não consigo voltar ao lightdm naquele tty. Em vez disso, tenho que usar um tty diferente para fazer login, preencher a senha e agora a montagem foi concluída e tudo está funcionando corretamente.

Meu objetivo é ter um prompt de senha da GUI para a senha no momento em que o diretório precisa ser montado. Qualquer programa pode iniciar a montagem, mas preciso que o usuário obtenha o prompt visivelmente sem a necessidade de executar ferramentas extras.

Também tentei fazer um keyscriptpara usar com o crypttab, que iniciaria o prompt de comando e solicitaria a senha, mas não estava iniciando. Eu acho que porque não havia nenhum arquivo de chave.


Abaixo, estou usando, noauto,x-systemd.automountmas também poderia usar _netdeve obter quase os mesmos sintomas acima.
Ao usar _netdev, a única diferença é que o prompt de senha de criptografia (como texto) pisca na tela logo antes de o lightdm iniciar o Xorg.


/etc/fstab

/dev/mapper/encryptedHome   /home/myUser    btrfs    user,noauto,x-systemd.automount,x-systemd.device-timeout=10,compress=zstd,lazytime,relatime   0 0

/etc/fstab (tentativa alternativa que me permite fazer o login):

/dev/mapper/encryptedHome   /home/myUser/crypt    btrfs    user,noauto,x-systemd.automount,x-systemd.device-timeout=10,compress=zstd,lazytime,relatime   0 0

/etc/crypttab

encryptedHome  UUID="92ab7f24-c744-4f1a-8363-c1fa157d1c12"  - luks,noauto

Nota: Em meus sinalizadores de inicialização do Linux, removi a splashopção; por causa disso, vejo todo o texto tty até que o Xorg seja iniciado.

encryption fstab mount
  • 1 1 respostas
  • 1438 Views

1 respostas

  • Voted
  1. Best Answer
    brunoais
    2018-08-30T13:02:04+08:002018-08-30T13:02:04+08:00

    Para reutilizar a senha que você inseriu ao fazer login e obter sua casa criptografada, digitando sua senha apenas uma vez, uma solução possível é usar pam_mount
    https://wiki.archlinux.org/index.php/pam_mount

    Primeiro, você pode instalá-lo usandoapt install libpam-mount

    Então, você precisa configurar o pam_mount para reutilizar a senha.
    Para isso, crie um arquivo em /etc/security/pam_mount.conf.xmlcom o seguinte conteúdo:

    <volume user="user" fstype="crypt" path="/dev/disk/by-partuuid/96au7f24-gbshmec6wwabhh30" mountpoint="/dev/mapper/user_home"/>
    <volume user="user" fstype="auto" path="/dev/mapper/user_home" mountpoint="/home/user"/>
    

    Você pode fazer tudo com apenas uma tag de volume, mas não consegui porque precisava fazer uma montagem vinculada.

    Observe que pode ser necessário usar algumas opções, definidas como atributos da volumetag, como:

    options="bind,rw,user,exec,suid,noauto,lazytime,relatime"
    

    Você pode aprender mais sobre o que cada um é nas mountpáginas de manual.

    Finalmente, crie o arquivo /etc/pam.d/system-logine escreva o seguinte:

    #%PAM-1.0
    
    auth       required   pam_tally.so         onerr=succeed file=/var/log/faillog
    auth       required   pam_shells.so
    auth       requisite  pam_nologin.so
    auth       optional   pam_mount.so
    auth       include    system-auth
    
    account    required   pam_access.so
    account    required   pam_nologin.so
    account    include    system-auth
    
    password   optional   pam_mount.so
    password   include    system-auth
    
    session    optional   pam_loginuid.so
    session    optional   pam_keyinit.so       force revoke
    session [success=1 default=ignore]  pam_succeed_if.so  service = systemd-user quiet
    session    optional   pam_mount.so
    session    include    system-auth
    session    optional   pam_motd.so          motd=/etc/motd
    session    optional   pam_mail.so          dir=/var/spool/mail standard quiet
    -session   optional   pam_systemd.so
    session    required   pam_env.so
    

    Eu não sei exatamente o que cada um deles faz individualmente, mas é isso que eu precisava ter lá para que a montaria funcionasse como eu queria.

    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve