dm-crypt (Português)/Mounting at login (Português) - ArchWiki

Jump to content

# dm-crypt (Português)/Mounting at login (Português)

From ArchWiki
< Dm-crypt (Português)

Related articles

- pam_mount

The factual accuracy of this article or section is disputed.

Reason: Poderia se beneficiar do uso de unidades instanciadas, por exemplo `cryptsetup@.service` (Discuss in Talk:Dm-crypt (Português)/Mounting at login (Português))

É possível configurar o PAM e o systemd para montar automaticamente uma partição dm-crypt criptografada do diretório pessoal (home) quando o usuário fizer login, e desmontá-la quando ele fizer logout.

Este tutorial assume que você já criou sua partição criptografada, conforme descrito em Dm-crypt/Encrypting a non-root file system.

Note

- Você precisa usar a mesma senha para sua conta de usuário e para o LUKS.
- Em todos os exemplos, substitua `username` pelo seu nome de usuário, `1000` pelo seu ID de usuário e `PARTITION` pelo nome do dispositivo da sua partição criptografada.

## Desbloqueando no login

O pam_exec pode ser usado para desbloquear o dispositivo no momento do login. Edite `/etc/pam.d/system-login` e adicione a linha abaixo (em negrito) após `auth include system-auth`:

This article or section needs expansion.

Reason: GDM, LightDM e talvez outros gerenciadores de exibição possam exigir `pam_exec` também para `session`, veja Talk:Dm-crypt/Mounting at login#pam_exec required for session & using script. (Discuss in Talk:Dm-crypt (Português)/Mounting at login (Português))

    /etc/pam.d/system-login

    ...

    auth       include    system-auth
    auth       optional   pam_exec.so expose_authtok /etc/pam_cryptsetup.sh

    ...

Em seguida, crie o script mencionado.

    /etc/pam_cryptsetup.sh

    #!/bin/sh

    CRYPT_USER="username"
    PARTITION="/dev/sdXY"
    NAME="home-$CRYPT_USER"

    if [ "$PAM_USER" = "$CRYPT_USER" ] && ! [ -e "/dev/mapper/$NAME" ]; then
        /usr/bin/cryptsetup open "$PARTITION" "$NAME"
    fi

Torne o script executável.

## Montagem e desmontagem automáticas

O systemd-logind mantém o serviço `user@1000.service` ativo enquanto houver ao menos uma sessão ativa do usuário. Ele é iniciado automaticamente após o primeiro login bem-sucedido e finalizado após o logout da última sessão. Portanto, podemos criar e habilitar uma unidade systemd.mount(5) para o volume mapeado e conectá-la a `user@1000.service` para que seja montada e desmontada automaticamente:

    /etc/systemd/system/home-username.mount

    [Unit]
    Requires=user@1000.service
    Before=user@1000.service

    [Mount]
    Where=/home/username
    What=/dev/mapper/home-username
    Type=btrfs
    Options=defaults,relatime,compress=zstd

    [Install]
    RequiredBy=user@1000.service

## Bloqueio após desmontar

Após desmontar, o dispositivo ainda permanecerá desbloqueado, permitindo montá-lo novamente sem digitar a senha. (Ao desligar ou reiniciar, a partição será bloqueada porque a chave é removida da RAM, mas apenas desmontar não a bloqueará.) Você pode criar e habilitar um serviço que é iniciado quando o dispositivo é desbloqueado (`BindsTo=dev-mapper-home\x2dusername.device`) e é encerrado após o dispositivo ser desmontado (`Requires,Before=home-username.mount`), bloqueando o dispositivo no processo (`ExecStop=cryptsetup close`):

    /etc/systemd/system/cryptsetup-username.service

    [Unit]
    DefaultDependencies=no
    BindsTo=dev-PARTITION.device
    After=dev-PARTITION.device
    BindsTo=dev-mapper-home\x2dusername.device
    Requires=home-username.mount
    Before=home-username.mount
    Conflicts=umount.target
    Before=umount.target

    [Service]
    Type=oneshot
    RemainAfterExit=yes
    TimeoutSec=0
    ExecStop=/usr/bin/cryptsetup close home-username

    [Install]
    RequiredBy=dev-mapper-home\x2dusername.device

Note `dev-PARTITION` é o resultado de `systemd-escape -p /dev/PARTITION`
Category:

- Data-at-rest encryption (Português)

Hidden categories:

- Pages or sections flagged with Template:Accuracy
- Pages or sections flagged with Template:Expansion

dm-crypt (Português)/Mounting at login (Português)
Add topic