인프라진단/인프라 지식

/etc/login.defs 설정파일 및 UMASK 설정

7.3.7 2025. 5. 14. 02:57

UMASK 관련 항목 진단 중 헷갈려서 정리.

 

/etc/login.defs

해당 파일은 로그인 설정 관련 파일인데, umask 설정을 볼때 확인하는 파일이다. 보통 022 아래로 설정되어있는게 주요정보통신기반시설 가이드에 나와있는 내용인데, 아래와 같이 설정되어있을때 헷갈리는 경우가 있어서 설명을 적어놓고자 한다.

ERASECHAR       0177
KILLCHAR        025
UMASK           022
HOME_MODE       0750

 

 

ERASECHAR 0177
터미널에서 문자 하나 지울 때 사용하는 키 설정입니다.
0177은 8진수이며, ASCII DEL (Delete) 문자를 의미합니다.
주로 백스페이스 키 역할을 합니다.

KILLCHAR 025
현재 줄 전체를 지우는 키입니다.
025는 Ctrl+U에 해당하며, 줄 전체를 삭제합니다.


두 항목 모두 터미널 입력 동작 제어용이며, 파일/디렉토리 권한과는 무관합니다.

UMASK 022
기본 파일 및 디렉토리 생성 시 제한할 권한입니다.

- 파일: 666 - 022 = 644 (rw-r--r--)
- 디렉토리: 777 - 022 = 755 (rwxr-xr-x)

결국 소유자는 모든 권한, 그룹과 기타 사용자에겐 쓰기 권한 없음

HOME_MODE 0750
새 사용자 홈 디렉토리를 생성할 때 기본으로 적용할 권한 모드입니다.

rwxr-x---
- 소유자: 읽기/쓰기/실행
- 같은 그룹: 읽기/실행
- 기타 사용자: 접근 불가

 

이는 0755(UMASK 022)보다 더 보안이 강화된 설정. 다른 사용자들이 내 홈 디렉토리 접근 못하게 막음.

 

 

결론 : 이 파일에서는 다른 사용자들의 UMASK를 설정할수 없으며, 사용자 UMASK를 설정하는 파일이 아님. 따라서 UMASK 설정을 확인하고자 한다면 UMASK 옆에 있는 숫자와 HOME_MODE만 보면 된다.

 

그럼 어디서 그걸 확인하는지 보자.

 

umask 개별 설정 방법

1) /etc/profile

# /etc/profile 내부에 아래 내용 추가
if [ "$USER" = "targetuser" ]; then
    umask 077
fi

 

2) .bash_profile(bash 사용할 경우)

# .bash_profile 예시
if [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi

# .bashrc 예시
umask 077