11. 파일의 권한과 소유권

리눅스 파일 시스템은 파일과 디렉터리에 대한 권한과 소유권을 통해 시스템 보안을 관리한다.

파일 권한

리눅스는 각 파일과 디렉터리에 대해 읽기(Read), 쓰기(Write), 실행(Execute) 권한을 설정할 수 있다. 권한은 다음 세 사용자 범주에 대해 개별적으로 설정한다.

  • 소유자 (owner)
  • 그룹 (group)
  • 기타 사용자 (others)

권한의 종류

권한 설명
r (read) 파일 내용을 읽을 수 있는 권한
w (write) 파일 내용을 수정할 수 있는 권한
x (execute) 파일을 실행할 수 있는 권한 (디렉터리의 경우, 내부 파일 목록 조회 권한)

권한 확인

ls -l 명령어를 사용하여 파일 권한을 확인할 수 있다.

ls -l

예시 출력:

-rwxr-xr--
위치 설명
첫 문자 파일 유형 (-: 일반 파일, d: 디렉터리 등)
2~4 소유자 권한 (rwx)
5~7 그룹 권한 (r-x)
8~10 기타 사용자 권한 (r--)

파일 소유권

각 파일과 디렉터리는 소유자와 그룹을 가진다. 기본적으로 파일을 생성한 사용자가 소유자가 되며, 해당 사용자가 속한 그룹이 파일의 그룹으로 설정된다.

ls -l

예시:

-rwxr-xr-- 1 owner group 1234 Jan 1 00:00 example.txt
  • owner: 파일의 소유자
  • group: 파일이 속한 그룹

파일 권한 변경 - chmod

기호 모드 (Symbolic Mode)

기호 모드는 대상 사용자와 권한을 기호로 지정한다.

예시 설명
chmod u+r file 소유자에게 읽기 권한 추가
chmod g-w file 그룹에서 쓰기 권한 제거
chmod o+x file 기타 사용자에게 실행 권한 추가
chmod o+r-w+x file 기타 사용자에게 읽기 및 실행 권한 추가, 쓰기 권한 제거

숫자 모드 (Numeric Mode)

각 권한은 다음 숫자로 표현한다.

  • 읽기: 4
  • 쓰기: 2
  • 실행: 1

세 권한을 합산하여 3자리 숫자로 권한을 지정한다.

chmod 755 example.txt
  • 7 (4+2+1): 소유자 = 읽기 + 쓰기 + 실행
  • 5 (4+1): 그룹 = 읽기 + 실행
  • 5 (4+1): 기타 사용자 = 읽기 + 실행

실습: 파일 권한 변경

[실습] 파일 권한 변경 - 5분

[번외] 사용자 그룹과 사용자 변경

sudo 권한

sudo는 일반 사용자에게 제한된 루트 권한을 부여하는 명령어이다. 전체 루트 권한 없이도 특정 작업만 수행할 수 있도록 설정할 수 있다.

주요 기능

  • 특정 명령에 대해서만 루트 권한 허용 가능
  • 모든 sudo 실행 내용은 로그에 기록되어 추적 가능
  • 전체 루트 권한 없이 필요한 작업만 위임 가능

주요 명령어

명령어 설명
sudo 명령어 루트 권한으로 명령어 실행
sudo -l 실행 가능한 명령어 목록 확인
sudo -u 사용자 명령어 지정한 사용자 권한으로 실행
sudo -i 루트 로그인 셸 시작
sudo -s 현재 환경을 유지하며 루트 셸 시작

[번외] sudo 권한 제어

요약

  1. 파일과 디렉터리는 권한과 소유권으로 보안을 관리한다.
  2. 권한은 소유자, 그룹, 기타 사용자로 나뉘어 설정된다.
  3. sudo 명령어를 통해 일반 사용자도 제한된 루트 작업을 수행할 수 있다.