Intereting Posts

Смущает сообщение об ошибке Debian от su

На Raspbian дистрибутив Debian, нацеленный на RPi, я получаю следующую ошибку:

$ sudo su -l root -c /bin/bash bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this shell 

… однако, если я изменю это на sudo su - , все будет хорошо. Какие-либо идеи, что не так в приведенной выше командной строке? Основная проблема здесь заключается в том, что терминал после этого запускается …

Я нашел этот отчет об ошибке, но похоже, что никакого клонирования нет.


Системная информация

 $ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 7.0 (wheezy) Release: 7.0 Codename: wheezy $ dpkg -l |grep sudo ii libgksu2-0 2.0.13~pre1-6 armhf library providing su and sudo functionality ii sudo 1.8.5p2-1 armhf Provide limited super user privileges to specific users 

ЗАМЕТКА

Причина, по которой я использую -c /bin/bash том, что она больше похожа на -c /bin/bash --rcfile /path/to/rcfile … и поэтому отличается от простого sudo -i или sudo su - и так далее …

Причина, по которой я дал командную строку, как я сделал выше в моем вопросе, состоит в том, что это минимальный пример, который воспроизводит проблему.

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

Вот ошибка, которую они исправили: login: tty hijacking возможно в «su» через TIOCSTI ioctl

Я понимаю, что команда su используемая для того, чтобы оставить /dev/tty открытым для вызываемого процесса, и поэтому процесс, даже с пониженными привилегиями, может вводить код в терминал, который будет выполнен после завершения команды su . Они замазали его (я бы сказал, обезьяна-исправила его), закрыв tty, и именно поэтому новоиспеченный баш жалуется.