Cuando uso setfacl para administrar qué permisos deben tener los archivos / directorios secundarios, por alguna razón los archivos tienen todos los permisos excepto el de ejecución ("x").
[email protected]:/opt/lampp/htdocs/project$ getfacl .
# file: .
# owner: someuser
# group: webs
# flags: -s-
user::rwx
group::rwx
other::rwx
default:user::rwx
default:group::rwx
default:other::rwx
[email protected]:/opt/lampp/htdocs/project$ touch file
[email protected]:/opt/lampp/htdocs/project$ mkdir dir
[email protected]:/opt/lampp/htdocs/project$ ls -l
total 4
drwxrwsrwx+ 2 someuser webs 4096 paź 31 13:35 dir
-rw-rw-rw- 1 someuser webs 0 paź 31 13:35 file
Pensé que tenía algo que ver con umask, pero cambiarlo de varias maneras nunca da el resultado esperado a menos que me esté perdiendo algo.
¿Cómo se puede arreglar esto?
Respuesta aceptada:
La respuesta de Hauke Laging está tratando de decir:
cp
y programas relacionados (por ejemplo,cpio
,tar
, etc.)
que copian o vuelven a crear un archivo,
lo que (intentará) establecer el nuevo archivo en el mismo modo
que el archivo original.- Los compiladores, que crean archivos ejecutables binarios, especifican un modo de 777
(al menos, si la compilación tiene éxito),
para que el usuario pueda ejecutar el programa que acaba de compilar.
Cualquier programa que crea un archivo o directorio especifica el modo (permisos)
que quiere que tenga ese archivo.
Esto casi siempre está codificado en el programa C
(o cualquier idioma que se use)
y casi nunca es directamente accesible para el usuario.
Luego la umask
y la ACL predeterminada puede desactivar los bits de permiso,
pero no agregarlos.
Tu problema es que, mientras mkdir
especifica un modo de 777 (rwxrwxrwx
),
casi todos los programas que crean archivos especifican 666 (rw-rw-rw-
).
Esto incluye touch
, el shell
(para la redirección de E/S; por ejemplo, program > file
),
los editores (vi
, vim
, emacs
, etc…), dd
, split
, y así.
Por lo tanto, no obtendrá permisos de rwxrwxrwx
en un archivo sin formato
inmediatamente después de la creación (por cualquiera de estos programas),
no importa lo que haga con las ACL;
debe crear el archivo y luego chmod
eso.
Hay un par de excepciones a esta regla: