Pode-se usar encfs
para criptografar uma pasta:
Método 1:
-
Instale:
sudo apt install encfs
-
Crie os diretórios necessários, um para os dados criptografados e o outro para acessá-los:
encfs ~/.encrypt ~/visible
-
Aceite as solicitações feitas por
encfs
, em seguida, forneça uma senha de sua preferência. -
Agora, coloque os arquivos para proteger na pasta
~/visible
. -
Para ocultá-los, execute:
fusermount -u ~/visible # This will hide all files in there.
-
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:
Método 2:
Use Gnome Encfs Manager
-
Instalar:
sudo add-apt-repository ppa:gencfsm sudo apt update sudo apt install gnome-encfs-manager
-
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:
- koko: Minha pasta imaginária, a sua deve ser diferente
- 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"