Make Luks
Publicado por Daniel R. (última atualização em 01/12/2020)
[ Hits: 1.029 ]
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
Postfix: Configurando o Gmail como Relay (moleza)
Ligando/Desligando máquina pela rede
Trocar wallpaper (papel de parede) do Gnome
Agora temos uma assistente virtual no fórum!!! (247)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
redirecionando saida de comando touch para o AWK[AJUDA] (2)
Lançado Ubuntu 24.04 Final (5)
iso de sistema 32 bit em atividade (14)
conflicting values set for option signed-by regarding source (1)