Make Luks
Publicado por Daniel R. (última atualização em 01/12/2020)
[ Hits: 1.467 ]
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
Monitorando acessos on-line em log do squid com autenticação.
Script Backup ultimo arquivo criado em um diretorio feito TAR direto para DAT
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Instalando partes faltantes do Plasma 6
Adicionar botão "mostrar área de trabalho" no Zorin OS
Como montar um servidor de backup no linux
Desenvolvi um programa de hot corner (você colocar o mouse nos cantos)... (3)
Pendrive Bootable [RESOLVIDO] (4)









