One of the major security features of the QubesOS is the file vaults, where access to specific files can only happen via user input in the GUI applet. Same goes to the split-ssh, where the user has to allow access to the ssh key (actually on a different VM).
I was hoping to have similar access control to important dotfiles with passwords, ssh private keys, and other similar files on my regular desktop system. I am introducing ManualBox which can provide similarly access control on normal Linux Desktops or even on Mac.
How to install?
Follow the installation guide on the Mac in the wiki. For Linux, we are yet to package the application, and you can directly run from the source (without installing).
git clone https://github.com/kushaldas/manualbox.git cd manualbox
sudo dnf install python3-cryptography python3-qt5 python3-fusepy python3-psutil fuse -y
sudo apt install python3-cryptography python3-pyqt5 python3-fusepy python3-psutil fuse
To start the application from source:
Click on the App icon like any other application.
If you are running the tool for the first time, it will create a new manualbox
and mount it in
~/secured directory, it will also give you the password,
please store it somewhere securely, as you will need it to mount the
filesystem from the next time.
After selecting (or you can directly type) the mount path (must be an empty directory), you should type in the password, and then click on the Mount button.
Now, if you try to access any file, the tool will show a system notification, and you can either Allow or Deny via the following dialog.
Every time you allow file access, it shows the notification message via the system tray icon.
To exit the application, first click on the Unmount, and right-click on the systray icon, and click on the Exit or close via window close button.
Usage examples (think about your important dotfiles with passwords/tokens)
Note: If you open the mounted directory path from a GUI file browser, you will get too many notifications, as these browsers will open the file many times separately. Better to have you GUI application/command line tool to use those files as required.
You can store your thuderbird profile into this tool. That way, thunderbird needs your permission for access when you start the application.
ls -l ~/.thunderbird/ # now find your right profile (most people have only one) mv ~/.thunderbird/xxxxxx.default/logins.json ~/secured/ ln -s ~/secured/logins.json ~/.thunderbird/xxxxxx.default/logins.json
SSH private key
mv ~/.ssh/id_rsa ~/secured/ ln -s ~/secured/id_rsa ~/.ssh/id_rsa
If you have any issues, please file issues or even better a PR along with the issue :)