Make Luks
Publicado por Daniel R. (última atualização em 01/12/2020)
[ Hits: 1.530 ]
Homepage: danrtavares.blogspot.com
Este script facilita o uso de arquivos ou dispositivos criptografados com o "cryptsetup". Com ele é possível:
- criar arquivos criptografados
- criptografar drives / pendrives
- montar arquivos, drives e pendrives
Você pode inclusive associar arquivos com extensão "luks" (que ele cria automaticamente) para ser aberto com este script, bastando dar 2x cliques nele para ser facilmente montado, para isso marque a opção "executar no terminal".
#!/bin/bash
#Versao: 1.5
#Define a cifra, pode ser: twofish, aes, serpent
ciph=twofish
#Define o sistema de arquivo a ser usado
form=ext2
#Rótulo padrão, caso não informado
label=pdcrypt
#####################################################################################
checksudo(){
echo "Entre com a senha do usuario:"
if [ $(sudo id -u) != 0 ]
then
echo "Parece que tem algo errado com a senha do usuário"
echo "Tente novamente quando tiver certeza sobre isso"
exit
fi
}
crypt(){
pass=$(mktemp)
chmod 600 "$pass"
cont=true
while $cont
do
read -s -p "Defina a senha de criptografia: " pwf
echo
if [ $pwf ]
then
read -s -p "Confirme a senha: " pwf2
if [ $pwf == $pwf2 ]
then
echo -n $pwf > "$pass"
cont=false
echo
else
echo
echo "Senhas não conferem, tente novamente"
fi
else
echo
echo "Senha em branco não!"
fi
done
read -p "Defina o nome do volume: " label
checksudo
echo "Iniciando o processo, aguarde..." ;
sudo cryptsetup luksFormat -q -c "$ciph"-xts-plain64 -s 512 -h sha512 -i 5000 -y "$pcrypt" --key-file "$pass" --type luks2
sudo cryptsetup luksOpen "$pcrypt" pdcrypt --key-file "$pass"
sudo mkfs.$form -L $label /dev/mapper/pdcrypt
sleep 5
sudo cryptsetup luksClose pdcrypt
shred -u "$pass"
echo "Tudo pronto! Para montar e desmontar, especifique o dispositivo ou arquivo como parâmetro"
echo "Ex: ./mk-luks.sh /dev/sdc1 ou ./mk-luks.sh teste.luks"
echo "Você pode associar arquivos *.luks para ser aberto com este script, mas marque a opção abrir no console"
exit
}
makedrive(){
clear
ls /dev/sd*
read -p "Entre com o dispositivo a ser formatado: /dev/" pcrypt
pcrypt=/dev/$pcrypt
clear
echo "Dispositivo selecionado: "$pcrypt
echo "Cifra a ser usada: "$ciph
echo "Sistema de arquivo a ser usado: "$form
while true; do
read -p "Tem certeza que deseja continuar? Dados poderão ser perdidos S ou N: " sn
case $sn in
[Ss]* ) crypt;;
[Nn]* ) exit;;
* ) echo "Responda S(sim) ou N(não): ";;
esac
done
}
makefile(){
clear
pcrypt=sem_nome
read -p "Defina o nome do arquivo: " pcrypt
pcrypt=$pcrypt.luks
read -p "Defina o tamanho do arquivo Ex: 100M, 1G : " size
clear
echo "Nome do arquivo: "$pcrypt
echo "Tamanho do arquivo: "$size
echo "Cifra a ser usada: "$ciph
echo "Sistema de arquivo a ser usado: "$form
echo "Aguarde..."
fallocate -l $size ~/$pcrypt
mv ~/$pcrypt $(dirname "$SCRIPT")/
crypt
}
if [[ $1 == "" ]]
then
while true; do
read -p "Deseja criar um arquivo(A) ou um drive(D) criptografado? " ad
case $ad in
[Aa]* ) makefile;;
[Dd]* ) makedrive;;
* ) echo "Responda A(arquivo) ou D(drive): ";;
esac
done
else
pcrypt=$1
if [[ -f $pcrypt || -e $pcrypt ]]
then
cryptsetup isLuks $pcrypt
if [ $? == 0 ]
then
UUID=$(cryptsetup luksUUID $pcrypt)
else
echo "Não é um arquivo ou dispositivo LUKS"
exit
fi
if [ -e /dev/mapper/$UUID ]
then
echo "Pronto para desmontar "$pcrypt
read -p "Enter para continuar ou Control+C para cancelar"
checksudo
sudo umount /dev/mapper/$UUID
sudo rm -r /mnt/$UUID
sudo cryptsetup luksClose $UUID
exit
else
checksudo
sudo cryptsetup luksOpen "$pcrypt" $UUID
sudo mkdir /mnt/$UUID
sudo mount /dev/mapper/$UUID /mnt/$UUID
sudo chmod 777 /mnt/$UUID
fi
else
echo "Houve um erro"
exit
fi
fi
Instalador de macromedia flash para comps AMD Athlon 86_64
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Instalação do K3s Single-Node com Rancher no Ubuntu 24.04
Usei o NotebookLM para Auditar Logs do Linux
Cinnamon seria a aposta acertada frente às outras interfaces gráficas mais populares?
Samba 4 AD-DC 2026: Como instalar e configurar um Active Directory (via APT-GET)
[Resolvido] Sumiço de redes e micro quedas no iwd/iwgtk (Realtek rtw88)
Como Configurar DNS Reverso (PTR) em Ambientes Linux e Microsoft
Preparando o Ambiente para Administrar o Samba 4 a partir do Windows com RSAT
Midia de instalação LM-21.3 não inicializa (7)
A diferença entre a fala de um Samuel e a fala de alguém que conhece o... (8)









