Невозможно выполнить exec / bin / false: нет такого файла или каталога

10

Я пытаюсь открыть экран GNU с помощью следующей команды на моем Mac OS:

host:~ user$ screen

Экран терминала открывается, но быстро умирает с сообщением об ошибке:

Невозможно выполнить exec / bin / false: нет такого файла или каталога

Мой терминал настроен на открытие bashоболочки при запуске. Я попытался установить оболочку терминала sh, она выдает ту же ошибку.

Тем не менее, когда я выполняю screenкоманду как sudo, то команда завершается успешно.

Как мне решить это для обычного пользователя?

sultan.of.swing
источник
2
Найдите /bin/falseв своих rc-файлах ( .bashrcи .bash_profileт. Д.) И проверьте свои .screenrc.
Чороба

Ответы:

9

Загляните в свои сценарии инициализации оболочки bashили в screenфайл конфигурации и посмотрите, не используется ли где-нибудь falseс явным путем /bin/false.

В macOS falseутилита находится в /usr/bin, а не в /bin.

В противном случае, посмотрите, не установлена ​​ли ваша оболочка для входа по какой-то странной причине /bin/false, либо проверив, /etc/passwdлибо просмотрев «Дополнительные параметры» в разделе «Пользователь и группы» Системных настроек (вы получите их, щелкнув правой кнопкой мыши по своему пользователю). в списке учетных записей пользователей, и вы можете изменить здесь оболочку). Кто-то, не задумываясь, следовал учебнику / HOWTO, в котором пользователь /bin/falseпо умолчанию использует оболочку.

Когда вы работаете screenс sudoвами, используйте rootфайлы оболочки / инициализации экрана. Вот почему это работает.

Кусалананда
источник
2
Извините, нажатием Enter случайно разместил неполный комментарий. Я проверил следующие файлы: / etc / passwd и ~ / .screenrc. Однако, похоже, что моя оболочка была настроена с / bin / false в качестве оболочки по умолчанию. Когда я сделал «echo $ SHELL», он дал «/ bin / false». Выполнение команды "экспорт SHELL = / bin / bash" решило проблему. :)
sultan.of.swing
1
@ sultan.of.swing Хорошо! Вы должны изменить оболочку по умолчанию в Системных настройках. Кроме того, если это решит вашу проблему, пожалуйста, подумайте о принятии ответа
Кусалананда
5

Перейдите в настройки терминала, затем перейдите к общему, затем в «Shell open with» выберите Command и введите bash -l

Ravi
источник
3
Пожалуйста, объясните, что это делает и как это решает проблему.
Гюнтберт,
это "bash - <Capital Eye>" или "bash- <Uncial Ell>"?
Reb.Cabin
лучший ответ это
Reb.Cabin