Make Luks
Publicado por Daniel R. (última atualização em 01/12/2020)
[ Hits: 1.052 ]
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
Backup das Bases de dados do [Mantis, MySQL, Phpmyadmin, Testlink] e dos Projetos do SVN
Montar pasta remota NFS em Zenity
Eu vejo gente morta. Descubra se alguém já morreu!
Instalação do Asterisk no Debian Etch
Como escolher o melhor escalonador de CPU para melhorar o desempenho da máquina
Curiosidade sobre DOOM Guy e Isabelle de Animal Crossing
Inicializando servidor Ubuntu na AWS e rodando apache em Container
Conheça o Octopi, outro frontend para o Pacman com acesso ao ARU (Arch Linux e derivados)
Terminal transparente no Debian 12 com interface i3wm usando Xfce4-Terminal e Compton
Como compilar o DOOM RETRO no Linux
Stacer - um otimizador gráfico básico de Linux
Corrigindo o erro de "WARNING: Possibly missing firmware for module" no Arch Linux
Após atualização do Ubuntu 22.04.4 LTS perdi a instalação da placa de ... (0)
DRIVER DE ADPTADOR HDMI PARA USB (2)
Ubuntu simplesmente morreu (7)