2013-02-15 13 views
8

Obecnie ustawiam 0777 dla wszystkich katalogów i plików.
Jednak boję się dostępu do nich od innych osób.
Pliki dziennika i wszystkie kontrolery, modele, widoki i pliki w konfiguracji są ustawione na 0777Jak skonfigurować uprawnienia do aplikacji Rails?

Ogólnie, jak mają być ustawione?

  • Pliki dziennika katalogu i jego pliki
  • pliki kontrolera
  • modelowe pliki
  • Zobacz Fies
  • pliki w katalogu config

Odpowiedz

12

Należy zdecydowanie nie używają 0777 dla pliku uprawnienia. To znacznie łatwiej naraża się na luki w zabezpieczeniach.

Ogólnie śledzić tę zasadę:

  • dla folderów, należy 0755, co przekłada się na rwxr-xr-x. Uprawnienie do wykonywania pozwala na przeglądanie zawartości folderów.

    Znajdź/Your/szyny/dir -type d -exec chmod 755 {} +

  • Dla wykonywanych skryptów, również użyć 0755. Dzięki temu każdy może wykonywać skrypty, ale nie wprowadzać w nich zmian (zapisywać).

  • Dla wszystkich innych plików należy użyć 0644, co odpowiada rw-r--r--. Pozwala to każdemu odczytać plik, właściciela, aby zapisać do pliku, i nikt nie będzie wykonywał pliku. Zapobiega to między innymi wysyłaniu i wykonywaniu złośliwych skryptów.

    Znajdź/Your/szyny/dir -type f -exec chmod 644 {} +

  • Opcjonalnie pliki zawierające hasła można rozważyć bardziej restrykcyjne uprawnienia, zwłaszcza config/database.yml lub dowolne pliki zawierające hasła do rzeczy, jak poczta usługi (mandryl, sendgrid, data stempla pocztowego), wiadra Amazon S3 lub połączenia Redis. W przypadku tych plików możesz użyć 0600.

W środowisku produkcyjnym aplikacja rails powinna działać jako ten sam użytkownik (nie root), który jest właścicielem wszystkich tych plików. Jest to najłatwiejsze dzięki zastosowaniu passenger, lub uruchomieniu serwera WWW, takiego jak kundel lub wełniak, jako lokalnego użytkownika nasłuchującego na porcie, takim jak localhost:3000, i mającemu odwrotne proxy Apache lub Nginx na localhost:3000.

+0

Dzięki za szczegółowe wyjaśnienie. Tego nigdy nie myślałem. Jeszcze raz dziękuję :) – HUSTEN

+0

Czy mógłbyś mi powiedzieć te przypadki? 'controllers/examples_controller.rb',' models/example.rb', 'views/controllers/index.html.erb',' config/database.yml', 'config/environments/production.rb',' config/routes .rb' i pliki w katalogu 'tmp' – HUSTEN

+0

Zastosuj' 0755' do katalogów i '0644' do plików. – Benjamin

Powiązane problemy