Я хочу изменить оболочку по умолчанию с tcsh на bash. Итак, я попытался, и вот что произошло:
>sudo chsh userid
Changing the login shell for userid
Enter the new value, or press ENTER for the default
Login Shell [/xhbin/tcsh]: /bin/bash
chsh: user 'userid' does not exist in /etc/passwd
Действительно, я не в / etc / passwd. Я не знаю почему.
Что я могу сделать?
Мой компьютер является частью сети, использующей распределенную аутентификацию, поэтому мои данные пользователя не будут отображаться в локальном файле / etc / passwd (но будут видны при использовании getent passwd userid). (спасибо @steeldriver) В моем случае я должен был выполнить chsh на основной машине.
Существует обходной путь для gnome-terminal
:
bash
в качестве Пользовательской команды (или fish
, или что-нибудь еще). ) Если вы забыли свое имя пользователя, вы можете использовать команду whoami
, чтобы запомнить вас.
Итак, попробуйте:
sudo chsh $(whoami)
Если действительно, не существует строки, начинающейся с вашего имени пользователя в файле /etc/passwd
(что кажется необъяснимым), вы можете добавить новую, например :
username:x:1000:1000:your real name,,,:/home/username:/bin/bash
См. Также: Понимание формата файла / etc / passwd .
Если вы используете аутентификацию LDAP с помощью PAM или чего-то еще, вы должны найти свой ответ на своем сервере LDAP, давайте настроим его для Microsoft AD, в этом случае ваша учетная запись домена не находится в / etc / passwd, когда вы входите в систему, но Вы можете увидеть свое свойство пользователя в AD, #getent passwd | grep user, если в конце он показывает, что ваша оболочка - / bin / csh, это потому, что в вашей AD есть атрибут для этого, так что если у вас есть учетная запись администратора в AD, вы можете исправить это самостоятельно, в противном случае просто скажите это своей AD администратора, чтобы включить расширенные функции на вкладке «Вид» пользователей и компьютеров Active Directory> свойства пользователя> атрибуты UNIX> измените оболочку входа на / bin / bash
, убедитесь, что вы не забыли: sudo / opt / pbis / bin / config LoginShellTemplate / bin / bash
, если вы использовали аналогичным образом или ...
сделано! http://fereidonian.net/?p=52
Если вы хотите изменить оболочку для своего пользователя, вам не нужно становиться пользователем root. Просто введите:
chsh
без sudo
и без аргументов.
См. также man chsh
:
The chsh command changes the user login shell. This determines the name of the user's initial login command. A normal user may only change the login shell for her own account; the superuser may change the login shell for any account.
> whoami userid > chsh You may not change the shell for 'userid'.
– Bhavesh Gangani
13.05.2020, 02:58