Мой веб-сервер был взломан кем-то, кто использовал оболочку zsh. Я чувствую себя более комфортно, используя оболочку bash, так как это настройки по умолчанию, поставляемые с Ubuntu и OS X (две основные операционные системы, которые я использую). Но этот вопрос ориентирован на сервер Ubuntu. У меня есть 4 веб-сайта, работающих на этом веб-сервере, я использую byobu, я использую tmux, я использую ruby / ruby на rails, node.js, apache, несколько демонов. Если я переключу текущую корневую оболочку с zsh на bash, могут ли быть какие-либо негативные побочные эффекты, которые могут возникнуть в результате этого переключения? Например, будут ли процессы уничтожены, потому что их родительский процесс (оболочка) был переключен?
command-line
bash
zsh
JohnMerlino
источник
источник
Ответы:
Изменяя вашу оболочку, через
sudo chsh --shell=/bin/bash $USER
изменит поле оболочки в/etc/passwd
. Это значение используется только во время входа в систему, когда система не знает, какую оболочку использовать для вас.Идущие процессы, запущенные ли
zsh
,bash
apache
илиevil_overlord's_program
не будут затронутыисточник
login
Программа выполняется в процессе, как и все. Когда он пропускает вас, он создает другой процесс с вашим UID и т. Д. И запускает / bin / bash (из / etc / passwd). Оболочка bash читает из STDIN (настроеноlogin
) и будет форкать / выполнять не встроенные команды, ждать их завершения и выполнять цикл для других команд. Идея «управления терминалом» бесполезна в Unix / Linux.Ответ от переполнения стека ( переключение с zsh на bash ):
источник
Откройте свой терминал и используйте следующую команду:
источник
which bash
дал бы абсолютный путьbash
, так было бы то же самое, если бы/bin/bash
, гдеbash
был расположен.В Mac OS Каталина
Изменить на Zsh:
Изменить на bash:
источник