Użytkownik bez hasła - jak zalogować się na to konto z konta innego niż root

25

Właśnie zacząłem używać Scientific Linux (7.0) (choć zakładam, że to pytanie może być neutralne pod względem dystrybucji ..). Wersja jądra to 3.10.0-123.20.1.el7.x86_64.

Wracając do mojego pytania.

Przełączyłem się na rootkonto i stamtąd utworzyłem nowe konto użytkownika test-accountza pomocą polecenia adduser test-account. Nie monitował mnie o hasło ani nie użyłem opcji podania hasła. Sądzę więc, że jest to konto „bez hasła”. Mogę zalogować się na to konto z konta root - co, jak sądzę, byłbym w stanie bez podania hasła, nawet gdyby konto testowe miało hasło. Jednak gdy próbuję zalogować się na to (konto testowe) z trzeciego konta - monituje mnie o hasło. I samo naciśnięcie Enternie działa.

Czy można zalogować się na to konto z konta innego niż root. Czy istnieje sposób (bez przełączania się na rootowanie lub używanie sudo)?

Lavya
źródło
Polityką twojego systemu może być to, że wymagane jest hasło. adduserzna -popcję ustawienia hasła, jednak jego użycie nie jest zalecane. Więc jako root zrób passwd test-accounti ustaw hasło.
ott--
nie, konto jest tworzone bez hasła, a nawet mogę uzyskać do niego dostęp, przechodząc do niego z poziomu roota. jedyne, czego nie jestem w stanie zrobić, to przełączyć się na zwykłego użytkownika.
Lavya
Jak przełączyć się na to z katalogu głównego (jakiej komendy używasz)?
roaima
@roaima su test-account. To przełącza się na test-accountmonit bez hasła (co by się stało, nawet gdyby test-accountmiał hasło). Jednak gdy próbuję przełączyć się na konto testowe z innego nieuprzywilejowanego konta użytkownika, jądro pyta mnie o hasło z monitem i nie przyjmuje nieważności (naciśnięcie eneter)
Lavya
Masz już odpowiedź na to pytanie. Cieszyć się.
roaima

Odpowiedzi:

29

Domyślnie w GNU / Linux dla przedsiębiorstw i jego pochodnych adduserpolecenie tworzy użytkownika, który jest wyłączony, dopóki nie zostanie wyraźnie określone hasło dla tego użytkownika.

Oto przykład CentOS 6.5, który powinien być taki sam jak Scientific Linux.

 $ sudo adduser test
 $ sudo grep test /etc/shadow
 test:!!:123456:0:99999:7:::

Powodem tego jest to, że w /etc/shadowpliku pole hasła jest takie, !!jak widać w przykładzie.

po uruchomieniu passwddla tego konta zmieni ono hasło użytkownika i umożliwi mu logowanie.

więc powinieneś być w stanie wykonać następujące czynności, aby mieć użytkownika bez hasła, po prostu utwórz konto, a następnie usuń hasło.

 $ sudo adduser test
 $ sudo passwd -d test
 Removing password for user test.
 passwd: Success
 $ su test
 $ whoami
 test

teraz każdy użytkownik powinien móc używać sui logować się jako użytkownik testw moim przykładzie. nie będziesz musiał sudosię logować jako konto.

Chociaż jest to możliwe i możesz mieć konto bez hasła, nie jest to zalecane. Jeśli po prostu ustawisz hasło dla użytkownika, powinieneś mieć możliwość logowania.

$ sudo passwd test
[sudo] password for <YOURACCOUNT>:
Changing password for user test.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
Nathan McCoy
źródło
„polecenie adduser tworzy użytkownika, który jest wyłączony, dopóki nie określisz hasła dla tego użytkownika”: w jaki sposób mogę przełączyć się na test-account root, jeśli tak jest (użytkownik jest wyłączony)?
Lavya
su test-account
Nathan McCoy
Chciałem zapytać, czy jeśli konto jest wyłączone, to w jaki sposób mogę się na nim przełączyć za pomocą suroota?
Lavya
2
rootpuszka użytkownika sudo dowolnego konta, które ma powłokę. Jeśli na przykład powłoka została ustawiona /bin/falsena, nie działałaby. To tylko magia root! wiele kont użytkowników nie ma prawidłowej powłoki i są używane tylko do uruchamiania określonych programów jako ten użytkownik. takich jak apacheużytkownik i serwer WWW Apache.
Nathan McCoy,
W Ubuntu 18.04 nie mogę zalogować się jako użytkownik z pustym hasłem.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
3

Mam gościa użytkownika, który nie wymaga hasła. Oto jego zapis:

gość: U6aMy0wojraho: 17057: 0: 99999: 7 :::

Ciąg „U6aMy0wojraho” jest hashowanym hasłem użytkownika-gościa. Kiedy się loguję, po prostu wciskam Enter, aby uzyskać hasło, a system pozwala mi się zalogować.

Powinieneś edytować plik / etc / shadow i dodać wyżej wspomniany ciąg zaraz po nazwie użytkownika i pierwszym dwukropku.

Skopiowałem ten ciąg z Live CD Ubuntu - jego użytkownik nie ma hasła.

Raicho Nikołow
źródło
Zamiast zaakceptowanej odpowiedzi ( passwd -d ...) działa to dodatkowo z sddm.
mzimmer
1
/etc/shadowBezpośrednia edycja pliku jest ryzykowna i zwykle nie jest zalecana. Posiadanie guestkonta jest w porządku, ale użycie narzędzi do edycji hasła ograniczy potencjalne niewłaściwe wprowadzanie danych przez użytkownika lub problemy z zapisywaniem plików dla wielu użytkowników.
Nathan McCoy,
@NathanMcCoy, zgadzam się, że jest to ryzykowne. Jednak narzędzia GUI nie pozwalają na tworzenie pustych haseł - wymaga co najmniej 6 lub 8 znaków. Przynajmniej tak jest w przypadku Kubuntu, którego używam.
Raicho Nikolov
@NathanMcCoy tak, można chpasswd -eby to zrobić bardziej bezpiecznie: unix.stackexchange.com/a/472966/32558
Ciro Santilli 3 改造 中心 法轮功 六四 事件
Jest to idealne rozwiązanie w przypadkach awaryjnego odzyskiwania, podłącz dysk twardy (że tak powiem) i edytuj kilka plików, aby naprawić urządzenie. W szczególności dodaj tego użytkownika i tymczasowo dodaj go do sudoers, a następnie użyj konsoli szeregowej, aby się zalogować i naprawić wszystko, co się otworzy
Ray Foss
2

Użytkownik z pustym hasłem

sudo useradd test-user-0
echo test-user-0:U6aMy0wojraho | sudo chpasswd -e
su test-user-0

Pytanie o hasło nadal jest niestety wyświetlane.

Ale jeśli po prostu naciśniesz klawisz Enter bez wpisywania czegokolwiek, a zaloguje się on jako użytkownik test-user-0.

Te -eflagi mówi chpasswd, że hasło jest już zaszyfrowane i U6aMy0wojrahojest hash pustego łańcucha.

Testowane na Ubuntu 18.04.

BusyBox autologin

Przynajmniej na terminalu nie musisz tworzyć użytkownika bez hasła, aby ktoś mógł nie wpisywać swoich haseł za każdym razem, inittabwystarczy trochę hackowania : Jak zalogować się automatycznie bez wpisywania nazwy użytkownika root lub hasła w Buildroot BusyBox init?

Ciro Santilli
źródło