가상 콘솔(ctrl+alt+{f1-f6})에 대해서만 bash 시간 제한을 설정할 수 있습니다.

가상 콘솔(ctrl+alt+{f1-f6})에 대해서만 bash 시간 제한을 설정할 수 있습니다.

내가 설정을 할 수 있다는 걸 알아요TMOUT변수는 지정된 비활성 기간이 지나면 자동으로 bash 세션을 종료합니다. 하지만 내가 원하는 것은 그것을 적용하는 것입니다오직ctrl+ alt+{ F1... } 를 통해 액세스할 수 있는 6개의 내장 가상 콘솔이 있습니다 F6.

저는 터미널을 열고 싶을 때 거의 항상 터미널 앱을 사용합니다. 나는 컴퓨터에서 자리를 비울 때 누군가가 이 터미널에 접근하지 못하도록 화면을 잠급니다. 그래서 나는 이것에 대한 시간 초과를 원하지 않습니다.

그러나 드물게 가상 콘솔 중 하나를 사용하여 컴퓨터에서 작업합니다. 일반적으로 이는 기본 Gnome 세션이 정지되었거나 사용할 수 없기 때문에 발생합니다. 문제가 있는 응용 프로그램을 종료하고 기본 세션으로 다시 전환했습니다.

게다가 Gnome 세션을 다시 시작할 때 가상 콘솔을 종료하는 것을 몇 번 잊어버렸습니다. 따라서 내가 떠나면 내 컴퓨터는 완전히 보호되지 않습니다. Gnome에서 화면을 잠그면 GUI만 잠기므로 사용자는 가상 콘솔로 전환하여 내 gnome 잠금 화면을 종료하거나 내 컴퓨터를 망칠 수 있습니다.

터미널 애플리케이션 세션을 무기한 비활성 상태로 유지하면서 내장 가상 콘솔에 대해서만 시간 초과 값을 설정할 수 있습니까?

답변1

그래픽 터미널에서 실행 중인지 확인하고 TMOUT그렇지 않은 경우에만 설정할 수 있습니다. 이를 수행하는 쉬운 방법은 tty다음 명령을 사용하는 것입니다.

   tty - print the file name of the terminal connected to standard input

GUI 터미널 에뮬레이터에서 실행하는 경우:

$ tty
/dev/pts/5

가상 콘솔에서 실행하는 경우:

$ tty
/dev/tty2

따라서 파일에 다음 줄을 추가하면 ~/.profile10분 후에 bash 세션이 종료됩니다.

tty | grep tty >/dev/null && TMOUT=600

답변2

나는 TMOUT 솔루션을 결코 좋아하지 않았습니다. 첫째, 프롬프트에서 세션을 종료할 때만 작동하기 때문에 Vim에서 세션을 종료하면 sudo 비밀번호 프롬프트에서도 시간 초과가 발생하지 않습니다. 둘째, 세션이 닫히는 것이 아니라 그래픽 환경처럼 잠겨 있기를 원합니다.

GNU Screen은 일정 기간 동안 활동이 없으면 잠길 수 있으므로 다음을 수행했습니다. 내 시작 부분에 ~/.bashrc다음을 추가했습니다.

if [ "$TERM" = "linux" ] && tty | egrep -q '^/dev/tty[[:digit:]]+$'
then
    exec screen -c ~/.ttyscreenrc
fi

이는 Bash가 교체되고 종료되면 TTY 세션이 닫히기 exec때문에 중요합니다 .screen

나는 ~/.ttyscreenrc이것을 넣었다:

startup_message off
idle 180 lockscreen

3분 동안 활동이 없으면 화면의 시작 화면이 건너뛰고 잠깁니다.

답변3

이것은 PAM 모듈의 좋은 예입니다 pam_env.so. 가상 콘솔 로그인은 이 login프로그램을 사용하므로 이를 열고 다음 /etc/pam.d/login과 같은 줄을 추가할 수 있습니다.

session  required  pam_env.so  readenv=1 envfile=/etc/vc-environment user_readenv=0

함께 제공되는 새 파일을 사용하면 다음과 같습니다 /etc/vc-environment.

TMOUT=600

PAM을 사용하면 두 가지 장점이 있습니다.

  • 가상 콘솔에 로그인한 모든 사용자에게 작동합니다(나중에 변경하는 것을 막지는 못합니다 TMOUT).
  • 시간 초과는 다른 특정 서비스에도 적용될 수 있습니다 sudo.

여기를 읽어보세요이 모듈에 대한 세부정보입니다.

관련 정보