Błąd „To konto jest obecnie niedostępne” podczas próby ssh

46

Podczas próby nawiązania połączenia SSH występuje błąd:

$ ssh -p 22 [email protected] 
This account is currently not available
Mert Özoğul
źródło

Odpowiedzi:

59

Występuje This account is currently not available.błąd, ponieważ powłoka dla użytkownika www-datajest ustawiona na /usr/sbin/nologin, i jest ustawiona z bardzo dobrego powodu. Nie powinieneś się logować www-data, ponieważ jest to specjalny użytkownik / grupa używana przez serwer WWW, nieprzeznaczony do regularnego używania powłoki.

EDIT : Jest to szczególnie zły pomysł , aby dać sudoprawa www-data. Jeśli Apache miał działać z uprawnieniami administratora, nie miałby własnej grupy. Robiąc to, tworzysz ogromne dziury w zabezpieczeniach. Zostałeś ostrzeżony.

kraxor
źródło
5
To nie jest zbyt konstruktywne. Jakie informacje powinienem dodać, aby poprawić tę odpowiedź?
kraxor
4
@kraxor jest poprawny, ale jeśli musisz, możesz zalogować się jako root i zmienić / usr / sbin / nologin w / etc / passwd na / bin / bash, a to zapewni dostęp do powłoki użytkownika. Robię to, gdy uruchamiam binarny plik Snap jako mój serwer. www-data jest ogólnie zarezerwowana dla nginx / apache na ubuntu, stąd status braku logowania.
inżynierDave
4
@RyanNerd To twój wybór, aby nie „dać szczurowi $$ bzdury bezpieczeństwa”. Uruchamianie wszystkiego jako root nie jest zalecane nawet w Dockerze. Możesz oczywiście skonfigurować Apache do działania jako rootlub dodać powłokę logowania www-data, ale to jak otwieranie butelki wina przez rozbicie butelki, ponieważ jesteś zbyt leniwy i nieostrożny, aby użyć śruby korkowej.
kraxor
@kraxor Twój link do dokera jest nieaktualny. WSZYSTKO jest nadal własnością root w Docker i nadal stanowi problem .
RyanNerd
Mam podobny przypadek. Chcę uruchomić LibreOffice w trybie bezgłowym w taki sposób, aby można go było wywoływać za pomocą skryptu PHP w celu konwersji dokumentów i zapisywać pliki na dysku jako dane www, ponieważ pliki te muszą zostać później usunięte przez dane www (część skrypt PHP), aby je wyczyścić. To (uruchomienie bezgłowego LibreOffice jako danych www użytkownika) działało w poprzednich wersjach Ubuntu i rozumiem, że jest to poprawa bezpieczeństwa w porównaniu z wcześniejszymi wersjami.
ywarnier 21.07.16
56

Chociaż zgadzam się z innymi, że zezwolenie na logowanie przez SSH przez użytkownika www-data jest ogólnie złym pomysłem, po zalogowaniu się z normalnym użytkownikiem może być przydatne uruchamianie wielu poleceń jednocześnie z zestawem uprawnień www- użytkownik danych. W takim przypadku można uruchomić

sudo su -l www-data -s /bin/bash

i będziesz mieć dostęp do swoich plików jako użytkownik danych www.

D. Scott Boggs
źródło
2
Bardzo przydatne do debugowania uprawnień dla użytkownika demona / usługi
jmng
właśnie uratowałeś mi dzień dzięki! Miałem problem z uruchomieniem usługi perl-fcgi, ponieważ skrypt startowy nie był używany-s /bin/bash
Couitchy
-1

Pierwsze pytanie, które musiałbym zadać, brzmi: co próbujesz osiągnąć, robiąc to?

kraxor jest w 100% poprawny, nigdy nie powinieneś mieć możliwości ssh na swoim serwerze za pomocą użytkownika Apache / Nginx. Takie postępowanie zaprasza każdego hakera z połową komórki mózgowej do twojego serwera.

Jeśli potrzebujesz uruchomić skrypt lub jakiś program jako ten użytkownik, możesz spróbować sudo -u www-data yourscriptlub możesz tymczasowo zapisać chownplik dla użytkownika z uprawnieniami do logowania. To po prostu zły pomysł, aby zezwolić na dostęp do tego rodzaju konta.

TheStarvingGeek
źródło
6
Powinieneś wiedzieć, że su -to nie działa na kontach z wyłączonym logowaniem.
sorin
Jakie konto jest wyłączone? Nie mówi nic o wyłączeniu konta
TheStarvingGeek
1
Cóż, posiadanie nologin w passwd oznacza wyłączone logowanie :)
sorin
1
To konto usługi, a nie konto wyłączone, można na nim uruchamiać polecenia
TheStarvingGeek
Wygląda na to, że mój serwer nie zna tego rozróżnienia @TheStarvingGeek
LovesTha