Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: .NET Core 2.1, .NET Core 3.1, .NET 5
W tym artykule przedstawiono sposób konfigurowania aplikacji ASP.NET Core w systemie Linux w celu automatycznego uruchamiania w ramach innego użytkownika.
Wymagania wstępne
Aby wykonać ćwiczenia opisane w tej części, należy najpierw postępować zgodnie z konfiguracją opisaną w poprzednich częściach tej serii. Ponadto musisz mieć następujące elementy:
- Maszyna wirtualna z systemem Linux, najlepiej z systemem Ubuntu 18.04 LTS dystrybucji systemu Linux.
- Serwer Nginx działa automatycznie i nasłuchuje żądań na porcie 80.
- Serwer Nginx skonfigurowany jako zwrotny serwer proxy i kierowanie żądań przychodzących do aplikacji ASP.NET Core nasłuchującej na porcie 5000.
- Aplikacja ASP.NET Core skonfigurowana do automatycznego uruchamiania po ponownym uruchomieniu serwera lub zatrzymaniu lub awarii procesu.
Cel tej części
W poprzedniej części utworzono plik usługi dla naszej aplikacji ASP.NET Core i skonfigurowano usługę do uruchamiania w wbudowanym kontekście www-user.
Jednak w niektórych środowiskach możesz chcieć uruchamiać aplikacje w różnych kontekstach użytkownika. Zapewnia to pełną kontrolę nad izolacją od innych aplikacji, które mogą być uruchomione na tym samym serwerze. Jeśli na przykład hostujesz wiele aplikacji internetowych, możesz skonfigurować każdą aplikację do uruchamiania na własnym koncie użytkownika, aby mieć elastyczność konfigurowania uprawnień oddzielnie dla każdej aplikacji (zamiast uruchamiania wszystkich aplikacji w tym samym kontekście użytkownika www-data).
Celem jest skonfigurowanie aplikacji ASP.NET Core do uruchamiania na określonym koncie użytkownika.
Przećwiczyć sposób tworzenia użytkownika i dowiedzieć się, jak wyświetlić listę innych kont użytkowników dostępnych na komputerze.
Uwaga 16.
Ta część jest opcjonalna. Nie ma również znaczenia, w którym kontekście użytkownika uruchamiasz aplikację ASP.NET Core w pozostałej części serii samouczków.
Tworzenie nowego użytkownika do uruchamiania aplikacji
Zaczniesz od utworzenia nowego użytkownika i edytowania pliku usługi w celu uruchomienia usługi w tym nowym kontekście użytkownika. Aby utworzyć konto użytkownika, uruchom sudo adduser <username>
polecenie . W tym pokazie wybrana nazwa użytkownika to firstappuser
. Możesz jednak użyć dowolnej nazwy.
Ten zrzut ekranu przedstawia wynik tworzenia firstappuser
konta.
Pamiętaj, że usługa ASP.NET Core działa w kontekście użytkownika www-data. Jest to wbudowane konto, które jest używane dla aplikacji usług, w tym Apache i Nginx. Zalecamy użycie tego konta dla takich obciążeń. Jeśli sprawdzimy członkostwo w grupach użytkowników, uruchamiając groups www-data
polecenia i groups firstappuser
, nie zauważysz żadnych różnic.
Konta użytkowników lokalnych w systemie Linux są przechowywane w pliku /etc/passwd . Jeśli uruchomisz polecenie sudo cat /etc/passwd
, zobaczysz wszystkich użytkowników, w tym użytkownika głównego. Poniższy zrzut ekranu opisuje każdą kolumnę.
Aby zobaczyć różnice między użytkownikami www-data
i firstappuser
, uruchom sudo cat /etc/passwd | grep 'www-data\|firstappuser'
polecenie . Dane wyjściowe będą wyglądać podobnie do poniższych.
Uwaga 16.
Użytkownik www-data
skonfigurował /usr/sbin/nologin
powłokę. Oznacza to, że www-data
użytkownik nie może zalogować się na tym komputerze interaktywnie przy użyciu protokołu SSH. firstappuser
Jednak jest w stanie to zrobić. Ponieważ nowe konto będzie kontem usługi, ma sens, jako środek zabezpieczeń, aby zapobiec zalogowaniu się konta użytkownika.
Aby wyłączyć dostęp do powłoki, uruchom sudo usermod -s /usr/sbin/nologin firstappuser
polecenie .
Do tej pory utworzono konto (firstappuser), które może być używane jako konto usługi. Następnym krokiem jest skonfigurowanie usługi ASP.NET Core do uruchamiania na tym koncie użytkownika. Otwórz plik usługi przy użyciu polecenia vi. Zastąp ciąg "www-data" ciągiem "firstappuser" (lub dowolną wybraną nazwą użytkownika), a następnie zapisz plik.
Dzięki temu aplikacja ASP.NET Core może być uruchamiana przy użyciu innego konta użytkownika niż www-data
domyślne konto.
Po zmianie pliku usługi załaduj ponownie konfigurację, uruchamiając polecenie sudo systemctl daemon-reload
. Następnie uruchom ponownie usługę, uruchamiając polecenie sudo systemctl restart myfirstwebapp.service
.
Sprawdź, czy aplikacja działa na nowym koncie użytkownika
Istnieje kilka metod identyfikowania użytkownika, który uruchamia określony proces. Możesz na przykład uruchomić polecenie ps -aux | grep <username>
. Mimo że takie podejście może okazać się przydatne, nadal brakuje pewnych informacji, takich jak rzeczywista zawartość wiersza polecenia. Jednak istnieje prosty sposób zbierania bardziej pełnych informacji przy użyciu polecenia htop
.
Uwaga: Htop
jest menedżerem zadań. Zostanie wyjaśniona w dalszej części tej serii. Htop
jest wstępnie zainstalowany w kilku dystrybucjach systemu Linux, w tym w wersji serwera Ubuntu, którego prawdopodobnie używasz. Jeśli htop
nie jest zainstalowana w dystrybucji systemu Linux, możesz ją zainstalować za pomocą menedżerów pakietów.
Zapoznaj się z poniższym zrzutem ekranu. Możesz uzyskać ten element PID
, uruchamiając polecenie systemctl status
. Następnie przekaż polecenie PID
do htop
polecenia przy użyciu przełącznika -p
, aby uzyskać szczegółowe informacje dotyczące PID
tego procesu.
Oto dane wyjściowe htop -p <PID>
polecenia.
Jak pokazano na zrzucie ekranu, przykładowa aplikacja ASP.NET Core jest teraz uruchamiana pod nowym użytkownikiem utworzonym przy użyciu poleceń omówionych w tej części.
Aby zakończyć pracę htop
, naciśnij F10 lub Q.