Bash не полностью функционален для нового пользователя

19

Я только что создал нового пользователя в моей системе с помощью useradd -d /home/users/john -m john(Использование Ubuntu 11.04). Это работало нормально, но когда я сменил john, мой bash не полностью функционален. То есть он не имеет автозаполнения, я не могу использовать их клавиши со стрелками (например, ВВЕРХ, чтобы получить последнюю команду), и вместо того, чтобы показывать мой текущий каталог, он только показывает $. Я загрузил, .bashrcно это, кажется, полностью игнорируется. Что может вызвать это?

PD: этот пользователь уже работает в системе, и я, скорее, не удаляю его и не добавляю снова, если это возможно.


источник
Определите, что вы подразумеваете под «когда я изменился на Джона». Вы входили в систему с этим пользователем на главной консоли, через pty, через ssh, или вы suили su -?
Пол Томблин
Каковы права доступа / права собственности на загруженный вами файл .bashrc?
Пол Томблин

Ответы:

36

Вероятно, раковины Джона нет /bin/bash, но /bin/sh. В Ubuntu это оболочка, предназначенная для быстрого выполнения сценариев, без каких-либо необычных интерактивных функций, таких как редактирование командной строки. Проверьте последний столбец grep john /etc/passwdили getent passwd john. Вы можете запустить, chsh -s /bin/bash johnчтобы изменить оболочку пользователя.

RVS
источник
1
Отлично, это действительно так!
2
Просто записка. В Ubuntu /bin/shесть символическая ссылка на dashie /bin/dash, так что в конечном итоге это оболочка пользователя /bin/dash.
Сачин Дивекарь
4

вы можете прыгать между оболочками, набрав название оболочки

$ bash

и в следующей строке вы получите следующее приглашение

user@hostname$ 

которая является оболочкой bash. Ваша стрелка вверх и автозаполнение теперь будут работать

Саад
источник
Следует отметить, что это явно временно. В настоящее время принятый ответ имеет более постоянное решение.
jw013
Хорошо, я не знал, что, спасибо за это, я сохраню принятый ответ для дальнейшего использования
Saad