Make Luks
Publicado por Daniel R. (última atualização em 01/12/2020)
[ Hits: 1.156 ]
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
Ajuste de data e hora automática
Loop para baixar arquivo em seqüência
Instalar temas GTK no /usr/share/themes ou no diretório pessoal
Gerenciar usuários do OpenLDAP com Sistema ZIMBRA
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
Excluir banco de dados no xampp (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta