Autorizzazioni sui file:


9

Vorrei assegnare 755 autorizzazioni a una directory, quindi utilizzo:

# chmod -R 755 /my/folder/

Funziona con tutti i file all'interno della mia cartella, ma il problema è che uso script che creano nuovi file in questa cartella e, per impostazione predefinita, le autorizzazioni sono 600.

Come potrei imporre 755 autorizzazioni su questi file "futuri"?

--MODIFICARE--

Uso uno script che mi fornisce informazioni sul traffico di rete nel mio campus. Ho un nuovo file ogni 10 minuti, situato in una cartella chiamata viaggio, situata nella cartella del mese in questo modo:

ls -lrt /home/netmet/secure/2017-04/2017-04-27/
total 118548
-rwxr-sr-x 1 root root   85922 avril 27 00:10 zzaccounting.dmp-00-00
-rwxr-sr-x 1 root root   54874 avril 27 00:20 zzaccounting.dmp-00-10
-rwxr-sr-x 1 root root   33534 avril 27 00:30 zzaccounting.dmp-00-20
-rwxr-sr-x 1 root root   48890 avril 27 00:40 zzaccounting.dmp-00-30
-rwxr-sr-x 1 root root   36878 avril 27 00:50 zzaccounting.dmp-00-40
-rwxr-sr-x 1 root root   37034 avril 27 01:00 zzaccounting.dmp-00-50
-rwxr-sr-x 1 root root   38154 avril 27 01:10 zzaccounting.dmp-01-00
-rwxr-sr-x 1 root root   38318 avril 27 01:20 zzaccounting.dmp-01-10
-rwxr-sr-x 1 root root   26978 avril 27 01:30 zzaccounting.dmp-01-20
-rwxr-sr-x 1 root root   31558 avril 27 01:40 zzaccounting.dmp-01-30
-rwxr-sr-x 1 root root   23662 avril 27 01:50 zzaccounting.dmp-01-40
-rwxr-sr-x 1 root root   32298 avril 27 02:00 zzaccounting.dmp-01-50
-rwxr-sr-x 1 root root   30282 avril 27 02:10 zzaccounting.dmp-02-00
-rwxr-sr-x 1 root root   31110 avril 27 02:20 zzaccounting.dmp-02-10
-rwxr-sr-x 1 root root   25718 avril 27 02:30 zzaccounting.dmp-02-20
-rwxr-sr-x 1 root root   26306 avril 27 02:40 zzaccounting.dmp-02-30
-rwxr-sr-x 1 root root   23690 avril 27 02:50 zzaccounting.dmp-02-40
-rwxr-sr-x 1 root root   23002 avril 27 03:00 zzaccounting.dmp-02-50
-rwxr-sr-x 1 root root   21854 avril 27 03:10 zzaccounting.dmp-03-00

Qui ho cambiato le autorizzazioni a mano ma quando appare il file nuovo, ho questo:

-rw------- 1 root root 3479106 avril 27 15:50 zzaccounting.dmp-15-40

Il fatto è che per ogni cartella e file in / home / netmet / secure / voglio 755 permessi di default.

Ho già fatto questo:

chmod -R g+s /home/netmet/secure   
setfacl -d -m g::rwx /home/netmet/secure   
setfacl -d -m o::rx /home/netmet/secure   

3
ACL è la risposta. Questo è stato discusso in precedenza.
d3ag0s

8
ACL è la risposta per l'override di umask, ma non per l'override di un programma che crea file con modalità in 0600base alla progettazione. Vedi qui per alcuni riferimenti.
ilkkachu,

1
E un altro dettaglio: per impostazione predefinita non è possibile utilizzare umaskper aggiungere bit di esecuzione ai file, questo deve essere fatto a mano
Romeo Ninov,

umask non funziona ragazzi
klaypez,

Puoi modificare lo script che usi per creare i file? Come arrivano i file nella directory finale (es. 2017-04-27) E come vengono create le directory? Si prega di aggiornare la domanda con questi dettagli.
Tigro

Risposte:


1

Prova a correre umasknella tua cartella. Se restituisce qualcosa di diverso da "0022", questo è il tuo problema. Nel tuo caso dovrebbe iniziare inizialmente con '0177'. Il sistema di autorizzazione durante la creazione della directory è sostanzialmente calcolato: default - umask0777 è la modalità predefinita per le directory e 0666 per i file ordinari, ma ci sono diverse umask, se capisco bene queste cose. Prova a eseguire umask a=rx,uu+w.

EDIT: Puoi usare umask per dare il bit di esecuzione alla directory per poterlo inserire in cd, ma non ai file. Questi devono essere dati eseguendo il bit manualmente a causa della sicurezza. Aggiungi semplicemente chmod +x <file>al tuo script. E, eseguire flag impostato su file qualsiasi cosa diversa dall'eseguibile non ha alcun effetto.


1
Il umaskcomando shell non dipende dal percorso, dipende solo dall'utente che lo esegue, ogni utente ha un valore umask specifico, definito all'accesso e che può essere modificato in seguito. Questo definisce come vengono creati i nuovi permessi dei file.
Patrick Mevzek,

Questo dovrebbe essere chmod a=rx,u+wnella tua risposta.
Patrick Mevzek,

1

Immagino che tu stia eseguendo gli script che generano i file in un ambiente in cui umask è impostato su 0077. Questo impedisce al programma di generazione di impostare qualsiasi bit di autorizzazione nei bit di autorizzazione "gruppo" e "altro".

Si noti che umask fa parte dell'ambiente ereditato di qualsiasi processo e in genere impostato da un 'profilo' predefinito all'accesso. Qualsiasi processo (shell) può modificare la propria (iniziale) umask per bambini propri e discendenti con il comando 'umask'.

I bit nell'attuale umask impediranno la creazione di file con questi bit impostati nelle loro autorizzazioni (quindi una "maschera", mascherando i bit di autorizzazione risultanti)


0

Nota : questo non è l'ideale e deve essere considerato una soluzione temporanea

Puoi creare cron job che esegue il comando chmod ogni 5 minuti o come preferisci.

C'è anche inotify

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.