Linux 파일 권한 관리 및 설정

파일 권한 기초

Linux 시스템에서 모든 항목은 파일로 처리되며, 각 파일에는 접근 권한이 할당됩니다. 프로세스가 파일에 접근할 때 적용되는 권한은 실행자에 따라 달라집니다.

  • 실행자와 파일 소유자가 동일할 경우, 파일 소유자 권한이 적용됩니다.
  • 실행자가 파일 소속 그룹에 속할 경우, 파일 소속 그룹 권한이 적용됩니다.
  • 위 두 조건에 해당하지 않을 경우, '기타' 권한이 적용됩니다.

권한 관리 방법

3.1 소유자 및 그룹 변경

chown user:group filename # 소유자와 그룹을 동시에 변경
chown --reference=source_file target_file # 소스 파일의 속성으로 대상 파일 변경

3.2 접근 권한 설정

chmod 755 script.sh # 실행 권한 포함된 권한 설정

3.3 새 파일 기본 권한

새 파일 생성 시 기본 권한: 666 - umask
   계산 결과가 실행 권한(홀수)을 포함할 경우 +1, 짝수일 경우 유지
새 디렉토리 생성 시 기본 권한: 777 - umask
비-root 사용자의 umask 기본값: 002
root 사용자의 umask 기본값: 022
umask 확인: umask
umask 변경: umask 002

3.4 특수 권한

SUID: 실행 파일에 적용, 실행자에게 파일 소유자 권한 부여
   chmod u+s file
   chmod 4xxx file
   chmod u-s file
SGID: 실행 파일에 적용 시 그룹 권한 부여, 디렉토리에 적용 시 새 파일 그룹 자동 상속
   chmod g+s file
   chmod 2xxx file
   chmod g-s file
STICKY: 디렉토리에 적용, 해당 디렉토리 내 파일은 소유자만 삭제 가능
   chmod o+t dir
   chmod 1xxx dir
   chmod o-t dir

3.5 특수 속성

i/a 속성
   -i: 삭제/수정/이름 변경 불가 (읽기 전용)
   chattr +i file
   -a: 내용 추가만 가능, 삭제/수정 불가
   chattr +a file
   속성 확인: lsattr

3.6 ACL 설정

# 추가 사용자/그룹에 대한 권한 부여
# 적용 순서: 소유자 > 특정 사용자 > 소속 그룹 > 기타
setfacl -m u:wang:- file.txt # wang 사용자에게 권한 제거
setfacl -m g:admin:w file.txt # admin 그룹에 쓰기 권한 부여
# ACL 백업/복원
getfacl -R /path > acl_backup.txt
setfacl -R -b /path # ACL 초기화
setfacl --restore acl_backup.txt /path # ACL 복원
# 권한 확인
getfacl -R /path
# mask 설정
mask는 소유자와 other를 제외한 권한 최대값을 정의
사용자/그룹 권한은 mask와 AND 연산 후 적용됨

태그: Linux 권한 관리 파일 속성 설정 ACL 구성 SUID SGID 파일 접근 제어

6월 19일 17:28에 게시됨