Tworzenie użytkownika bez hasła

66

Próbuję utworzyć użytkownika bez hasła takiego:

sudo adduser \
   --system \
   --shell /bin/bash \
   --gecos ‘User for managing of git version control’ \
   --group \
   --disabled-password \
   --home /home/git \
   git

Jest dobrze. Ale kiedy próbuję się zalogować pod użytkownikiem git, otrzymuję hasło:

su git
Password:...

Gdy zostawiam puste, pojawia się błąd:

su: Authentication failed

Co jest nie tak?

Erik
źródło
1
Nie ma nic złego, uwierzytelnienie nie powiodło się zgodnie z oczekiwaniami. Nie otrzymasz komunikatu o błędzie „nie ma hasła, nie możesz się zalogować”.
scai
Ale muszę utworzyć folder .ssh pod użytkownikiem git, jak mam to zrobić?
Erik,
1
Utwórz go jako root i ustaw odpowiednie uprawnienia lub uruchom su gitjako root, gdzie nie musisz podawać hasła.
scai
4
Za pomocą chmodi chown.
scai
1
Nie na temat, ale to „użytkownik”, a nie „użytkownik”. writersdigest.com/online-editor/…
David Baucum,

Odpowiedzi:

31

Utworzyłeś użytkownika z „wyłączonym hasłem”, co oznacza, że ​​nie ma hasła, które pozwoliłoby Ci zalogować się w taki sposób, w jaki zostało użyte. Różni się to od utworzenia użytkownika, z którego każdy może się zalogować, bez podawania hasła, co osiąga się poprzez podanie pustego hasła i jest to bardzo rzadko przydatne.

Aby wykonywać polecenia jako użytkownicy „systemowi”, którzy nie logują się normalnie, musisz przeskoczyć przez konto root:

su -c 'su git -c "git init"'

lub

sudo -u git git init

Jeśli chcesz, aby niektórzy użytkownicy mogli uruchamiać polecenia jako gitużytkownik, nie pozwalając im na uruchamianie poleceń jako root, skonfiguruj sudo (uruchom visudojako root i dodaj wiersz podobny %gitters ALL = (git) ALL).

Gilles
źródło
@JulienRicard Er, tak i? Istnieje wiele sposobów zrozumienia „użytkownik bez hasła”, a ja odpowiadam za przypadek użycia podany w pytaniu. Pytanie dotyczące na przykład utworzenia gościa byłoby innym pytaniem.
Gilles
41

--disabled-passwordOpcja nie zostanie ustawione hasło, co oznacza hasło nie jest legalne, ale nadal możliwe jest logowanie (na przykład za pomocą kluczy SSH RSA).

Aby utworzyć użytkownika bez hasła, użyj go passwd -d $usernamepo utworzeniu, aby hasło było puste. Uwaga: nie wszystkie systemy umożliwiają logowanie się użytkownikom z pustym hasłem.

pallxk
źródło
3
To nie wydaje się działać w wersji 16 ubuntu
Daniel Tate
@DanielTate w pewien sposób współpracuje z: unix.stackexchange.com/a/472968/32558
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
9

Jeśli chcesz uzyskać dostęp do systemu za pomocą użytkownika git, powinieneś użyć sudo:

sudo -s -u git

lub

sudo su - git
Didi Kohen
źródło
4

Utwórz użytkownika 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.

Automatyczne logowanie za pomocą getty -a

Przynajmniej na terminalu nie trzeba tworzyć użytkownika bez hasła, aby ktoś mógł nie wpisywać swoich haseł za każdym razem.

Byłem w stanie to zrobić na BusyBox, modyfikując inittab: Jak zalogować się automatycznie bez wpisywania nazwy użytkownika root lub hasła w Buildroot BusyBox init?

Uważam więc, że dostosowanie tej techniki nie powinno być trudne przez modyfikację systemowych skryptów systemowych init Ubuntu 18.04, aby skonfigurować getty -a <user>terminal, jak wspomniano w tej odpowiedzi, chociaż sam tego nie próbowałem.

Ciro Santilli
źródło
2

Myślę, że tego właśnie chcesz:

adduser --disabled-password --shell /bin/bash --gecos "User" $username

Będziesz w stanie

su $username

aby uruchamiać komendy jako ten użytkownik, w / bin / bash lub jakiejkolwiek podanej powłoce. --gecos „Użytkownik” wystarczy wpisać „Użytkownik” w polu komentarza, aby nie pojawiał się monit o podanie tych informacji. Możesz umieścić w tym polu, co chcesz.

Douglas Krugman
źródło