Do tej pory walczyłem z uprawnieniami i zadałem kolejne pytanie, ale zidentyfikowałem, na czym polega problem, ale nie ma jeszcze sposobu, aby go naprawić.
Moja konfiguracja:
- Ubuntu Desktop ze stosem LAMP
- 5 „użytkowników”. Utworzyłem użytkowników, których utworzyłem na serwerze ubuntu
sudo useradd -r -s /bin/false USERNAME
i którzy używają ich do uzyskania dostępu do folderów współdzielonych w sieci lokalnej, tj. Do komputerów w mojej sieci, aby połączyć się z folderem / var / www, udostępnionym przy użyciu Samby. - EDYCJA: Celem jest stworzenie czegoś w rodzaju „głównego hosta lokalnego”, w którym wszystkie komputery w mojej sieci lokalnej mogą pracować na tej samej stronie, lokalnie (NIE mam statycznego adresu IP, więc dostęp do serwera jest niemożliwy) .
Mój problem:
Obecnie, kiedy tworzę nowy folder na /var/www/html
(np. Tworzenie folderu / var / www / html / testsite1) na dowolnym komputerze w sieci, ten folder jest automatycznie własnością boris:www-data
(„boris” jest głównym użytkownikiem administracyjnym w mojej instalacji Ubuntu na pulpicie , i pokazuje rzeczywiście boris: www-data, gdy działa ls -l
na nowo utworzonym folderze), co powoduje problemy z moją obecną konfiguracją (głównie używanie Duplicator Plugin do wordpress przez LifeInTheGrid). Jednak zarówno moja, jak /var/www
i moja /var/www/html
są własnościąwww-data:www-data
Dlatego chciałbym wiedzieć, jak mogę:
Zmień własność na www-data: www-data wszystkich plików ORAZ katalogów poniżej / var / www i / var / www / html
Upewnij się, że każdy plik lub folder, który utworzę u któregokolwiek z użytkowników mojej sieci, będzie automatycznie własnością www-data: www-data (Obejmuje to pliki tworzone automatycznie przez skrypty php, ponieważ to właśnie robi wtyczka Duplicator, jeśli jestem nie źle).
Czy jest na to sposób?
Uwaga: Jestem super nowicjuszem w sprawach związanych z Linuksem i wierszami poleceń, ale szybko nadrabiam zaległości.
Uwaga 2: umask jest już ustawiony jako 0002
EDYTOWAĆ:
Próbowałem tego:
sudo chown -R www-data:www-data /var/www/
A następnie ustaw bity setuid i setgid, wykonując następujące czynności:
sudo chmod u+s /var/www/html
sudo chmod g+s /var/www/html
Następnie wylogowałem się, ponownie uruchomiłem apache i próbowałem utworzyć nowy folder za pomocą komputera Mac podłączonego do mojego serwera przez sieć IP (lokalny adres IP, nie statyczny).
I Ran
ls -l on /var/www/html
Dane wyjściowe są nadal:
drwxr-sr-x 2 boris www-data testsite1
Uwaga:
Już wcześniej sprawdziłem konfigurację apache i envvars, jest już ustawiona na:
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
EDYCJA: Próbowałem wstecz, np. Konfigurując wszystko, co należy do boris: www-data i ustawiłem envvars apache config na boris: www-data. ZADZIAŁAŁO!
Oto co zrobiłem:
Zmieniono envvary na
export APACHE_RUN_USER=boris
export APACHE_RUN_GROUP=www-data
Biegł
sudo chown -R boris:www-data /var/www/
Zrestartowałem Apachem, utworzyłem nowy folder, dodałem moje pliki, uruchomiłem wtyczkę, teraz mówi, że jest dobra !!!
źródło
Odpowiedzi:
Odpowiedź na pytanie nr 1: Rekurencyjne
chown
Rekursywny
chown
pozwoli Ci ustawić własność i grupę do tego, czego chcesz/var/www/...
. Oto polecenie, którego powinieneś użyć:Dzięki temu każdy plik i folder zostanie tam ustawiony jako taki z tymi uprawnieniami własności.
Pół odpowiedzi na pytanie nr 2:
setgid
bitJeśli chcesz domyślnej własności grupy do plików, ustaw
setgid
bit w/var/www/html
folderze. Następnie należy utworzyć nowe pliki z tą grupą, jak podano w folderze.Musisz jednak ustawić uprawnienia do zapisu, jeśli jakikolwiek użytkownik INNY niż
www-data
pisze do katalogów, i może to otworzyć cię na lukę bezpieczeństwa, jeśli nie będziesz ostrożny.Kończy się to posiadaniem uprawnień
$USER:www-data
; aby zmienić właściciela, użyj następniechown
metody wskazanej w metodzie nr 1 (która mówi, że w prawidłowej konfiguracji powinieneś polegać na uprawnieniach grupy, a nie uprawnieniach właściciela użytkownika na dostęp do plików internetowych).Problem z powielaczem PHP Wordpress
Problem z uprawnieniami polega na tym, że użytkownik / grupa PHP działa zgodnie z potrzebami zapisu i odczytu oraz prawdopodobnie
+x
w katalogu do edycji struktury katalogu i tym podobnych.PHP działa
www-data
domyślnie w instalacjach Ubuntu, które używają domyślnych konfiguracji. Najlepiej byłoby, gdyby powyższe kroki rozwiązały problem, ponieważ utknąłeś przy wtyczce Duplicator jako wtyczce PHP.Idealnie powinieneś również sprawdzić dokumentację wtyczki Duplicator, aby sprawdzić, jakie uprawnienia są potrzebne do uruchomienia i pracy.
źródło
Aby mieć pewność, że każdy utworzony plik lub folder
/var/www/html
automatycznie staje się własnością www-danych, których możesz użyćinotify
, to jest jak cron, ale monitoruje foldery / pliki pod kątem zmian atrybutów, tworzenia plików, modyfikacji i wielu innych.Najpierw zainstaluj go za pomocą:
Pozwól rootowi używać
incron
, otwierając za/etc/incron.allow
pomocą:i dodaj
root
do pliku, a następnie zapisz i wyjdź.Edytuj swój incrontab za pomocą:
i dodaj do niego następujący wiersz:
Zapisz i wyjdź.
Teraz, jak tylko plik zostanie utworzony w katalogu bezpośrednim
/var/www/html
, automatycznie ustawi onwership nawww-data:www-data
.Objaśnienie wiersza w incrontab:
/var/www/html
to katalog, który będzie monitorowany.IN_CREATE
będzie wyszukiwał utworzone pliki. To maska zmiany pliku ./bin/chown -R www-data:www-data /var/www/html/
to polecenie / akcja do wykonania.źródło
./html
jest sugerowane tutaj (jako część / var / www /)-R
sprawia, że jest rekurencyjny (więc przejdzie przez wszystkie katalogi/var/www/
).Ustaw konfigurację apache na www-data. Widzieć
/etc/apache2/envvars
Musisz ponownie uruchomić Apache po edycji (
sudo service apache restart
).Problemem tutaj prawdopodobnie nie jest wtyczka, ale php. Użytkownik powinien być tym samym procesem, w którym działa PHP. Prawdopodobnie więc musisz ustawić to również na dane www, jeśli jest to użytkownik i grupa (
/etc/php5/apache2/php.ini
).źródło
www-data
, podobnie jak Debian, jak sądzę./var/www/html
jest także własność grupy oraz uprawnienia do odczytu / zapisu. Innym problemem jest to, że chcą, aby każdy plik utworzony przez użytkownika miałwww-data:www-data
, i sądzę, że są to użytkownicy sieci , a nie użytkownicy Wordpress, więc musisz postępować zgodnie z uprawnieniami do plików Linuksa.Rozwiązałem to! Nadal uważam, że był to problem związany z apaczami Apache, ale nie jestem pewien, czy właśnie to rozwiązało problem ... W każdym razie oto, co zrobiłem:
Zmieniono envvary na
Biegł
Teraz działa do tej pory. Testuje dalej ...
źródło