it-swarm-eu.dev

Come posso dare accesso in scrittura a una cartella a tutti gli utenti di Linux?

Ho installato Apache2 su Ubuntu proprio ora e ho notato che la cartella/var/www è protetta. Posso solo Sudo tutto ma preferirei semplicemente dargli accesso in scrittura.

Come posso fare questo?

Ho provato Sudo chmod 7777 /var/www ma non ha funzionato.

184
Carson Myers

Per condividere al meglio con più utenti che dovrebbero essere in grado di scrivere in /var/www, dovrebbe essere assegnato un gruppo comune. Ad esempio il gruppo predefinito per i contenuti web su Ubuntu e Debian è www-data. Assicurati che tutti gli utenti che necessitano dell'accesso in scrittura a /var/www si trovino in questo gruppo.

Sudo usermod -a -G www-data <some_user>

Quindi imposta le autorizzazioni corrette su/var/www.

Sudo chgrp -R www-data /var/www
Sudo chmod -R g+w /var/www

Inoltre, dovresti creare la directory e tutte le directory sotto di essa "imposta GID", in modo che tutti new i file e le directory create sotto /var/www appartengano al gruppo www-data.

Sudo find /var/www -type d -exec chmod 2775 {} \;    

Trova tutti i file in /var/www e aggiungi permessi di lettura e scrittura per proprietario e gruppo:

Sudo find /var/www -type f -exec chmod ug+rw {} \;

Potrebbe essere necessario disconnettersi e ricollegarsi per poter apportare modifiche se si modificano le autorizzazioni per il proprio account.

313
jtimberman

C'è un modo più semplice per farlo, prova a fare questo comando.

Sudo chmod -R 757 /var/www

In sostanza, il comando chmod altera le autorizzazioni e l'opzione -R interessa tutti gli utenti. Quindi sta semplicemente dando i permessi corretti da usare.

32
Krishna Modi

Read + Write:

Sudo chmod -R a+rw /var/www

Leggere + Scrivere + Execute:

Sudo chmod -R a+rwx /var/www
27
paivaric

È inoltre possibile replicare ciò che jtimberman ha suggerito usando gli elenchi di controllo di accesso . Il comando setfacl accetta -s per sostituire un ACL esistente o -m per modificarlo; -R per rendere ricorsive le ACL delle directory; e -d per rendere predefinite le impostazioni specificate, il che è utile se si stanno anticipando gli account degli utenti futuri.

Questi semplicemente impostano i permessi come faresti per l'utente, il gruppo, l'altro e maschera usando chmod:

setfacl -m u::rwx, g::r-x, o::---, m:rwx DIRECTORY

E questo potrebbe essere come lo faresti per un utente specificato o il suo/il suo gruppo:

setfacl -m u:USERNAME:rwx, g:USERNAME:r-x DIRECTORY

E, naturalmente, il punto di forza è che puoi designare qualsiasi utente specifico, più utenti, ecc., Senza dover modificare le impostazioni di gruppo. E a differenza di chmod, se vuoi che alcune groupie abbiano accesso a una directory e ad altri groupie per avere accesso solo a un'altra, in realtà è possibile con setfacl. Infine, per visualizzare gli ACL di una directory, esegui getfacl :

getfacl DIRECTORY

E puoi specificare -R per vedere gli ACL per le sottodirectory o -d per vedere i valori predefiniti.

7
Nikhil Chelliah

La risposta rapida e facile -

un. Aggiungi ( -a ) il tuo utente ( user_name ) al gruppo ( -G ) www-data .

Sudo usermod -a -G www-data user_name

b. Assegna al gruppo ( g ) le stesse autorizzazioni ( = ) dell'utente proprietario ( u ) di/var/www Recursively ( -R ).

Sudo chmod -R g=u /var/www

Spiegazione: Apache 2 su Debian/Ubuntu imposta User & Group www-data come proprietario di/var/www . Le autorizzazioni predefinite per l'utente sono "Visualizza e modifica contenuto", tuttavia il Gruppo può solo "Visualizza contenuto". Quindi aggiungerti al www-data Group e dargli le stesse autorizzazioni dell'utente wwww-data, è un modo semplice e veloce per svilupparsi. Faccio questo per tutti i miei ambienti di sviluppo Web localhost (PC/Laptop).

2
user1138

Io uso tipicamente

chmod g+w /folder/ -R

È quasi auto-esplicativo.

Aggiunge tutti nel group di /folder/ per avere accesso write (+w), -R è per la ricorsione per sottocartelle.

1
Arda