Wydaje się, że może to być łatwiejsze niż dodanie użytkownika do serwera? adduser
polecenie adduser
w konsoli, odpowiedziałem na kilka pytań na temat hasła i innych informacji, i tutaj możesz zalogować się za pomocą otrzymanego loginu i hasła, umieścić pliki itp.
Następnie ręcznie, musisz utworzyć foldery. Na przykład jeden dla witryny. Drugi dotyczy plików tymczasowych, aby nie upuścić ich na ogólne / tmp dla celów ochrony. Jeszcze jedno - dla sesji, jeśli buforowanie w Redis nie jest skonfigurowane. Musisz również skopiować niezbędne pliki konfiguracyjne, takie jak publiczny klucz ssh do uwierzytelnienia .
Wszystko to staje się zbyt niewygodnym procesem, gdy użytkownicy muszą tworzyć często, jeśli nie ciągle. Na szczęście możemy dostosować wiele, w tym parametry podstawowe podczas tworzenia (lokalizacja folderu domowego, grupy), i drugorzędne - niezbędne foldery, pliki ustawień.
Początkowe ustawienia, określone przez polecenie adduser
, są pobierane z pliku /etc/adduser.conf.
Zmień folder domowy
Początkowo foldery domowe wszystkich użytkowników znajdują się w sekcji / home. Ale możemy wcześniej przesłonić lokalizację za pomocą dowolnego innego folderu, na przykład / var / www. Aby to zrobić, edytuj parametr DHOME
.
DHOME = / var / www
Zwróć uwagę na parametr SKEL=/etc/skel
. Określa, gdzie będą kopiowane pliki ustawień i foldery dla każdego użytkownika. Na pewno widziałeś pliki .profile , .bashrc w folderach użytkowników twojego serwera. Są one po prostu skopiowane z tego źródła. :)
Dodaj użytkowników do jednej grupy
Przy domyślnych parametrach dla każdego użytkownika tworzona jest osobna grupa o tej samej nazwie. Ale w przypadku serwera WWW możesz dodać różnych użytkowników do tej samej grupy, aby lepiej zarządzać swoją polityką bezpieczeństwa.
Kiedy użytkownik jest tworzony do hostowania stron, prawo do edycji / usuwania plików powinno należeć tylko do niego. Serwer internetowy, czy to nginx czy apache, powinien zostać uruchomiony w imieniu innego użytkownika, który może tylko czytać pliki. Inni użytkownicy nie powinni mieć żadnych praw.
Dodając wszystkich użytkowników w jednej grupie, możemy ustawić uprawnienia dla tej grupy tylko do odczytu. I uruchom serwer sieciowy w imieniu tej grupy. To lepsze niż dodanie użytkownika serwera WWW do grup użytkowników, w których znajdują się witryny.
Ogólna grupa będzie danymi grupy www dla użytkownika. Jest specjalnie stworzony do uruchamiania serwerów WWW, ma najbardziej ograniczone prawa i nie może korzystać z powłoki.
W pliku adduser.conf najpierw musimy wyłączyć tworzenie grupy o tej samej nazwie podczas tworzenia użytkownika.
USERGROUPS = nie
A następnie wskaż ID grupy danych www.
USERS_GID = 33
Z reguły identyfikator ma wartość 33. Należy jednak dwukrotnie sprawdzić, wykonując polecenie jako root: id www-data
.
I ostatni parametr do zmiany w tym pliku konfiguracyjnym:
DIR_MODE = 0710
Definiuje prawa do katalogu domowego użytkownika / var / www / username . Tutaj zezwalamy na wszystkie działania właścicielowi plików, wykonujemy je tylko dla grupy i nie dajemy żadnych praw innym osobom.
Prawa dla konkretnego użytkownika i dodatkowe pliki
Teraz musimy nadal wydawać właściwe prawa, ale w ramach jednego użytkownika. Tak więc przy tworzeniu plików i folderów natychmiast zostały im przypisane niezbędne uprawnienia, odpowiednio edytowano parametr umask
w plikach .bashrc i .profile.
umask 027
W przypadku folderów prawa te będą interpretowane jako 0750, co pozwala na dowolne działania z plikami dla właściciela, czytanie i wykonywanie dla grupy.
A dla plików 0640: przeczytaj / zmodyfikuj dla właściciela i czytaj tylko dla grupy. Polecam samodzielny artykuł na temat praw dostępu w Linuksie.
Nie zapomnij również w katalogu / etc / skel, aby zaktualizować prawa do istniejących plików i folderów za pomocą polecenia chmod.
Na koniec tworzymy dodatkowe foldery: dla stron internetowych, plików tymczasowych, sesji itp. Plik authorized_keys z kluczem publicznym dla ssh musi znajdować się w folderze .ssh użytkownika. W rezultacie struktura będzie wyglądać następująco:
/ etc / skel -.ssh / --autoryzowane_ klucze -sesje / -tmp / -www / -.bashrc -.profile
Wszystko to zostanie skopiowane do katalogu domowego użytkownika, kiedy zostanie utworzone.