Я создал нового пользователя, выполнив
sudo useradd -m harry
Когда я пытаюсь заменить пользователя на «su - harry», то все, что я вижу, это «$» (доллар ), автозаполнение не работает и встроенные функции оболочки (например, источник) недоступны.
Я проверил .bashrc и .profile и обнаружил, что .bashrc не получает источник, потому что $ BASH_VERSION не установлен.
Код внутри .profile выглядит следующим образом:
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
Команда echo $BASH_VERSION
ничего не возвращает.
$ echo $BASH_VERSION
$
Встроенные оболочки (source .bashrc, .bashrc) тоже не работают.
Значение переменной SHELL было '/ bin / sh', что является псевдонимом тире. Я изменил его на / bin / bash (экспорт SHELL = / bin / bash), но он не дал никаких эффектов.
Когда я жестко кодирую «.bashrc» в .profile (конечно, просто чтобы проверить, будет ли он работать), я получаю несколько ошибок:
admin@host:~$ sudo su - harry
-su: 13: /home/harry/.bashrc: shopt: not found
-su: 21: /home/harry/.bashrc: shopt: not found
-su: 105: /home/harry/.bashrc: shopt: not found
-su: 28: /etc/bash_completion: [[: not found
-su: 34: /etc/bash_completion: [[: not found
-su: 51: /etc/bash_completion: Bad substitution
\[\e]0;\u@\h: \w\a\]\u@\h:\w$
Есть идеи, как это исправить?
Спасибо заранее. jepetko
Оболочка этого пользователя - /bin/sh
. Это меньшая оболочка, которая использует меньше ресурсов, чем bash, но предлагает меньше функций программирования и почти не имеет интерактивных функций.
Запустите sudo chsh -s /bin/bash harry
, чтобы изменить оболочку входа пользователя на bash. Это меняет запись пользователя в /etc/passwd
(не редактируйте этот файл напрямую, если вы не знаете, что делаете).
Установка переменной среды SHELL
указывает приложениям запускать другую оболочку, но не влияет на текущую оболочку.
Если вы хотите создать пользователя с оболочкой bash по умолчанию, используйте эту команду:
useradd -m -s /bin/bash <userName>
Замените <userName>
именем пользователя, которого вы хотите создать.