
/dev/tty1
또는 xinit
에 startx
라인이 id:3:initdefault:
설정된 가상 콘솔에서 X 서버를 수동으로 시작한다고 가정합니다 /etc/inittab
. X 서버가 실행되어 다른 가상 콘솔에 배치됩니다. 일반적으로 /dev/tty7
. 얼마 후 나는 화면을 잠그고 xscreensaver --lock
컴퓨터를 떠나기로 결정했습니다. 화면을 잠금 해제하려면 내 사용자의 비밀번호를 알아야 합니다. 이제 누군가가 실행 중인 X 서버를 종료하기로 결정하면 그 사람은 실행 중인 셸로 돌아가서 /dev/tty1
거의 내 컴퓨터에 액세스할 수 있습니다. 일반적으로 X 서버는 Ctrl+Alt+Backspace
초기 콘솔과 SIGTERM
실행 중인 프로세스 로 전환하거나 종료할 수 있습니다 ^C
.
이는 간단한 일입니다. 이는 이러한 일이 발생하는 것을 방지할 수 있는 간단한 방법이 있어야 함을 의미합니다. 나는 사용하고있다vlock
/dev/tty1
이를 방지하기 위해 가상 콘솔을 잠그려면 :
$ xinit && vlock || vlock
이제 X 서버가 반환되면(정상적이든 &&
아니든 ||
) 콘솔이 잠깁니다. 이는 최적의 솔루션이 아닐 수도 있습니다. 나는 읽었다이것스레드와이것다양한 솔루션을 설명하는 wiki 기사.
X 세션에서 가상 콘솔에 대한 이러한 접근을 방지하는 다른 방법은 무엇입니까? 위의 방법은 충분히 안전한가요? 시스템에서 이를 어떻게 방지합니까? 디스플레이 관리자를 사용하지 않을 것입니다.
답변1
다음을 추가하여 Xorg에서 콘솔 전환을 방지할 수 있습니다.Option "DontVTSwitch" "yes"
Xorg 구성 파일에.
Ctrl+ Alt+를 방지하려면 Backspace다음을 추가해야 합니다.DontZap
Xorg 구성 파일에 대한 옵션입니다. 물론 이것이 콘솔에 대한 액세스를 완전히 차단하지는 않습니다. X
드라이버 문제 등 어떤 이유로 종료 하더라도 공격자는 여전히 콘솔에 액세스할 수 있습니다.
exec startx
bash를 startx로 대체하는 대신 사용할 수도 있습니다 startx
. 이는 누군가가 중단할 수 있더라도 X
콘솔에 액세스할 수 없음을 의미합니다. lightdm
, kdm
, gdm
또는 같은 디스플레이 관리자를 사용할 수도 있으므로 xdm
ax 세션을 시작하는 데 기존 쉘 세션이 필요하지 않습니다.
답변2
내 항목은 다음과 같습니다 .profile
.
# startx if on tty1 and tmux on tty2
if [[ -z "$DISPLAY" ]] && [[ $(tty) = /dev/tty1 ]]; then
exec xinit -- :0 -novtswitch &>/dev/null &
logout
elif [[ $(tty) = /dev/tty2 ]]; then
tmux -f $HOME/.tmux/conf new -s secured
fi
에 로그인하기로 선택한 경우 X
TTY1을 사용합니다. TTY7에서 시작된 logout
후 TTY1에서 로그 X
아웃됩니다. 나는 사용한다xautolock그리고슬록내 화면 잠금 도구로.
이 X
죽으면 빈 TTY7로 다시 덤프된 다음 다시 로그인하려면 6개의 활성 getty 중 하나로 전환해야 합니다.