GNU/Linux >> Linux Esercitazione >  >> Linux

Facl ignorando l'autorizzazione "x" ma solo sui file?

Quando uso setfacl per gestire quali autorizzazioni dovrebbero avere i file/directory figli, per qualche motivo i file hanno tutti i permessi tranne quello di esecuzione ("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

Pensavo avesse qualcosa a che fare con umask ma cambiarlo in vari modi non dà mai il risultato atteso a meno che non mi manchi qualcosa.

Come può essere risolto?

Risposta accettata:

La risposta di Hauke ​​Laging sta cercando di dire:

    Qualsiasi programma che crea un file o una directory specifica la modalità (autorizzazioni)
    che desidera che il file abbia.
    Questo è quasi sempre codificato nel programma C
    (o qualunque linguaggio venga utilizzato)
    e non è quasi mai direttamente accessibile all'utente.
    Poi il umask value e l'ACL predefinito possono disattivare i bit di autorizzazione,
    ma non aggiungerli.

    Il tuo problema è che, mentre mkdir specifica una modalità 777 (rwxrwxrwx ),
    quasi tutti i programmi che creano file specificano 666 (rw-rw-rw- ).
    Ciò include touch , la shell
    (per il reindirizzamento I/O; ad esempio, program > file ),
    gli editori (vi , vim , emacs , ecc…), dd , split , e così via.
    Pertanto, non otterrai i permessi di rwxrwxrwx su un file semplice
    immediatamente dopo la creazione (da uno qualsiasi di questi programmi),
    non importa cosa fai con gli ACL;
    devi creare il file e poi chmod esso.

    Ci sono un paio di eccezioni a questa regola:

    • cp e programmi correlati (ad es. cpio , tar , ecc.)
      che copiano o ricreano in altro modo un file,
      che (cercherà di) impostare il nuovo file sulla stessa modalità
      del file originale.
    • I compilatori, che creano file eseguibili binari, specificano una modalità 777
      (almeno, se la compilazione riesce),
      in modo che l'utente possa effettivamente eseguire il programma che ha appena compilato.

Linux
  1. Linux – Solo per l'esecuzione di autorizzazioni file?

  2. diff per produrre solo i nomi dei file

  3. Autorizzazione exec imprevista da mmap quando i file di assemblaggio sono inclusi nel progetto

  4. l'eliminazione dei file ma lo spazio su disco è ancora pieno

  5. Sposta il file ma solo se è chiuso

I 6 modi migliori per visualizzare i file in Linux

I migliori strumenti di trasferimento file su Linux

Core scaricato, ma il file core non si trova nella directory corrente?

Come ottenere solo il numero di righe di un file

Concedi il permesso di esecuzione alle directory ma non ai file

Nessuno spazio rimasto sul dispositivo, ma la partizione è piena solo per metà e gli inode sono disponibili