Я настраивал пользователей для проекта на удаленном сервере. Когда я вхожу через x2go и открываю терминал, кажется, что ни .bashrc
, ни .profile
не запущены. Файл .profile
содержит строку, содержащую source .bashrc
.
Однако, после открытия терминала, если я явно захожу в систему с помощью пользователя su userName
, запускается файл .bashrc
, и я могу использовать свое окружение. Терминальная линия выглядит как sh-4.3$
вместо userName$
, как я привык. Есть идеи, что происходит или как я могу это исправить?
Проблема здесь оказалась этим, настроенная оболочка входа в систему учетной записи пользователя не была bash
, и поэтому это автоматически не читало и команды выполнения из файлов bash
использование. А именно, никакая оболочка входа в систему не была настроена, таким образом, значение по умолчанию /bin/sh
использовался:
Хорошо поэтому, как точно Вы создаете пользователей? похоже, что никакая оболочка входа в систему не определяется для них (возможно значение по умолчанию терминалов создания к
/bin/sh
?)
Так как это было непреднамеренно, решение, предоставленное steeldriver в комментарии, состояло в том, чтобы изменить оболочку на bash
с chsh
:
Было бы более безопасно использовать
chsh
установить желаемую оболочку. BTW, что выполняет версия Ubuntu удаленный сервер?
Система оказалась под управлением Ubuntu 16.04, и как на других релизах Ubuntu, bash
было доступно.
Один способ использовать chsh
команда похожа на это с полным путем желаемой оболочки входа в систему, вводимой вместо shell
:
chsh -s shell
Так, для изменения оболочки на (или назад на) bash
:
chsh -s /bin/bash
Иначе должен работать chsh
без аргументов, в которых это случай это работает в интерактивном режиме и пользователь должен ввести имя оболочки, требуемой, или просто нажать Enter для значения по умолчанию.
В обоих использованиях, chsh
подсказки для пароля пользователя перед продолжением. Это - собственный пароль пользователя (есть ли у пользователя способность к командам выполнения как корень с sudo
). Например, в интерактивном использовании:
ek@Kip:~$ chsh
Password:
Changing the login shell for ek
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]:
Если Вы видите это, это означает, что пароль был введен неправильно:
chsh: PAM: Authentication failure
Оболочка должна быть обеспечена как полный путь (запускающийся с /
). Только оболочки перечислили файл /etc/shells
может быть выбран. Один способ отобразить содержание того файла состоит в том, чтобы работать cat /etc/shells
. Это удовлетворяет, зависят, на котором оболочки были установлены (и, возможно, также был вручную изменен системными администраторами).
Для получения дополнительной информации о том, как различные оболочки используют различные файлы запуска, посмотрите, Где определить псевдонимы: .cshrc или .bashrc?