RPi용 Debian 배포 Raspbian에서 다음 오류가 발생합니다.
$ 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 -
어쩌고 저쩌고 하는 것과는 ... 너무 다르기 때문입니다...
질문에 위와 같은 명령줄을 준 이유는 문제를 재현하기 위한 최소한의 예시이기 때문입니다.
답변1
좀 파고보니 그런 것 같다.이는 현재 예상되는 동작입니다., 이는 보안 수정 사항이기 때문입니다. 반면에 나는 이것이 약간의 보안 위험을 추가한다는 것을 알았지만 데비안 사람들에게 보고하기 전에 내가 실수하지 않았는지 확인하기 위해 더 많은 조사를 해야 할 것입니다.
그들이 수정한 버그는 다음과 같습니다.로그인: TIOCSTI ioctl을 통해 "su"에서 tty 하이재킹 가능성
내가 이해하는 바는 su
명령이 호출된 프로세스에 대해 열린 상태를 유지하는 데 사용되므로 /dev/tty
해당 프로세스는 권한이 낮더라도 su
명령이 끝난 후에 실행될 터미널에 코드를 삽입할 수 있다는 것입니다. 그들은 tty를 닫음으로써 그것을 패치했고 (나는 원숭이가 패치했다고 말하고 싶습니다) 새로 시작된 bash가 불평하는 이유입니다.