"Unsafe permissions on configuration file `/home/david/.gnupg/gpg.conf" What does it mean and how to fix?
gpg: WARNING: unsafe permissions on configuration file
/home/david/.gnupg/gpg.conf' gpg: WARNING: unsafe enclosing directory permissions on configuration file
/home/david/.gnupg/gpg.conf' gpg: external program calls are disabled due to unsafe options file permissions
This means that your ~/.gnupg/gpg.conf
has unexpected permissions for the user you are running as, like write access to "others", another user or the executable bit. This file should always for security reasons only be readable and writable by the user, and no one else:
$ ls -l ~/.gnupg/gpg.conf
-rw------- 1 braiam braiam 7890 Jul 8 18:51 .gnupg/gpg.conf
Yours probably has different user or permissions. Check them out using ls -l ~/.gnupg/gpg.conf
. To fix this is simple enough:
chown $(whoami):$(whoami) ~/.gnupg/gpg.conf ## if this fails read at the bottom
chmod 600 ~/.gnupg/gpg.conf
If some of the commands fails, or you keep getting the error message you mentioned after following these instructions, you should delete the ~/.gnupg
directory, because it cannot be trusted anymore.
rm -r ~/.gnupg/gpg.conf ## If this fails, use sudo
You can then try to run gpg
command with the same user that is going to run the script, this way your user with create ~/.gnupg
directory with appropriate permissions.
You probably migrated your .gnupg
folder from another machine, or tampered another way with the file permissions.
GnuPG enforces private ownership of the folder and some files for security reasons.
These two lines fix the permissions. The first one ensures that the ~/.gnupg
folder (and everything in it) is actually yours. To possibly overtake ownership, it requires root privileges, thus the sudo
. The second line makes sure nobody but you can read its contents (remove read, write and execute permissions for group and other users). Your username gets inserted automatically, so you can copy-past the lines directly to your terminal:
sudo chown -R ${USER}:${USER} ~/.gnupg
chmod -R go-rwx ~/.gnupg
I just faced the same problem. It turned out I was running the gpg
command using sudo
. When I tried again without sudo
, it worked fine and no error was displayed. So, it might be the case for you too.