
He pasado horas tratando de encontrar por qué no va bien, pero ahora me rindo y aquí estoy.
Mi configuración/problema: tengo un VPS remoto al que me conecto mediante SSH (claves pub/priv, sin contraseña).
El usuario es debian.
En este VPS, ejecuto un postgres:14.3-alpine
contenedor acoplable.
Esta ventana acoplable tiene dos volúmenes montados en /home/debian:
postgres-certs
postgres-data
La identificación de usuario/grupo del usuario en la ventana acoplable es 70. Más informaciónaquí:
Como sabrá, existen reglas de seguridad en torno a los certificados, por lo que, como se explica en el enlace anterior, configuré los derechos 640 para postgres-certs
la carpeta:
drw-r----- 2 0 70 4096 jun 7 22:45 postgres-certs
drwxr----- 19 70 1000 4096 jun 11 20:40 postgres-data
Como puede ver, ambas carpetas tienen derechos de lectura grupal.
por favor encuentre mis grupos:
debian@db-dev:~$ id
uid=1000(debian) gid=1000(debian) groups=1000(debian),70(docker-pg-alpine),998(docker)
Como puede ver, estoy en los grupos 70 y 1000, los mismos definidos en las dos carpetas.
Si intento capturar un archivo en una de estas carpetas, esto es lo que obtengo (funciona, por supuesto, si lo sudo):
debian@db-dev:~$ cat postgres-certs/server.crt
cat: postgres-certs/server.crt: Permission denied
Sólo para demostrarle que el archivo tiene los mismos permisos que su directorio:
debian@db-dev:~$ sudo ls -ln postgres-certs/server.crt
-rw-r----- 1 0 70 2903 jun 7 22:44 postgres-certs/server.crt
Sí, me desconecté (desconecté ssh, incluso reinicié), también detuve mi contenedor para asegurarme de que no cause ningún problema.
Simplemente no entiendo por qué no puedo capturar un maldito archivo en estas carpetas mientras tienen derechos de lectura grupal y yo estoy en los grupos...
Si pueden encontrar lo que está mal, sería maravilloso.
Respuesta1
Para acceder a los archivos, debe haber x
configurado el directorio.
Para un archivo, (x) le permite ejecutar si el archivo es un programa.
Para un directorio, (x) le permite ingresar un directorio y acceder a los archivos.
De acuerdo ala chmod
página de manual, (x) permite permiso de búsqueda para directorios.
Las letras rwxXst seleccionan bits de modo de archivo para los usuarios afectados: leer (r), escribir (w), ejecutar (o buscar directorios) (x), ejecutar/buscar solo si el archivo es un directorio o ya tiene permiso de ejecución para algún usuario (X), establecer ID de usuario o grupo en ejecución (es), indicador de eliminación restringida o bit adhesivo (t).
De acuerdo a estoDocumento del sistema de archivos Unix, (x) le permite ingresar al directorio y acceder a los archivos.
Para directorios, el permiso de ejecución le permite ingresar al directorio (es decir, cd en él) y acceder a cualquiera de sus archivos.
Para futura referencia, podrías usar:
sudo chmod g+x ~/postgres-certs
para agregar (x) permiso para el grupo en un directorio.
Sin embargo, en lugar de cambiar el permiso a 650, probablemente deberías usar:
sudo cat postgres-certs/server.crt
en su lugar, para que pueda mantener el conjunto de permisos predeterminado para el directorio.