пользователь не существует в / etc / passwd при попытке изменить оболочку по умолчанию

Я хочу изменить свою оболочку по умолчанию из 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. Я не знаю почему.

Что я могу сделать?

1
задан 23 February 2014 в 04:43

4 ответа

Существует способ обхода для gnome-terminal:

Перейти к Edit -> Profile preferences -> Title and Command Check Запустить пользовательскую команду вместо моей оболочки. Предоставить bash в качестве пользовательской команды (или fish или что угодно)
5
ответ дан 24 May 2018 в 17:45
  • 1
    Благодаря! Предоставление команды для немедленного запуска, когда я открываю терминал (или новую вкладку терминала) с помощью настроек, которые меня использовали. – Clifford Fajardo 10 April 2018 в 23:24

Если вы хотите изменить оболочку для своего пользователя, вам не нужно становиться 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.
4
ответ дан 24 May 2018 в 17:45
  • 1
    Причина, по которой я использовал sudo, заключалась в том, что без нее ничего не делалось. [F1] – rmp251 11 January 2014 в 01:31

Если вы используете аутентификацию LDAP с помощью PAM или что-то в этом роде, вы должны найти свой ответ на своем LDAP-сервере, давайте нацелим его на Microsoft AD, в этом случае ваша учетная запись домена не находится в / etc / passwd при входе в систему, но вы можете увидеть свою пользовательскую собственность в AD, по #getent passwd | grep user, если в конце он показывает, что ваша оболочка is / bin / csh, потому что в вашем AD есть атрибут для этого, поэтому у id у вас есть учетная запись администратора в AD, вы можете исправить ее самостоятельно, иначе просто скажите это своему AD admin, включить дополнительные функции на вкладке «Просмотр» активных пользователей и компьютеров Active Directory> свойства пользователя> атрибуты UNIX> изменить оболочку входа в / bin / bash

, чтобы вы не забыли: sudo / opt / pbis / bin / config LoginShellTemplate / bin / bash

если вы использовали аналогично или ...

сделано! http://fereidonian.net/?p=52

4
ответ дан 24 May 2018 в 17:45
  • 1
    Вопрос состоял в том, чтобы изменить оболочку для одного пользователя, тогда как pbis config изменяется для всех пользователей. – kubanczyk 4 August 2016 в 16:06
  • 2
    Этот ответ имеет грамматические недостатки, которые я не могу понять, как исправить (пропущенные слова?) Кроме того, ссылка мертва. – naught101 12 July 2017 в 05:27

Если вы забыли свое имя пользователя, вы можете использовать команду whoami, чтобы запомнить вас.

Итак, попробуйте с помощью:

sudo chsh $(whoami)

Если действительно, не существует строка, начинающаяся с вашего имени пользователя в файле /etc/passwd (что кажется необъяснимым), вы можете добавить следующее:

username:x:1000:1000:your real name,,,:/home/username:/bin/bash

См. также: Понимание / etc / passwd Формат файла.

2
ответ дан 24 May 2018 в 17:45
  • 1
    Одна из причин, по которой ваш пользователь может отсутствовать в / etc / passwd, заключается в том, что на этой машине не выполняется проверка подлинности (например, ldap) – MatrixManAtYrService 23 February 2018 в 20:55

Другие вопросы по тегам:

Похожие вопросы: