Bash nie jest w pełni funkcjonalny dla nowego użytkownika

19

Właśnie utworzyłem nowego użytkownika w moim systemie za pomocą useradd -d /home/users/john -m john(Korzystanie z Ubuntu 11.04). johnDziała to dobrze, ale kiedy się zmieniłem , mój bash nie jest w pełni funkcjonalny. Oznacza to, że nie ma on autouzupełniania, nie mogę używać ich klawiszy strzałek (np. UP, aby uzyskać ostatnie polecenie), a zamiast pokazywania mojego bieżącego katalogu pokazuje tylko $. Załadowałem plik, .bashrcale wygląda na to, że został całkowicie zignorowany. Co może to powodować?

PD: ten użytkownik już pracuje w systemie i raczej go nie usuwam i dodam, jeśli to możliwe.


źródło
Zdefiniuj, co rozumiesz przez „kiedy zmieniłem się w John”. Czy logowałeś się z tym użytkownikiem na głównej konsoli, na pty, przez ssh, czy ty suczy su -?
Paul Tomblin
Jakie są uprawnienia / prawa własności do załadowanego pliku .bashrc?
Paul Tomblin

Odpowiedzi:

36

Prawdopodobnie skorupa Johna nie jest /bin/bash, ale /bin/sh. W Ubuntu jest to powłoka przeznaczona do szybkiego wykonywania skryptów, bez fantazyjnych funkcji interaktywnych, takich jak edycja wiersza poleceń. Sprawdź ostatnią kolumnę grep john /etc/passwdlub getent passwd john. Możesz uruchomić, chsh -s /bin/bash johnaby zmienić powłokę użytkownika.

RVS
źródło
1
Świetnie, tak rzeczywiście było!
2
Tylko uwaga. W Ubuntu /bin/shjest dowiązanie symboliczne, dashtzn. /bin/dashTak więc ostatecznie powłoka użytkownika jest /bin/dash.
Sachin Divekar
4

możesz przeskakiwać między powłokami, wpisując nazwę powłoki

$ bash

a w następnym wierszu pojawi się następujący monit

user@hostname$ 

który jest powłoką bash. Twój klawisz strzałki w górę i autouzupełnianie będą teraz działać

Saad
źródło
Należy zauważyć, że jest to oczywiście tymczasowe. Akceptowana obecnie odpowiedź ma bardziej trwałe rozwiązanie.
jw013,
ok, nie wiedziałem o tym, dzięki za to zachowam przyjętą odpowiedź do przyszłego odniesienia
Saad