Właśnie zainstalowałem apache2 na Ubuntu i zauważyłem, że folder / var / www jest chroniony. Mogę tylko sudo
wszystko, ale wolę po prostu dać dostęp do zapisu.
Jak mogę to zrobić?
Próbowałem, sudo chmod 7777 /var/www
ale to nie zadziałało.
Właśnie zainstalowałem apache2 na Ubuntu i zauważyłem, że folder / var / www jest chroniony. Mogę tylko sudo
wszystko, ale wolę po prostu dać dostęp do zapisu.
Jak mogę to zrobić?
Próbowałem, sudo chmod 7777 /var/www
ale to nie zadziałało.
Odpowiedzi:
Aby jak najlepiej dzielić się z wieloma użytkownikami, którzy powinni mieć możliwość pisania /var/www
, należy mu przypisać wspólną grupę. Na przykład domyślną grupą dla treści internetowych w Ubuntu i Debian jest www-data
. Upewnij się, że wszyscy użytkownicy, którzy potrzebują dostępu do zapisu, /var/www
znajdują się w tej grupie.
sudo usermod -a -G www-data <some_user>
Następnie ustaw odpowiednie uprawnienia na / var / www.
sudo chgrp -R www-data /var/www
sudo chmod -R g+w /var/www
Dodatkowo powinieneś ustawić katalog i wszystkie znajdujące się pod nim katalogi na „ustaw GID”, aby wszystkie nowe pliki i katalogi utworzone pod /var/www
były własnością www-data
grupy.
sudo find /var/www -type d -exec chmod 2775 {} \;
Znajdź wszystkie pliki /var/www
i dodaj uprawnienia do odczytu i zapisu dla właściciela i grupy:
sudo find /var/www -type f -exec chmod ug+rw {} \;
Być może będziesz musiał się wylogować i zalogować ponownie, aby móc wprowadzać zmiany, jeśli edytujesz uprawnienia do swojego konta.
sudo chmod -R g+w
, a nie g+rw
czy g+rwX
?
Jest na to prostszy sposób, spróbuj wykonać to polecenie.
sudo chmod -R 757 /var/www
Zasadniczo chmod
polecenie zmienia uprawnienia, a -R
przełącznik wpływa na wszystkich użytkowników. To po prostu daje prawidłowe uprawnienia do użycia.
chmod $permissions -R $file
jest nieważny…
sudo chmod -R 757 /var/www
Możesz także zreplikować to, co sugerował jtimberman, używając list kontroli dostępu . Komenda setfacl akceptuje -s w celu zastąpienia istniejącej listy ACL lub -m w celu jej modyfikacji; -R, aby listy ACL katalogu były rekurencyjne; i -d, aby ustawić określone ustawienia jako domyślne, co jest przydatne, jeśli oczekujesz nadchodzących kont użytkowników.
Te po prostu ustawiają uprawnienia dla użytkownika, grupy, innych i maski za pomocą chmod:
setfacl -m u::rwx, g::r-x, o::---, m:rwx DIRECTORY
I może to być sposób, w jaki zrobiłbyś to dla określonego użytkownika lub jego grupy:
setfacl -m u:USERNAME:rwx, g:USERNAME:r-x DIRECTORY
Oczywiście siłą jest to, że możesz wyznaczyć dowolnego konkretnego użytkownika, wielu użytkowników itp. Bez konieczności modyfikowania ustawień grupy. I w przeciwieństwie do chmod, jeśli chcesz, aby niektóre grupy miały dostęp do jednego katalogu, a inne grupy miały dostęp tylko do innego, to tak naprawdę jest to możliwe dzięki setfacl. Na koniec, aby wyświetlić listy ACL katalogu, uruchom getfacl :
getfacl DIRECTORY
I możesz podać -R, aby zobaczyć listy ACL dla podkatalogów lub -d, aby zobaczyć wartości domyślne.
Szybka i łatwa odpowiedź -
za. Dodaj ( -a ) swojego użytkownika ( nazwa_użytkownika ) do danych www grupy ( -G ) .
sudo usermod -a -G www-data user_name
b. Nadaj grupie ( g ) te same uprawnienia ( = ), co właścicielowi ( u ) w / var / www Rekurencyjnie ( -R ).
sudo chmod -R g=u /var/www
Objaśnienie: Apache 2 na Debianie / Ubuntu ustawia dane www użytkownika i grupy jako właściciela / var / www . Domyślne uprawnienia dla użytkownika to „Przeglądaj i modyfikuj zawartość”, jednak grupa może tylko „wyświetlać zawartość”. Tak więc dodanie się do grupy www-data i nadanie jej takich samych uprawnień, jak użytkownikowi wwww-data, to szybki i łatwy sposób na rozwój. Robię to dla wszystkich moich środowisk programistycznych localhost (PC / Laptop).
Możesz po prostu spróbować chmod 0777 /var/www
?
Słowo ostrzeżenia: jeśli pozwolisz wszystkim na dostęp do tego folderu, oznacza to, że hakerzy mogą uzyskać dostęp do tego folderu, jeśli uzyskają dostęp do twojego systemu. Dlatego lepiej jest utworzyć grupę dozwolonych użytkowników i dać tej grupie dostęp do zapisu.
Najpierw wprowadź konkretną ścieżkę folderu, a następnie za pomocą tego polecenia…
chmod -R 777 foldername
chown username:username foldername