Korzystam z serwera WWW i serwera FTP, z którymi /var/www
jest związany /home/user/www
.
Ustawiłem oba katalogi na chmod 777
(co jest w porządku, ponieważ służy tylko do testowania).
Mogę przesyłać pliki /home/user/www
, ale za każdym razem, gdy tworzę nowy katalog, zawsze muszę uruchamiać chmod 777
ten folder.
W przeciwnym razie, gdy próbuję go przeglądać, pojawia się komunikat o błędzie
Nie masz uprawnień dostępu do / testowania / na tym serwerze.
Czy istnieje sposób, aby każdy dostęp do wszystkich podfolderów /var/www
był dostępny? A może ich uprawnienia można ustawić automatycznie 777
? To denerwujące, że muszę pisać za chmod 777
każdym razem.
permissions
apache2
chmod
użytkownik1645034
źródło
źródło
Odpowiedzi:
Jest to zła praktyka, ale mam nadzieję, że wykorzystujesz to do rozwoju lub masz inny dobry powód. Możesz określić uprawnienia podczas tworzenia katalogu, korzystając z
-m
opcji:Lub możesz ustawić uprawnienia rekurencyjnie.
Przed użyciem jednego z nich naprawdę zastanów się, czy chcesz, aby Twój system plików był tak dostępny.
Edycja: Jak wspomniał Rinzwind tutaj, jest to lepszy sposób na osiągnięcie tego, co chcesz.
Sprawdź, do której grupy należy Twój
/var/www
katalog, i dodaj użytkownika do tej grupy.Grupa jest prawdopodobnie
www-data
.Wtedy będziesz w stanie ustawić swoje uprawnienia na 775.
źródło
Pliki i katalogi w Uniksie mogą mieć trzy typy uprawnień: read (
r
), write (w
) i execute (x
). Każde uprawnienie może dotyczyćon
luboff
każdej z trzech kategorii użytkowników: właściciela pliku lub katalogu; inne osoby w tej samej grupie co właściciel; i wszystkie inne. Aby zmienić tryb pliku, użyj polecenia chmod. Ogólna forma to chmod X @ Y plik1 plik2 ...źródło
dla ftp tworzącego wszystkie pliki z różnymi uprawnieniami, możesz poszukać umask ftpd, jak ten demon jest uruchamiany
Zajrzyj na tę stronę https://linuxaria.com/article/linux-shell-understanding-umask-with-examples
źródło
Ogłoszenie publiczne:
Nigdy nie używaj chmod 777 do rozwiązywania problemów
Jest to poważne zagrożenie bezpieczeństwa, jeśli uruchamiasz jakiekolwiek usługi dostępne publicznie, zwłaszcza aplikacje internetowe (np. PHP).
Model bezpieczeństwa systemu operacyjnego zakłada, że wiele usług (takich jak serwer WWW) działa z ograniczonymi uprawnieniami, aby uniemożliwić im modyfikowanie plików. Ustawienie 777 dla plików psuje ten projekt.
Użytkownik zdalny może zapisywać lub przesyłać pliki, a następnie nakłonić serwer (lub inny proces w systemie) do odczytu lub wykonania. Skrypty lub oprogramowanie mogą mieć wady, które na to pozwalają. Bardzo trudno jest zablokować każdy sposób, w jaki może się to zdarzyć, jeśli istnieją katalogi do zapisu na świecie.
Używany w niektórych katalogach systemowych (/ usr, / etc, / var itd.) Może zepsuć twój system w zaskakujący sposób.
Niektóre niezbędne pliki systemowe wymagają specjalnych uprawnień, takich jak uprawnienia setuid / setgid, aby mogły zostać uruchomione. Na przykład sudo. Unikaj zmieniania jakichkolwiek uprawnień do plików w katalogach i plikach skonfigurowanych przez sam system.
Nie ma sposobu, aby go cofnąć i odzyskać wszystkie stare uprawnienia.
Oznacza to, że jeśli wcześniej posiadałeś pliki i foldery o różnych uprawnieniach, nie możesz wrócić do tych konkretnych uprawnień - wystarczy zmienić je wszystkie na to samo, co może spowodować utratę określonych ustawień uprawnień, które były potrzebne dla określonych plików.
Zawsze istnieje bardziej odpowiedni sposób na osiągnięcie tego, co chcesz osiągnąć.
W takim przypadku wygląda na to, że chcesz, aby Twój serwer WWW mógł czytać katalog. Zezwolenie na pisanie na całym świecie to o wiele więcej niż trzeba.
Wyśledz, dlaczego serwer WWW nie może odczytać tego katalogu (wskazówka: prawdopodobnie dlatego, że twój katalog domowy nie jest czytelny dla całego świata. Czytelny dla całego świata jest o wiele bezpieczniejszy niż zapisywalny dla całego świata - ustaw swój katalog domowy na 755 lub przenieś ten katalog www poza swój dom w miejsce takie jak / var / www lub / srv).
źródło
To mi nie działa.
Muszę
-f
też użyć .źródło
Jeśli chcesz skopiować uprawnienia i / lub własność z innego pliku, z którego jesteś zadowolony, możesz to zrobić, używając sudo chmod --reference = ścieżka / do / pliku / do / referencji / do / pliku / ciebie / chcesz / do / change / permissino / to
I możesz zrobić to samo dla własności plików.
źródło