encriptar_arch.sh
Executa encriptação do diretório "home" de um usuário determinado com fscrypt na distribuição Arch Linux com ext4. Altere as variáveis no cabeçalho antes da execução. Se não tiver o fscrypt, o script instala. Como proceder: coloque o script no diretório root, execute com root em tty (alt+f2) com o usuário deslogado.
Descrição
Executa encriptação do diretório "home" de um usuário determinado com fscrypt na distribuição Arch Linux com ext4. Altere as variáveis no cabeçalho antes da execução. Se não tiver o fscrypt, o script instala. Como proceder: coloque o script no diretório root, execute com root em tty (alt+f2) com o usuário deslogado.
#!/bin/bash
ALVO_USER="xerxes"
ALVO_GROUP="users"
PARTICAO="/dev/nvme0n1p2"
if [ "$EUID" -ne 0 ]; then
exit 1
fi
if ! command -v fscrypt >/dev/null 2>&1; then
pacman -S --noconfirm fscrypt || exit 1
fi
tune2fs -O encrypt "$PARTICAO"
fscrypt setup --quiet
fscrypt setup / --quiet
mv "/home/$ALVO_USER" "/home/${ALVO_USER}-backup"
mkdir "/home/$ALVO_USER"
chown "$ALVO_USER:$ALVO_GROUP" "/home/$ALVO_USER"
if fscrypt encrypt "/home/$ALVO_USER" --user="$ALVO_USER"; then
cp -a "/home/${ALVO_USER}-backup/." "/home/$ALVO_USER/"
rm -fr "/home/${ALVO_USER}-backup"
sed -i '/pam_fscrypt\.so/d' /etc/pam.d/system-auth
sed -i '/pam_fscrypt\.so/d' /etc/pam.d/system-login
sed -i '/^auth.*include.*system-auth/a auth\t\toptional\tpam_fscrypt.so' /etc/pam.d/system-login
sed -i '/^password.*include.*system-auth/a password\toptional\tpam_fscrypt.so' /etc/pam.d/system-login
sed -i '/^session.*include.*system-auth/a session\t\toptional\tpam_fscrypt.so drop_privileges' /etc/pam.d/system-login
else
rm -fr "/home/$ALVO_USER"
mv "/home/${ALVO_USER}-backup" "/home/$ALVO_USER"
exit 1
fi