본문 바로가기
IT/리눅스 이론

리눅스 터미널 세션 타임아웃 설정 방법(자동 로그아웃)

by 꾸꾸웍스 2022. 8. 19.
반응형

 

 

Linux Terminal session timeout

 

리눅스 OS는 다중 사용자(Multi User) 시스템으로 한 서버에 여러 명의 사용자가 접속해서 사용할 수 있습니다. 서버에서 작업 후 안전하게 로그아웃을 하는 반면에 아무런 작업도 하지 않은 상태로 서버에 접속해 있는 경우나 터미널 세션을 종료하지 않고 악의적인 목적으로 접속을 할 수 있기 때문에 기본적으로 리눅스 터미널 세션은 시간 설정을 하여 자동으로 로그아웃을 하는 것이 보안적인 측면에서도 좋습니다.

 

 

터미널 timeout 개념

 

 timeout이 설정된 서버에 로그인

 리눅스 OS가 설치된 서버에 직접 접속한 경우를 제외하면 대부분 다른 컴퓨터에서 remote program을 이용해 리눅스 서버로 접속하게 됩니다. 대부분 보안상 직접 root로 로그인으로 접속하지 못하게 되어있어 일반 사용자 계정으로 로그인을 합니다.

 

 로그인 화면

login as:

 

  testuser 계정 로그인 예시

login as: testuser
testuser@192.168.1.111's password:
Last login: Wed Aug 17 09:04:04 2022 from 192.168.1.111

testuser@server $

 

 

 timeout이 설정된 서버에 자동 로그아웃

 root계정으로 스위칭한 후 환경변수를 이용하여 설정된 터미널 timeout을 확인합니다. 그 이후 timeout가 설정된 초단위(600초)가 지난 후 자동으로 로그아웃이 되는 모습입니다.

 

 터미널 자동 로그아웃 예시

login as: testuser
testuser@192.168.1.111's password:
Last login: Wed Aug 17 09:04:04 2022 from 192.168.1.111

testuser@server $ su -
Password:
Last login: Wed Aug 17 09:05:14 2022 on pts/2

root@server # echo $TMOUT
600

root@server # timed out waiting for input: auto-logout
Connection to server closed.

testuser@server $

 

 위 예시 처럼 터미널 세션에 timeout가 600초로 설정이 되어있고 아무런 동작을 하지 않으면 600초 뒤 "timed out waiting for input: auto-logout"이 프롬프트에 출력이 되고 "Connection to server closed."가 출력되며 접속한 사용자 계정의 터미널 세션이 종료되게 됩니다.

 

 

 

 

전체 사용자 로그아웃 시간 설정

 

리눅스 서버의 전체 사용자 계정에 대해 터미널 세션 timeout을 설정하려면 편집기 또는 리다이렉션을 이용하여 /etc/profile에 timeout을 설정합니다. 설정 전 변수 이름은 TMOUT로 설정하며 초단위로 설정을 합니다.

 

timeout 변수명

TMOUT={초단위 시간 입력}

또는

export TMOUT={초시간 단위 입력}

 

 /etc/profile에 터미널 timeout 설정

 $ vim /etc/profile

root@server # vim /etc/profile
...
TMOUT=300

또는

 $ echo "TMOUT=300" >> /etc/profile

root@server # echo "TMOUT=300" >> /etc/profile

 

 

 

 /etc/profile에 설정 적용

재부팅 하지 않고 바로 적용을 하기 위해 source명령어를 이용하여 /etc/profile을 바로 적용한 후 터미널 timeout이 설정되었는지 확인합니다.

 $ source /etc/profile

root@server # source /etc/profile

root@server # echo $TMOUT
300

 

 

 

반응형

 

 

특정 사용자 계정 로그아웃 시간 설정

 

리눅스 특정 사용자에게도 개별로 설정할 수 있으며 이미 전체 사용자에 터미널 세션 timeout이 설정이 되어있어도 특정 사용자들만 따로 timeout 시간을 다르게 설정할 수도 있습니다. 특정 사용자로 로그인 후 숨김 파일로 된 bashrc를 편집하거나 리다이렉션을 이용하여 timeout를 설정합니다. 

 

✔ 특정 사용자 .bashrc 위치확인

 $ ls -al

testuser@server $ cd

testuser@server $ ls -al
drwx------. 12 testuser root  4096 Aug  8 19:06 .
drwxrwxr-x.  7 root    user     72 Jun 24 17:55 ..
-rw-------.  1 testuser user  28734 Aug 17 11:36 .bash_history
-rw-r--r--.  1 testuser user     18 Apr  1  2020 .bash_logout
-rw-r--r--.  1 testuser user    193 Feb 14  2022 .bash_profile
-rw-r--r--.  1 testuser user    494 Jul  5 16:07 .bashrc
drwxr-xr-x   4 testuser root  4096 Aug  3 13:15 file

특정 사용자로 로그인을 하게 되면 자동으로 특정 사용자의 홈디렉토리로 이동하는데 혹시 다른 경로에 있다면 cd를 입력하여 홈디렉토리로 이동하시면 됩니다.

 

 

~/.bachrc 에 터미널 timeout 설정

vim 편집기를 이용해 TMOUT=600을 넣어준 후 저장하고 빠져나옵니다.

 $ vim .bashrc

testuser@server $ vim .bashrc
...
TMOUT=600

또는

 $ echo "TMOUT=300" >> .bashrc

testuser@server $ echo "TMOUT=600" >> .bashrc

 

 

.bashrc에 설정 적용

재부팅하지 않고 바로 적용을 하기 위해 source명령어를 이용하여 .bashrc를 바로 적용한 후 터미널 timeout이 설정되었는지 확인합니다.

 $ source .bashrc

testuser@server $ source .bashrc

testuser@server $ echo $TMOUT
600

 

 

 

반응형
그리드형

댓글