Я использую Google Compute Engine, на котором работает Debian Wheezy 7.4.
Я недавно замечал странные вещи. Например, я могу сделать sudo bash
. Но затем из root я не могу выполнить sudo -u anotherUser bash
или su -l anotheruser -c bash
.
И, что еще более важно, я не могу запустить новые экземпляры экрана GNU. Если я пытаюсь запустить новый экземпляр, он немедленно выключается, и я получаю сообщение [screen is terminating]
. В тех случаях, когда были запущены, я не мог запустить больше окон.
Тогда я обнаружил, что у всех было общего: bash
!
Я могу сделать screen zsh
или screen sh
.
Я могу сделать sudo bash
а затем sudo -u anotheruser zsh
или su -l anotheruser -s zsh
но НЕ su -l anotheruser -c zsh
.
Обратите внимание , что я входе в систему с Баш и я могу сделать sudo bash
Но я не могу использовать bash для sudo
или su
от пользователя root и не могу использовать bash для screen
оболочки.
Я перезагрузился. Да, это меня так сильно беспокоило, что я фактически перезагрузил свой сервер.
Я понятия не имею, что может вызвать это, и я немного волнуюсь.
Мои файлы конфигурации bash (насколько я знаю, они не изменились по умолчанию):
/etc/bash.bashrc
: http://pastebin.com/CsjeJBYd~/.bashrc
: http://pastebin.com/YfkAZUv9
Завершение bash работает в основной (логин) оболочке.
Вот информация, запрошенная Гленном Джекманом:
$ md5sum /bin/bash /usr/bin/bash
144968564a6b1159ed82059920cea76f /bin/bash
md5sum: /usr/bin/bash: No such file or directory
$ getent passwd anotheruser
anotheruser:x:1004:1004::/home/anotheruser:/bin/bash
Также я подумал о другом тесте. Это работает:
$ echo $(bash -c 'echo Hello, World!')
В чем дело?