Ошибка: "Значение переменной SHELL не найдено в файле /etc/shells" при запуске `pkexec`
В Ubuntu 14.04 я получаю сообщение об ошибке "Значение переменной SHELL не найдено в файле / etc / shells" при запуске pkexec запустить скрипт.
Скорее всего, эта ошибка началась после того, как я удалил оболочку fish, которая была установлена в качестве оболочки по умолчанию.
Содержание /etc/shells является:
# / etc / shells: допустимые логины
/ Бен / ш
/ Бен / тире
/ Бен / Баш
/ Бен / rbash
Как я могу это исправить?
1 ответ
Проблема заключается в следующем: pkexec получает доступ $SHELL определить, какую оболочку использовать для оценки оставшейся части команды; так как вы удалили рыбу, но больше ничего не делали, $SHELL все еще содержит /usr/bin/fish, но pkexec не считает /usr/bin/fish как действительная оболочка, так как /usr/bin/fish был удален из /etc/shells,
Вам нужно сделать эти две вещи:
Установите новую оболочку для своего пользователя, чтобы при следующей загрузке среды
$SHELLбудет содержать путь к допустимой оболочке. Например, чтобы установить Bash в качестве новой оболочки для вашего пользователя (заменитеuserс именем пользователя):sudo chsh -s /bin/bash userВыйдите из системы, чтобы перезагрузить среду, чтобы
$SHELLсодержит путь к новой оболочке для вашего пользователя.