zsh установлен как оболочка по умолчанию для root

zsh установлен как оболочка по умолчанию для root

Могу ли я установить zsh в качестве оболочки по умолчанию, будучи авторизованным как root? Я сделал это chsh -s /bin/zshи использовал свой пароль root для аутентификации, но не получилось.

решение1

Хитрость заключается в том, чтобы настроить интерактивные оболочки root на использование zsh и оставить неинтерактивные оболочки на использование /bin/sh.

Это все еще может привести к проблемам «ожиданий», описанным в других ответах, но, по крайней мере, вы не разрушите ни один неинтерактивный процесс.

Добавьте следующее в конец /root/.bashrc

if [ ! -z "$PS1" ]; then
    exec /bin/zsh $*
fi 

решение2

В общем, плохая идея менять оболочку root с /bin/sh. Лучше добавить другую учетную запись, например zroot, которая все еще имеет UID 0, но имеет zsh в качестве оболочки. Однако, чтобы попытаться ответить на вопрос, если вы входите в систему как root, то вам не нужно использовать sudo. Просто используйте

chsh -s /bin/zsh root

и дать rootпароль в ответ на запрос от chsh. Стоит указать 'root' явно.

Если вы входите в систему как «fred», то используйте

sudo -i

и ответьте на запрос пароля fred'sпаролем. Это должно дать вам root shell. Продолжайте так, как будто вы изначально вошли как root.

Убедитесь, что /bin/zsh указан в /etc/shells.

решение3

Вы, вероятно, забыли выполнить it has root. Выполните следующую команду:

$ sudo chsh -s /bin/zsh

решение4

Редактирование файла passwd обычным редактором не рекомендуется для этой цели.

vipw

и смените оболочку на zsh, честно говоря, я не понимаю, зачем вам менять оболочку root, учетная запись root должна использоваться только для администрирования, для обычной работы используйте непривилегированного пользователя. После этого попробуйте войти в систему на другом tty без (важно) отключения от текущего tty, если работает, вы увидите свою новую оболочку. Если вы хотите использовать zsh немедленно, просто введите zsh. Заключение

I want to use my new shell now = type zsh
I want to use my new shell + change = chsh -s or vipw

ps= если ваш zsh не установлен по этим путям (/bin /sbin..) и вам нужно войти в систему как один пользователь с правами root, это не сработает, так как не сможет найти вашу оболочку, это может произойти также в системе, где /usr отделен от root/смонтирован на другом lvm или разделе

Связанный контент