GNU/Linux >> Tutoriales Linux >  >> Linux

¿No puede explicar el comportamiento de Acl?

Así que esta es la situación:
obtuve un servidor para desarrolladores web. Hay muchos desarrolladores. Todos los developers + PHP + Apache pertenece a www grupo. Hay un directorio de desarrollo:development .

El objetivo es que cada archivo en development directorio tiene 755 permisos y cada vez que un desarrollador crea, modifica un archivo en development directorio, los archivos seguirán teniendo 755 .

Así que he leído una serie de acl tutoriales, guías y procedimientos, pero sigo sin obtener el resultado que deseo.

  1. mi disco está montado con acl
  2. Obtuve chown -R www:www development
  3. agregado chmod g+s development
  4. Establecí un número de acl reglas sobre development directorio y obtuve esto:

    $ getfacl development
    # file: development
    # owner: www
    # group: www
    # flags: -s-
    user::rwx
    user:www:rwx
    group::rwx
    group:www:rwx
    mask::rwx
    other::r-x
    default:user::rwx
    default:user:www:rwx
    default:group::rwx
    default:group:www:rwx
    default:mask::rwx
    default:other::r-x
    
    p.s. I know its messy, was doing a number of tests
    
  5. Según mi idea de ACL , si el directorio tuviera tales reglas, mi tarea debería lograrse, pero cuando intento crear un archivo en development dir, obtengo:

    -rw-rw-r--+ 1 www     www      0 Nov 21 09:14 newfile
    

Parece que no puedo entender por qué crea rw- en cambio rwx .

Probablemente sea algo simple que me perdí o algún concepto general que no entiendo.

Respuesta aceptada:

Sus ACL predeterminadas reemplazan el umask, que especifica que no es predeterminado permisos, pero máximo permisos para crear nuevos archivos. En este caso rwxrwxr-x .

Entonces su aplicación llama a open o creat con los permisos que quiere. Prácticamente todas las aplicaciones solicitarán rw-rw-rw- para archivos.

Puedes ver esto ejecutando strace , por ejemplo

$ strace -e trace=file touch newfile
...
open("newfile", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3

(0666 es lo mismo que rw-rw-rw- .)

Los dos permisos se combinan usando AND bit a bit para dar rw-rw-r-- .

  rwxrwxr-x     # default ACL
  rw-rw-rw-     # permission requested (e.g. by touch, vim, etc.)
& _________
  rw-rw-r--     # effective permissions

Para obtener otra explicación, consulte Listas de control de acceso POSIX: "Ejemplo de ACL predeterminado".

Entonces, la verdadera pregunta es:¿por qué necesita que los archivos sean ejecutables?


Linux
  1. ¿Por qué no puedo dividir un archivo .ape?

  2. No se puede ejecutar el comando de configuración:¿"no existe tal archivo o directorio"?

  3. ¿No se puede instalar Wine en Ubuntu Studio 19.10?

  4. ¿No se puede reiniciar Samba?

  5. setfacl:comando no encontrado

¿El texto resaltado no es visible en gedit en modo oscuro? Esto es lo que puede hacer

Debian – ¿No se puede crear un usuario Sftp Debian 7?

¿Operación no compatible con Setfacl?

¿Cómo puedo saber si la opción set -e está habilitada o no?

¿Me puede explicar esto #ln -s :target no es un directorio?

¿Por qué mi crontab no funciona y cómo puedo solucionarlo?