É possível usar o comando scrypt para criptografar todos os arquivos em uma pasta?

0

Eu já tentei usar o scrypt para criptografar arquivos únicos e parece estar funcionando muito bem.

Mas e se eu quiser criptografar todos os arquivos em uma pasta?

De acordo com o man page scrypt é uma ferramenta para criptografar arquivos.

Ainda existe uma maneira de criptografar todos os arquivos em uma pasta?

    
por Vesa 22.05.2017 / 07:23

1 resposta

1

Pode-se usar encfs para criptografar uma pasta:

Método 1:

  1. Instale:

    sudo apt install encfs
    
  2. Crie os diretórios necessários, um para os dados criptografados e o outro para acessá-los:

    encfs ~/.encrypt ~/visible
    
  3. Aceite as solicitações feitas por encfs , em seguida, forneça uma senha de sua preferência.

  4. Agora, coloque os arquivos para proteger na pasta ~/visible .

  5. Para ocultá-los, execute:

    fusermount -u ~/visible
    
    # This will hide all files in there.
    
  6. Para acessá-los novamente, execute:

    encfs ~/.encrypted ~/visible
    
    # This will ask you for your password so the files
    # in ~/visible will be seen and accessed
    

Fonte:

link

Método 2:

Use Gnome Encfs Manager

  1. Instalar:

    sudo add-apt-repository ppa:gencfsm 
    sudo apt update 
    sudo apt install gnome-encfs-manager
    
  2. Para usar, execute o programa Gnome Encfs Manager para usar a GUI para obter o mesmo que no método 1.

Método 3:

Usando um script de terminal, você pode usar scrypt para conseguir isso:

for i in /home/$USER/Documents/koko/*; do scrypt enc "$i" "$i-sc"; done

Mais informações:

  1. koko: Minha pasta imaginária, a sua deve ser diferente
  2. Você terá que digitar a senha para cada criptografia feita

Método 4

Para senhas geradas aleatoriamente gravadas em um arquivo:

#!/bin/bash

echo "Running script..."
echo " "
echo "Please enter the names of folder to encrypt file contents"
echo "and folder to store the passwords for the files"    
echo " "

read -p 'Files location: ' folder
read -p 'Password storage location: ' passwdlocation
read -p 'name of password file: ' mypasswords
echo " "


if [[ -z "$folder" || -z "$passwdlocation" ]];then

    echo "Please supply the required folder names"
    exit 1

else

    if [ -d "/home/$USER/Documents/"$passwdlocation"" ]; then

        # If password folder exists ask user if it should be deleted
        read -n1 -p "/home/$USER/Documents/"$passwdlocation" exists, delete Y or N?" doit
        echo 
        case "$doit" in
            y|Y)    rm -R /home/$USER/Documents/"$passwdlocation" && mkdir /home/$USER/Documents/"$passwdlocation";;
            n|N) echo "Script terminated by user" && exit 1;;
            *) echo
        esac
    else
        mkdir /home/$USER/Documents/"$passwdlocation"
    fi  

    # Is it a directory
    if [[ -d "$folder" ]]; then
        # Make sure target folder has files in it
        if [ ! "$(ls -A "/home/$USER/Documents/"$folder"" 2> /dev/null)" == "" ]; then          

            # Check if password file already exists
            # if it does ask to delete of write to it
            if [ "$( ls -A "/home/$USER/Documents/"$passwdlocation"/"$mypasswords".txt" 2> /dev/null)" == "" ]; then

                read -n1 -p ""$mypasswords".txt already exists, delete Y or N? " doagain
                echo
                case "$doagain" in
                    y|Y)  rm -rf "/home/$USER/Documents/"$passwdlocation"/"$mypasswords".txt";;
                    n|N)  echo "file not deleted!";;
                    *) echo "Operation successful";;
                esac
        else

        fi

        for i in "$folder"/*
        do
            # Create random passwords
            filepasswd=$(strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n';) 

            scrypt enc -P "$i" "$i-sc" <<< "$filepasswd"

            # Add password to password store location
            echo -n  "$i-sc  $filepasswd" >> "/home/$USER/Documents/"$passwdlocation"/"$mypasswords".txt"
            echo -e "\n" >> "/home/$USER/Documents/"$passwdlocation"/"$mypasswords".txt"
            echo "$i Done"
        done

    else
        echo "The target "$folder" is empty!"

        exit 1

    fi  


    else

        echo "Invalid arguments .. please supply directory names"
        exit 1

    fi

fi

echo "Script finished"
    
por George Udosen 22.05.2017 / 08:51