Per i file creati dall'account testuser nella directory / var / www, ho bisogno che abbiano g + rwx come permessi e www-data come gruppo.
Come posso raggiungere questo obiettivo?
Sto creando i file tramite SSH.
Per i file creati dall'account testuser nella directory / var / www, ho bisogno che abbiano g + rwx come permessi e www-data come gruppo.
Come posso raggiungere questo obiettivo?
Sto creando i file tramite SSH.
Risposte:
Per impostare il gruppo, dare /var/www
il bit setgid :
chgrp www-data /var/www
chmod g+s /var/www
Per regolare anche le sottodirectory: find /var/www -type d -exec chmod g+s {} +
Ciò farà sì che tutti i file appena creati ereditino il gruppo della directory principale, anziché l'utente.
Per impostare le autorizzazioni di gruppo predefinite, dovrai utilizzare gli ACL . Imposta un ACL "predefinito":
setfacl -m "default:group::rwx" /var/www
Per regolare anche le sottodirectory: find /var/www -type d -exec setfacl -m d:g::rwx {} +
Nota: il file system deve avere il supporto ACL abilitato. A volte è attivo per impostazione predefinita; su ext3 o ext4 potresti ricevere "Operazione non supportata", nel qual caso deve essere abilitato manualmente:
Per un filesystem attualmente montato: mount -o remount,acl /
Permanentemente - uno dei metodi seguenti:
a livello di fstab: modifica /etc/fstab
da inserire acl
nel campo delle opzioni
a livello di filesystem: tune2fs -o acl /dev/diskname
chmod
otterrebbe anche tutti i file.
install
, riescono in qualche modo a bypassare gli ACL predefiniti della directory.
/var/www/html/projects
cartella e quando www-data crea un file ha i rw-rw-r
permessi ma quando faccio qualcosa in console crea un file con rw-r--r
. Come posso forzare i nuovi file creati ad avere sempre le rw-rw-r
autorizzazioni?
umask
. Le autorizzazioni predefinite per directory sono modificabili usando setfacl
come nel post principale.
Questo potrebbe aver bloccato alcune persone con la risposta 'grawity' su setgid, se il gruppo della cartella è diverso dal tuo potresti dover eseguire chmod come root ma non otterrai alcun errore che indica che devi farlo.
$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar 9 10:44 dir
$ chmod g+s dir #no errors
$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar 9 10:44 dir #but nothing changed
$ touch dir/nosudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar 9 10:51 nosudo #and the group is still wrong
$ sudo chmod g+s dir
$ ls -ld dir
drwxrwsr-x 2 luke testgroup 4096 Mar 9 10:44 dir #the setgid bit is now on
$ touch dir/withsudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar 9 10:51 nosudo
-rw-rw-r-- 1 luke testgroup 0 Mar 9 10:51 withsudo #and group is set
Il gruppo di file che viene creato da un utente è il gruppo di quell'utente (in / etc / group). Le autorizzazioni sono controllate dal parametro UMASK, vedere questo
stor
/appe
? Via HTTPPUT
? Tramite un account shell? Questi dettagli sono importanti, perché influiscono notevolmente sulle possibili risposte e devono essere nella tua domanda.