본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
root 계정이 로그인할 수 있는 터미널을 정의한다.
  • 위치 : /etc/securetty

/etc/securetty 는 root 로그인을 허용할 터미널 장치 이름을 한 줄에 하나씩 적어 두는 파일이다. 장치 이름은 /dev/ 를 빼고 적는다(console, tty1, ttyS0 등). 일부 login 프로그램은 이 파일을 직접 읽어 root 가 로그인할 수 있는 터미널을 제한하고, PAM 을 쓰는 시스템에서는 PAM 모듈 pam_securetty 가 같은 목적으로 이 파일을 쓴다.[1]

pam_securetty 와의 관계

편집 원본 편집

pam_securetty 는 root 가 securetty 파일에 적힌 "안전한" 터미널에서 로그인할 때만 인증을 통과시키는 auth 유형 모듈이다. 일반 사용자에게는 영향이 없고, 파일이 없거나 누구나 쓸 수 있는 파일이면 쓰지 않는다. 정상적인 쓰임은 다른 sufficient 인증보다 앞에 required 로 두는 것이다.[2]

# /etc/pam.d/login
auth required pam_securetty.so
auth required pam_unix.so

root 원격 로그인 금지

편집 원본 편집

텔넷 같은 원격 접속은 가상 터미널(pts/0, pts/1 …)로 들어온다. 그래서 root 의 원격 로그인을 막으려면 두 파일을 함께 손본다.

  1. /etc/pam.d/login 에 auth required pam_securetty.so 줄이 있는지 확인한다(주석 처리돼 있으면 푼다)
  2. /etc/securetty 에서 pts/* 항목을 지워 콘솔·로컬 tty 만 남긴다

그러면 root 는 콘솔에서만 직접 로그인하고, 원격에서는 일반 계정으로 들어온 뒤 su·sudo 로 권한을 얻는다.

  • SSH 는 이 파일을 쓰지 않는다. sshd 는 /etc/ssh/sshd_config 의 PermitRootLogin no 로 막는다 → 리눅스 시스템 보안

다른 파일과 구별하기

편집 원본 편집
파일 내용 root 원격 로그인 제한과의 관계
/etc/securetty root 로그인 허용 터미널 목록 pts 항목을 지워 원격 터미널을 막는다
/etc/pam.d/login login 서비스의 PAM 설정 pam_securetty 를 호출하게 한다
/etc/passwd 계정 이름, UID·GID, 홈 디렉터리, 로그인 셸 터미널별 제한이 없다. root 셸을 바꾸면 콘솔 로그인까지 막힌다
/etc/shadow 암호화된 비밀번호와 비밀번호 사용 기간 비밀번호 정책 파일이다
/etc/crontab 주기적으로 실행할 작업 로그인과 관계없다
  1. ↑ 「securetty(5) - Linux manual page」, man7.org, https://man7.org/linux/man-pages/man5/securetty.5.html, 확인일: 2026-11-04.
  2. ↑ 「pam_securetty(8) - Linux manual page」, man7.org, https://man7.org/linux/man-pages/man8/pam_securetty.8.html, 확인일: 2026-11-04.