Заблокированный после установки удара без исполняемого бита

После scp- луг исправленный контузией bash двоичный файл к openSUSE 12.2 Linux VM и замене оболочки входа в систему с ним, никакой пользователь не может зарегистрироваться на пути ssh или консоль. Как оказалось, исполняемый бит потерялся во время передачи, несмотря на использование -p переключатель.

Я пытался восстановить это путем монтирования файловой системы на хосте Xen Linux и выполнении chmod +x /mnt/usr/local/bin/bash, но ситуация не улучшилась. Будет перезагрузка гостя справка VM?

Это - то, что я вижу на консоли:

xxx login: root
Password:
Last login: xxx
Have a lot of fun...
 -- root: no shell: permission denied

Это появляется в /mnt/var/log/messages

на входе в систему ssh:

sshd: User root not allowed because shell /bin/bash is not executable
sshd: input_userauth_request: invalid user root [preauth]
sshd: Postponed keyboard-interactive for invalid user root from x.x.x.x port xxxxx ssh2 [preauth]

на консольном входе в систему:

systemd-logind: New session x of user root.
login: ROOT LOGIN ON xvc0
console-kit-daemon: WARNING: Unable to spawn /etc/ConsoleKit/run-session.d/dbus_at_console.ck: Failed to execute child process "/etc/ConsoleKit/run-session.d/dbus_at_console.ck" (Permission denied)
systemd-logind: Removed session x.

И это - то, как я вызвал проблему:

# my /bin/bash has been a symlink to /usr/local/bin/bash since the first shellshock patch
scp -p buildhost:/tmp/bash /tmp/bash
# then I forgot to do chmod +x /tmp/bash
# then I forgot to do chsh -s /usr/bin/zsh, logout and login
mv /tmp/bash /usr/local/bin/bash && \
mv /bin/bash /var/tmp/bash-unpatched && \
chmod -x /var/tmp/bash-unpatched && \
ln -s /usr/local/bin/bash /bin/bash

Замена /bin/bash символьная ссылка реальным двоичным файлом не помогла также.

2
задан 30 September 2014 в 00:36
2 ответа

Вам придется перезагрузиться. Изменения прав доступа к файлам, сделанные гипервизором в файловой системе, используемой гостем, не будут обнаружены гостем.

В будущем при выполнении этого типа «обновления» необходимо открыть отдельный сеанс оболочки для сервера, который вы » повторное обновление, на случай, если дела пойдут плохо.

2
ответ дан 3 December 2019 в 10:45

Похоже, у вас есть доступ к серверу. Вы можете попробовать разные подходы.

У вас должен быть работающий клиент ssh. Попробуйте использовать ssh для исправления разрешений или войдите в систему с другой оболочкой.

ssh root@host chmod +x /bin/bash
ssh root@host /bin/dash

Если вы можете подключиться к пользователю без полномочий root, попробуйте sudo .

sudo chmod +x /bin/dash
sudo /bin/bash 

Или просто используйте su от пользователя без полномочий root

su -c 'chmod +x /bin/bash'
su -c '/bin/dash'

. Вы сможете найти доступные оболочки в / etc / shells .

1
ответ дан 3 December 2019 в 10:45

Теги

Похожие вопросы