Я хочу изменить оболочку по умолчанию с 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. Я не знаю почему.
Что я могу сделать?
getent passwd <userid>
). Я думаю, чтоchsh
поддерживается ли работа в этом случае, может зависеть от настроек в/etc/pam.d/
Ответы:
Мой компьютер является частью сети, использующей распределенную аутентификацию, поэтому мои данные пользователя не будут отображаться в локальном файле / etc / passwd (но будут видны при использовании getent passwd userid). (спасибо @steeldriver) В моем случае мне пришлось использовать chsh на основной машине.
источник
Существует обходной путь для
gnome-terminal
:bash
как пользовательскую команду (илиfish
, или что-нибудь)источник
Если вы используете аутентификацию LDAP через PAM или что-то еще, вы должны найти свой ответ на вашем сервере LDAP. Давайте нацелимся на Microsoft AD, и в этом случае ваша учетная запись домена не будет
/etc/passwd
входить в систему при входе в систему, но вы сможете увидеть свое свойство пользователя в ADgetent passwd | grep user
.Если в конце он показывает, что ваша оболочка есть
/bin/csh
, это потому, что в вашей AD есть атрибут для этого. Так что если у вас есть учетная запись администратора в AD, вы можете исправить это самостоятельно. В противном случае просто попросите администратора AD включить дополнительные функции на вкладке « Вид » пользователей и компьютеров Active Directory> Свойства пользователя> Атрибуты UNIX . Там вы можете изменить оболочку входа в систему/bin/bash
.Убедитесь, что вы не забыли запустить:
Источник: пользователь не существует в / etc / passwd при попытке изменить оболочку по умолчанию .
источник
Если вы хотите изменить оболочку для своего пользователя, вам не нужно становиться пользователем root. Просто введите:
без
sudo
и без аргументов.Смотрите также
man chsh
:источник
> whoami userid > chsh You may not change the shell for 'userid'.
Если вы забыли свое имя пользователя, вы можете использовать
whoami
команду, чтобы запомнить вас.Итак, попробуйте с:
Если на самом деле не существует строки, начинающейся с вашего имени пользователя в
/etc/passwd
файле (что кажется необъяснимым), вы можете добавить новую, например:Смотрите также: Понимание формата файла / etc / passwd .
источник
Если вы пытаетесь подключиться по ssh к удаленному хосту с пользователем домена, вы, возможно, не сможете изменить свою оболочку, используя,
chsh
как упоминалось @Masoud. Но здесь есть простой обходной путь для этого случая - всякий раз, когда вы входите в систему с помощью ssh:ssh my-host -t "zsh --login"
или
ssh my-host -t "cd /data/repos; zsh --login"
Если вы также хотите войти непосредственно в другой рабочий каталог.
источник