목. 7월 17th, 2025

리눅스를 처음 사용할 때 가장 혼란스러운 부분 중 하나가 파일 권한계정 관리입니다. 이 가이드에서는 실제 예제와 함께 기초부터 체계적으로 설명합니다.


1. 리눅스 계정의 기본 구조

리눅스는 다중 사용자 시스템으로, 모든 프로세스와 파일은 특정 계정으로 실행됩니다.

✔ 주요 계정 파일

  • /etc/passwd: 사용자 정보 저장
    # 예시: root:x:0:0:root:/root:/bin/bash
    # 사용자명:암호:UID:GID:설명:홈디렉토리:셸
  • /etc/shadow: 암호화된 비밀번호 저장 (root만 접근 가능)
  • /etc/group: 그룹 정보 저장

✔ UID/GID 이해하기

  • UID(User ID): 사용자 고유 번호
    root=0, 일반 사용자=1000+
  • GID(Group ID): 그룹 고유 번호
    id  # 자신의 UID/GID 확인

> 계정 구조 다이어그램
> (이미지: 사용자-그룹 관계도)


2. 파일 권한의 3가지 요소

ls -l 명령어 실행 시 나타나는 권한 표기:

drwxr-xr-- 2 user group 4096 Jan 1 10:00 mydir
-rw-r----- 1 user group  102 Jan 1 10:00 myfile

✔ 권한 해독법

파일 권한 구조
(이미지: 권한 표기 분석도)

  1. 파일 유형
    -=일반파일, d=디렉토리, l=링크
  2. 소유자 권한 (rwx)
    파일 소유자의 읽기/쓰기/실행 권한
  3. 그룹 권한 (r-x)
    소유 그룹의 권한
  4. 기타 사용자 권한 (r–)
    그 외 모든 사용자 권한

3. 권한 변경 실전 명령어

✔ chmod: 권한 설정

숫자 모드 (8진수):

chmod 755 myfile  # rwxr-xr-x
chmod 640 mylog   # rw-r-----

> – 4=읽기(r), 2=쓰기(w), 1=실행(x) > – 7(4+2+1), 5(4+0+1), 0(0+0+0)

문자 모드:

chmod u+x script.sh  # 소유자에게 실행권한 추가
chmod o-w file.txt   # 다른 사용자 쓰기권한 제거
chmod a+r public.txt # 모든 사용자 읽기권한 추가

✔ chown: 소유자 변경

chown user:group file.txt  # 소유자와 그룹 동시 변경
chown -R user dir/         # 디렉토리 재귀적 변경

✔ 특수 권한 (SUID, SGID, Sticky Bit)

권한 숫자값 예시 효과
SUID 4000 chmod 4755 실행 시 소유자 권한으로 실행
SGID 2000 chmod 2770 디렉토리 내 새 파일의 그룹 상속
Sticky 1000 chmod 1777 디렉토리 내 파일 삭제 방지 (/tmp)

4. 실무 적용 예제

🔒 웹 서버 구성 시

chown -R www-data:www-data /var/www  # 웹 파일 소유권 변경
chmod -R 755 /var/www                # 디렉토리 실행 권한 필수!
find /var/www -type f -exec chmod 644 {} \;  # 파일은 644

🔐 개인 파일 보호

chmod 700 ~/private   # 본인만 전체 접근 가능
chmod go-rwx secret.txt # 그룹/기타 사용자 권한 제거

5. 계정 관리 핵심 명령어

# 사용자 추가
sudo adduser newuser

# 그룹 생성
sudo groupadmin developers

# 사용자를 그룹에 추가
sudo usermod -aG developers newuser

# 패스워드 변경
passwd  # 본인 계정
sudo passwd username  # 다른 계정 (root만)

> 계정 관리 흐름도
> (이미지: 계정 생성/관리 프로세스)


6. 접근 제어 실습

  1. test_dir 디렉토리 생성
  2. 소유자를 본인 계정으로 설정
  3. 권한을 750으로 변경
  4. 그룹 사용자는 파일 읽기만 가능하도록 설정
    mkdir test_dir
    sudo chown $USER:developers test_dir
    chmod 750 test_dir

💡 보안 원칙

  1. 최소 권한 원칙: 필요한 최소한의 권한만 부여
  2. 정기적 감사: ls -lR /critical_dir 로 권한 검토
  3. 불필요 계정 제거: 퇴사자 계정은 즉시 비활성화
  4. 암호 정책: /etc/login.defs에서 패스워드 주기 설정

> 권한 오류 예시
> (이미지: 일반적인 권한 오류 메시지)

리눅스 권한 시스템은 처음엔 복잡해 보이지만, 체계적으로 이해하면 시스템 보안의 핵심 도구가 됩니다. 실제 서버 환경에서 이 가이드를 참고해 안전한 환경을 구축해 보세요!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다