Zmieniłem własność mojego pliku localhost /var/www/
i jego podfolderów i dałem mu uprawnienia 777. Jednak za każdym razem, gdy dodam nowy folder, nowy folder nie otrzymuje automatycznie tego uprawnienia. Jak mogę przyznać uprawnienia do folderu 777 na zawsze, aby po dodaniu nowego folderu lub pliku uzyskało to samo uprawnienie?
permissions
kamal
źródło
źródło
find . -type d -exec chmod 777 {} +
do zmiany wszystkich katalogów na 777. Pamiętaj, że musisz być zalogowany jako root, aby uzyskać lepsze wyniki i upewnij się, że jesteś w folderze.Odpowiedzi:
Uprawnienia dla nowo utworzonych plików są ustawiane przez umask
źródło
Możesz skorzystać z opcji rekurencyjnej w dowolnym momencie.
sudo chown -R username /var/www
źródło
Jak już wspomnieli inni , nadanie uprawnień 777
/var/www
jest naprawdę złym pomysłem, szczególnie w produkcji.Lepszym rozwiązaniem byłoby nadanie uprawnień do zapisu tylko użytkownikom, którzy muszą zmodyfikować pliki. Jednym ze sposobów na to jest:
utwórz nową grupę
dodaj użytkowników, którzy muszą zmodyfikować dane w
/var/www
tej grupierekurencyjnie zmieniaj własność
/var/www
tej grupyzestaw
umask
na/var/www
tak wszystkich nowo utworzonych plików są własnością grupy, jakie stworzył.Inną opcją byłoby ponowne użycie ACL, aby dać uprawnienia do zapisu tylko użytkownikom, którzy ich potrzebują.
Oto szczegółowe instrukcje dotyczące błędu serwera .
Zasadniczo serwer WWW lub inne usługi sieciowe lub konta użytkowników systemu nie powinny mieć uprawnień do zapisu do plików obsługiwanych przez serwer WWW, ponieważ otwiera to możliwość wykonania dowolnego kodu.
źródło
Powinieneś edytować
/etc/apache/envvars
jako root w wybranym edytorze.Przykład: ALT+F2
gksudo gedit /etc/apache2/envvars
Idź na koniec pliku i dodaj linię
umask XXX
.Gdzie umask jest binarnym przeciwieństwem żądanej wartości uprawnień.
Dla 774 byłoby to 003. Dla 777 złego pomysłu byłoby to 000.
Zapisać.
Uruchom ponownie apache.
Przykład:
sudo apache2ctl restart
Wpłynie to tylko na pliki / foldery nowo utworzone przez użytkownika apache.
Dodatkowa uwaga, odczyt i zapis to 6 w gnieździe użytkownika, grupy lub dowolnej osoby.
źródło
Ponadto, niektórym rozwiązaniem „od razu po wyjęciu z pudełka” jest skonfigurowanie serwera HTTP do korzystania z innego folderu. Jeśli używasz Apache, po prostu edytuj pliki konfiguracyjne. W ten sposób nie musisz zmieniać uprawnień dla / var / www, co może być złym pomysłem (potencjalne problemy bezpieczeństwa).
A umask jest odpowiedzią na Twoje pytanie. Można go użyć do ograniczenia domyślnych uprawnień dla nowo tworzonych folderów i plików. Programiści dystrybucji często używają go do ograniczania dostępu do niektórych folderów systemowych.
źródło
Myślę, że chcesz mieć dostęp do zapisu,
/var/www
aby modyfikować pliki i katalogi. Myślę, że najlepszym rozwiązaniem jest instalacja,apache2-mpm-itk
aw pliku konfiguracyjnym hosta wirtualnego dodaj/etc/apache2/sites-available/default
:i uruchom w
chown your-username\: /var/www -Rv
ten sposób apache dla tego wirtualnego hosta będzie działał z twoim UID / GID i będziesz mógł edytować pliki. Nawet pliki utworzone przez PHP będą miały Twój identyfikator UID / GIDźródło