¿Cuáles son los permisos correctos para la carpeta adjunta .gnupg? gpg: ADVERTENCIA: permisos de directorio de inclusión inseguros en el archivo de configuración


27

No quiero simplemente ejecutar y ejecutar chmod hasta obtener la respuesta correcta, ni quiero ejecutar GnuPG como root. La solución fácil sería simplemente configurarlo para que solo mi usuario pueda leerlo, pero no creo que sea la mejor manera.

Recibo el siguiente error cuando intento usar gpg:

gpg: WARNING: unsafe enclosing directory permissions on configuration file `/home/nb/.gnupg/gpg.conf'
gpg: external program calls are disabled due to unsafe options file permissions
gpg: keyserver communications error: general error
gpg: keyserver receive failed: general error

~/.gnupg/Estado actual de GnuPG :

% stat .gnupg 
  File: ‘.gnupg’
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 1bh/27d Inode: 20578751    Links: 3
Access: (0775/drwxrwxr-x)  Uid: ( 1000/      nb)   Gid: ( 1000/      XXXX)
Access: 2015-08-09 18:14:45.937760752 -0700
Modify: 2015-08-05 20:54:32.860883569 -0700
Change: 2015-08-05 20:54:32.860883569 -0700
 Birth: -

La respuesta en el siguiente enlace recomienda 600 permisos para el ~/gnupg/gpg.confarchivo, pero ¿la carpeta adjunta también requiere esos permisos?

/ubuntu/330755/unsafe-permissions-on-configuration-file-home-david-gnupg-gpg-conf-what-doe

Respuestas:


53

Sí, también deberá corregir los permisos del directorio adjunto. ~/.gnupg

Porque un atacante con suficientes derechos sobre la carpeta podría manipular el contenido de la carpeta.

Ejecute los siguientes comandos:

  1. Asegúrese de que la carpeta + contenido le pertenezca:
    chown -R $(whoami) ~/.gnupg/

  2. Derechos de acceso correctos .gnupgy subcarpetas:
    find ~/.gnupg -type f -exec chmod 600 {} \;
    find ~/.gnupg -type d -exec chmod 700 {} \;

Explicación para 600, 700:

Comencemos por la parte posterior: '00' significa SIN NINGÚN derecho en absoluto para todos los que no sean propietarios de los archivos / directorios.

Eso significa que el proceso de lectura de estos (gnupg) debe ejecutarse como el propietario de estos archivos / directorios.

~/.gnupg/es una carpeta, el proceso de lectura del contenido debe poder "ingresar" (= ejecutar) esta carpeta. Este es el bit "x". Tiene el valor "1".7 - 6 = 1

Ambos ~/.gnupg/y ~/.gnupg/*quieres poder leer y escribir, eso es 4 + 2 = 6.

==> Solo el propietario de los archivos puede leerlos / escribirlos ahora (= 600). Solo él puede ingresar al directorio también (= 700)

==> Estos derechos de archivo no "necesitan" ser documentados, son derivados del uso previsto.

Más información sobre la notación de permisos: https://en.wikipedia.org/wiki/File_system_permissions#Notation_of_traditional_Unix_permissions


1
//, ¿Sabes si los creadores de GnuPG documentan estos niveles de permiso específicos? Si los documentan, ¿dónde podría encontrar esto?
Nathan Basanese

1
¡Ellas hacen! Has publicado el mensaje de error;)
Alex Stragies

1
// Sí, pero el mensaje de error no dice cuáles deberían ser los permisos. ¿Publican eso en alguna parte?
Nathan Basanese

// Además, gracias por agregar más explicaciones para aquellos de nosotros que no estamos tan familiarizados con el esquema de numeración de permisos.
Nathan Basanese

6

GnuPG por defecto impone privilegios de acceso seguro, lo que significa que nadie más (excepto usted) puede acceder a su directorio de inicio de GnuPG ~/.gnupg. Estos privilegios de acceso a menudo no son lo suficientemente estrictos después de copiar el directorio de inicio de GnuPG desde otra máquina, y muy a menudo la propiedad incorrecta es la razón de tal mensaje.

# Set ownership to your own user and primary group
chown -R "$USER:$(id -gn)" ~/.gnupg
# Set permissions to read, write, execute for only yourself, no others
chmod 700 ~/.gnupg
# Set permissions to read, write for only yourself, no others
chmod 600 ~/.gnupg/*

Si (por alguna razón) ha creado sus propias carpetas en el interior ~/.gnupg, también debe aplicar permisos de ejecución a esa carpeta. Las carpetas requieren privilegios de ejecución para abrirse.


4

Aunque Jens Erat ya lo mencionó en su última oración, creo que debe enfatizarse que cualquier carpeta dentro de ~ / .gnupg también debe ser ejecutable (modo 700). Esto es especialmente válido para la carpeta private-keys * creada por el propio gpg. Estuve atrapado con problemas de permisos por un tiempo antes de notar esto.


encuentre ~ / .gnupg -type d -exec chmod 700 {} \;
Craig Hicks el

2

Estas dos líneas establecerán los permisos por separado y correctamente para directorios y archivos:

find ~/.gnupg -type d -exec chmod 700 {} \;
find ~/.gnupg -type f -exec chmod 600 {} \;

asumiendo que la propiedad ya está configurada correctamente.

Tenga en cuenta que no cambia los permisos en los sockets S.gpg-agent*. (Solo el nuevo gpg v2 involucra sockets, el viejo gpg v1 no).


1
Parece una respuesta de experiencia.
Nathan Basanese
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.