Impostare il gruppo predefinito per l'utente quando creano nuovi file?


37

Mi trovo spesso a sfogliare i file mentre li ho creati tramite SSH e sono di proprietà di jm:jmper esempio.

Quindi, per consentire ad Apache di accedervi, ad esempio devo farlo chown jm:www-data.

Sono sicuro di poter specificare che quando creo i file, invece di utilizzare il gruppo sotto il mio nome, ne specifica un altro?

Oppure esiste un modo migliore di gestire utenti / gruppi?

Risposte:


75

Se vuoi che tutti i nuovi file in una determinata directory appartengano a un determinato gruppo, applica semplicemente il setgidbit su di esso:

chgrp www-data /some/dir
chmod g+s /some/dir

Se hai un albero di directory esistente a cui desideri applicare questo comportamento, puoi farlo con find:

find /some/dir -type d -exec chgrp www-data {} +
find /some/dir -type d -exec chmod g+s {} +

(se le directory sono già di proprietà del gruppo pertinente, è possibile omettere il primo comando in entrambi questi esempi).


1
Bella risposta! Potresti, per favore, chiarire cosa significano i simboli ... {} +?
Alexander Lomia,

3
Sono argomenti per il findcomando, trattati nella pagina man. Per la prima chiamata, eseguirà il comando chgrp www-data, aggiungendo un numero di risultati come argomenti (anziché invocare il comando una volta per ogni risultato come si otterrebbe {} \;).
James Henstridge,

6
Perché non usare chmod g+s /some/dir -R? Appena testato e sembra funzionare.
Cragmonkey,

13
@Cragmonkey: che imposterà anche il bit setgid su file regolari. Se qualcuno di loro fosse eseguibile, ciò consentirebbe a un altro utente del sistema di ottenere i privilegi del gruppo proprietario del file.
James Henstridge,
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.