Come dare l'autorizzazione di lettura e scrittura a una cartella e alle sue sottocartelle e file?


10

Ho cambiato la proprietà del mio file localhost /var/www/e delle sue sottocartelle e gli ho dato l'autorizzazione 777. Tuttavia, ogni volta che aggiungo una nuova cartella, la nuova cartella non ottiene automaticamente tale autorizzazione. Come posso dare un'autorizzazione 777 a una cartella per sempre in modo che se aggiungo una nuova cartella o file ottenga la stessa autorizzazione?



Il 777 è una cattiva idea . L'uso dell'ACL potrebbe adattarsi molto bene. Leggerai questa soluzione su ACL per vedere se funziona bene per te?

1
Allo stesso modo, per modificare tutte le directory è possibile utilizzare find . -type d -exec chmod 777 {} +per modificare tutte le directory in 777. Ricordare, è necessario accedere come root per ottenere risultati migliori e assicurarsi di essere nella cartella.
Redy S

Risposte:


1

Le autorizzazioni per i file appena creati sono impostate da umask


puoi scrivere il comando per creare / var / www / writable e dargli il permesso in modo tale da ottenere lo stesso permesso (777) per il sito che ho aggiunto di recente in esso.
Kamal,

1
Concedere l'autorizzazione 777 al tuo server web non va bene.
saji89,

Potresti per favore aggiungere maggiori dettagli.
saji89,

@ Vojtech Trefny. Al momento il link non funziona. Dice 404 Not Found.
all4naija,

12

È possibile utilizzare l'opzione ricorsiva in qualsiasi momento. sudo chown -R username /var/www


Hai bisogno di più voti!
Sheharyar,

10

Come altri hanno già detto , dare 777 autorizzazioni /var/wwwè una pessima idea, soprattutto nella produzione.

Una soluzione migliore sarebbe quella di concedere le autorizzazioni di scrittura solo agli utenti che devono modificare i file. Uno dei modi per farlo è:

  • creare un nuovo gruppo

  • aggiungere gli utenti che devono modificare i dati in /var/wwwquel gruppo

  • modificare in modo ricorsivo la proprietà di /var/wwwquel gruppo

  • impostato umaskin /var/wwwmodo che tutti i file appena creati siano di proprietà del gruppo che abbiamo creato.

Un'altra opzione sarebbe utilizzare ACL, ancora una volta, per concedere autorizzazioni di scrittura solo agli utenti che ne hanno bisogno.

Ecco le istruzioni dettagliate su serverfault .

In generale, il server web o altri servizi di rete o account utente di sistema non dovrebbero disporre di autorizzazioni di scrittura per i file serviti dal server web, poiché ciò apre una possibilità di esecuzione di codice arbitrario.


2

Dovresti modificare /etc/apache/envvarscome root con il tuo editor preferito.

Esempio: ALT+F2
gksudo gedit /etc/apache2/envvars

Vai alla fine del file e aggiungi una riga umask XXX.

Dove umask è l'opposto binario del valore di autorizzazioni desiderato.
Per 774 questo sarebbe 003. Per 777 cattiva idea sarebbe 000.

Salva.

Riavvia apache.

Esempio: sudo apache2ctl restart

Ciò riguarderà solo i file / le cartelle appena creati dall'utente apache.

Nota aggiuntiva, leggere e scrivere è 6 nello slot utente, gruppo o chiunque.


0

Inoltre, una soluzione "pronta all'uso" è quella di configurare il tuo server http per utilizzare cartelle diverse. Se usi Apache, modifica semplicemente i file di configurazione. In questo modo Non è necessario modificare le autorizzazioni per / var / www witch può essere una cattiva idea (potenziali problemi di sicurezza).

E umask è la risposta alla tua domanda. Può essere utilizzato per limitare i privilegi predefiniti per le cartelle e i file appena creati. E gli sviluppatori di distribuzione tendono ad usarlo per limitare l'accesso ad alcune cartelle di sistema.


0

Penso che tu voglia avere accesso in scrittura /var/wwwper modificare file e directory. Penso che la soluzione migliore sia installare apache2-mpm-itke nel file di configurazione dell'host virtuale aggiungere /etc/apache2/sites-available/default:

<IfModule mpm_itk_module>
    AssignUserId your-username your-group
</IfModule>

ed esegui in chown your-username\: /var/www -Rvquesto modo apache per quell'host virtuale verrà eseguito con il tuo UID / GID e sarai in grado di modificare i file. Anche i file creati da PHP avranno il tuo UID / GID

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.