복원 시 가상 터미널 잠금

복원 시 가상 터미널 잠금

많은 화면 보관함(내 건i3 잠금)은 다른 가상 터미널에 대한 액세스를 차단하지 않습니다. 즉, VT에서 세션을 열면 데스크톱이 잠겨 있어도(예: 복원 시) 악의적인 사람이 VT로 전환하여 모든 작업을 수행할 수 있다는 의미입니다.

가끔 VT로 전환했다가 다시 그래픽 환경으로 전환하고 VT에서 로그아웃하는 것을 잊어버리기 때문에 이것은 나에게 실제 문제입니다.

질문은 다음과 같습니다.기존 화면 잠금에 VT 잠금을 추가하는 방법은 무엇입니까?

Arch Linux 위키에서는 다음을 권장합니다.Xorg에서 VT 비활성화, X 서버의 다음 구성을 사용합니다.

Section "ServerFlags"
    # disable VT switching:
    Option "DontVTSwitch" "True"
    # disable “zapping”, ie. killing the X server with Ctrl-Alt-Bksp:
    Option "DontZap"      "True"
EndSection

위에서 언급한 것처럼 저는 VT를 사용하고 있으므로 이는 옵션이 아닙니다. 아마도 한 가지 해결책은 이러한 옵션을 동적으로 설정하고 재설정하는 것일 수 있지만 적어도 일반적으로( setxkbmap키보드 레이아웃 또는 xset이와 유사한 것) 런타임에 X 서버 옵션을 변경하는 방법을 찾지 못했습니다 . 가능합니까?

나는 또한 이 명령이 vlock -a텍스트 기반 VT에서 호출될 때 세션을 잠그고 VT 전환을 비활성화한다는 것을 발견했습니다. 그러나 그래픽 환경에서는 작동하지 않으며 어쨌든 그래픽 화면 보관함에는 중복됩니다.

이 문제를 어떻게 해결할 수 있나요?

답변1

나는 덜 우아한 방식으로 이 작업을 수행했습니다. 먼저 첫 번째 터미널 chvt(내 사물함이 실행될 곳)로 변경한 다음 slock이름이 붙은 장치에서 키를 비활성화하고 그 후에 활성화하면 제대로 작동하는 것 같습니다.F1F12xmodmapsystemdsleep.targetresume.target

  • systemd단위:
    [Unit]  
    Description=Disable Switching VTS when locked  
    Before=sleep.target
    
    [Service]  
    User=root  
    Type=forking  
    Environment=DISPLAY=:0  
    ExecStartPre=chvt 1  
    ExecStart=/path/to/disableVTS.sh
    
    [Install]  
    WantedBy=sleep.target
    
  • disableVTS.sh스크립트:
    #!/bin/sh  
    xmodmap -e 'keycode 67 ='  
    xmodmap -e 'keycode 68 = '  
    

답변2

vlock지연된 사용이 저에게 효과적입니다.

Ctrl내 X 서버는 이미 실행 중이었고 Alt-를 사용하여 VT-1로 전환하고 F1실행한 다음 sleep 3; vlock -a-를 사용하여 VT-7로 다시 전환했습니다.AltF7

처음에는 VT-7로 빠르게 다시 전환할 수 없어서 잠금을 해제하고 다시 시도해야 했습니다. 두 번째 시도에서는 작동했고 X가 나타나서 잘 작동했습니다. VT-1로 다시 전환하려고 하면 잠금을 해제하지 않으면 전환할 수 없는 터미널이 잠깁니다.

백그라운드 작업을 시도하지 마십시오 vlock. 세션을 종료할 때까지 메시지가 무한 루프됩니다.

vlock -a어쩌면 사용자 정의 startx스크립트를 삽입하여 실행함으로써 /usr/bin/startx자동화할 수도 있습니다 . 스크립트에 지연을 포함시키는 것은 병렬로 또는 백그라운드에서 실행될 수 없다면 도움이 되지 않을 것 같습니다(다시 시도하고 싶은지 확실하지 않습니다 vlock).

관련 정보