2013-02-15 13 views
8

Attualmente ho impostato 0777 in tutte le directory e file.
Tuttavia, ho paura di essere visitato dagli altri.
file di log e tutti i controller, i modelli, le viste e le file di configurazione sono impostati per 0777Come dovrei impostare il permesso per l'app Rails?

In generale, come si suppone da impostare?

  • file di registro di directory e relativi file
  • file del controller
  • file modello
  • vista FIE
  • i file nella directory config

risposta

12

non si dovrebbe assolutamente utilizzare 0777 per il file permessi. Questo ti espone più facilmente alle vulnerabilità.

In generale, seguire questo principio:

  • Per le cartelle, utilizzare 0755, il che equivale a rwxr-xr-x. Il permesso di esecuzione consente di visualizzare i contenuti della cartella.

    find/tuoi/rotaie/dir tipo d exec chmod 755 {} +

  • Per gli script eseguiti, utilizzare anche 0755. Ciò consente a chiunque di eseguire gli script, ma di non apportare modifiche (scrivere) a loro.

  • Per tutti gli altri file, utilizzare 0644 che equivale a rw-r--r--. Ciò consente a tutti di leggere il file, il proprietario di scrivere sul file e nessuno di eseguire il file. Ciò impedisce, tra le altre cose, che gli script dannosi vengano caricati ed eseguiti.

    find/tuoi/rotaie/dir -type f exec chmod 644 {} +

  • Facoltativamente, i file contenenti le password si potrebbe prendere in considerazione le autorizzazioni più restrittive, in particolare config/database.yml o qualsiasi file contenenti le password per cose come la posta servizi (mandrill, sendgrid, timbro postale), bucket Amazon S3 o connessioni Redis. Per questi file è possibile utilizzare 0600.

In un ambiente di produzione, l'app per rotaie deve essere in esecuzione come lo stesso utente (non root) proprietario di tutti questi file. Ciò si ottiene più facilmente utilizzando passenger, unicorn o eseguendo un server Web come mongrel o webrick come utente locale che ascolta su una porta come localhost:3000 e con proxy inverso Apache o Nginx su localhost:3000.

+0

Grazie per la spiegazione dettagliata. Questo è quello a cui non ho mai pensato. Grazie ancora :) – HUSTEN

+0

potresti dirmi questi casi? 'controllori/examples_controller.rb',' modelli/example.rb', 'viste/controller/index.html.erb',' config/database.yml', 'config/ambienti/production.rb',' config/percorsi .rb', e i file sotto la directory 'tmp' – HUSTEN

+0

Applicare' 0755' alle directory e '0644' ai file. – Benjamin

Problemi correlati