This is a minimalist password manager written in Shell Script, using VeraCrypt to encrypt data.
This project was developed in 2 days as part of a personal challenge: creating a new project every weekend. The goal is to develop skills I have been studying and solidify my learning.
This diagram provides an overview of the program, showing the step-by-step process.
- Generate random passwords
- Securely store credentials
- Access passwords without exposing them directly in the terminal
- Uses VeraCrypt for encryption
- All operations occur in RAM, ensuring security
- Linux/macOS
- VeraCrypt installed and executable in the terminal
xclip
to copy passwords to the clipboard- Execution with sudo (due to VeraCrypt)
-
Clone this repository:
git clone https://github.com/your-username/password-manager.git cd password-manager
-
Grant execution permission to the script:
chmod +x passwords.sh
-
Create the password volume (only once!!):
sudo ./passwords.sh --create-volume
sudo ./passwords.sh --add
sudo ./passwords.sh --list
sudo ./passwords.sh --get-pass <ID>
sudo ./passwords.sh --generate-pass
sudo ./passwords.sh --remove <ID>
- The password file is stored inside a VeraCrypt-encrypted volume.
- The password is never displayed in the terminal.
- All processing occurs in RAM, preventing sensitive data from being written to disk.
- The volume is automatically unmounted when the script execution ends.
- Automatically create the volume if it does not exist, removing the need for --create-volume
- Input validation for adding credentials
- Create a configuration file
- Professional Shell Script - Aurelio Marinho. Novatec Editora. 2008.
- Efficient Linux Command Line - Daniel J. Barrett. Novatec Editora. 2022.
If you'd like to suggest improvements or report issues, feel free to open an issue or submit a pull request.
This project is licensed under the MIT License.