GNU/Linux >> Linux Esercitazione >  >> Linux

Non riesci a spiegare il comportamento di Acl?

Quindi questa è la situazione:
ho un server per gli sviluppatori web. Ci sono molti sviluppatori. Tutti gli developers + PHP + Apache appartiene a www gruppo. C'è una directory di sviluppo – development .

L'obiettivo è che ogni file in development la directory ha 755 autorizzazioni e ogni volta che uno sviluppatore crea, modifica un file in development directory, i file avranno ancora 755 .

Quindi ho letto un certo numero di acl tutorial, guide e howto ma non riesco ancora a ottenere il risultato che desidero.

  1. il mio disco è montato con acl
  2. Ho chown -R www:www development
  3. aggiunto chmod g+s development
  4. Ho impostato un numero di acl regole sullo development directory e ho ottenuto questo:

    $ 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. Secondo la mia idea di ACL , se la directory avesse tali regole, il mio compito dovrebbe essere raggiunto, ma quando provo a creare un file in development dir, ottengo:

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

Non riesco a capire perché crea rw- invece rwx .

Probabilmente è qualcosa di semplice che mi è sfuggito o qualche concetto generale che non capisco.

Risposta accettata:

Gli ACL predefiniti sostituiscono umask, che specifica non predefinito autorizzazioni, ma massimo autorizzazioni per la creazione di nuovi file. In questo caso rwxrwxr-x .

Quindi la tua applicazione chiama open o creat con i permessi che vuole. Quasi tutte le applicazioni richiederanno rw-rw-rw- per i file.

Puoi vederlo eseguendo strace , ad es.

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

(0666 è lo stesso di rw-rw-rw- .)

Le due autorizzazioni vengono combinate usando AND bit per bit per fornire rw-rw-r-- .

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

Per un'altra spiegazione, consulta Elenchi di controllo accessi POSIX: "Esempio ACL predefinito".

Quindi la vera domanda è:perché hai bisogno che i file siano eseguibili?


Linux
  1. Non riesci a installare Wine su Ubuntu Studio 19.10?

  2. Non riesci a riavviare Samba?

  3. setfacl:comando non trovato

  4. Come posso verificare che un file esista ed eseguire un comando in caso contrario?

  5. read(2) può restituire zero quando non è in EOF?

Il testo evidenziato non è visibile in gedit in modalità oscura? Ecco cosa puoi fare

Debian – Non è possibile creare un utente Sftp Debian 7?

Come posso sapere se l'opzione set -e è abilitata o meno?

Qualcuno può spiegare in dettaglio cosa fa set -m?

Come correggere l'updateb:non riesci a trovare il gruppo `mlocate' su entware?

Puoi spiegarmi questo #ln -s :target non è una directory?