🚀 94sssh
Published on

2025.09.20

[모두의 리눅스] - 09. 퍼미션과 슈퍼 사용자

9.1. 파일의 소유자와 소유 그룹

리눅스의 모든 파일에는 소유자가 있으며, 소유자는 접근 권한을 설정할 수 있음.

ls에 -l 옵션을 지정하면 소유자를 확인할 수 있다.

$ ls -l /bin/cat

명령어를 쳤을 때 출력되는 내용을 확인하면 세 번째와 네 번째 항목에서 파일의 소유자와 소유 그룹을 확인할 수 있음.

그룹
그룹이란 사용자들을 묶은 그룹으로, 여러 사용자를 그룹에 소속시켜 권한을 관리할 수 있음.

한 사용자가 여러 그룹에 소속될 수 있고, 처음 사용자 생성 시 그룹을 지정하지 않으면 사용자 이름과 동일한 그룹에 소속됨.

groups명령어를 통해 자신의 그룹을 확인할 수 있음

9.2. 파일의 퍼미션

퍼미션
사용자별 권한

파일의 퍼미션을 확인할 때는 ls명령어에 -l 옵션을 지정.

$ ls -l /bin/cat
-rwxr-xr-x 1 User 197121 38719 1022  2024 /bin/cat*

첫 번째 글자는 파일의 타입으로, -는 일반 파일, d는 디렉터리, l은 심볼릭 링크를 의미.
파일 타입 다음 9자 rwxr-xr-x는 파일 모드로, 파일의 퍼미션을 의미.
9글자는 3글자씩 각각 소유자, 소유 그룹, 기타 사용자의 퍼미션을 표시.

기호의미
r읽기 (read)
w쓰기 (write)
x실행 (execute)

위의 /bin/cat 권한은 다음과 같다.

사용자 종류읽기쓰기실행
소유자허가허가허가
root 그룹에 소속된 사용자허가금지허가
기타 사용자허가금지허가

디렉터리도 퍼미션을 설정할 수 있으며, ls명령어에 -l옵션과 함께 -d옵션을 지정한다.

ls -ld dir1

디렉터리 퍼미션 기호의 의미는 파일과 조금 다름.

기호의미
r읽기: 디렉터리의 파일 목록 확인 가능
w쓰기: 디렉터리 내 파일 및 디렉터리 작성/삭제 가능
x실행: 디렉터리로 이동 가능

chmod 명령어: 파일 모드 변경

파일이나 디렉터리의 퍼미션을 설정하려면 chmod명령어를 사용한다. 퍼미션 설정 방법은 기호 모드와 수치 모드 두 가지가 있다.

  • 기호 모드

chmod [ugoa] [+-=] [rwx] 파일 이름

기호 모드는 상대적으로 퍼미션을 지정

ugoa는 사용자를, +-=는 퍼미션 허용 여부를, rwx는 읽기, 쓰기, 실행의 퍼미션을 의미함.

기호의미
u소유자
g소유 그룹
o기타 사용자
augo 모두
+퍼미션 추가
-퍼미션 금지
=지정한 퍼미션과 같게 함
  • 수치 모드

chmod 8진수수치 파일 이름

수치 모드는 기존 퍼미션을 새로운 퍼미션으로 덮어씀. 퍼미션에 해당하는 숫자를 더해서 퍼미션을 지정함.

의미숫자
읽기 (r)4
쓰기 (w)2
실행 (x)1

예로, rwxr-xr-x라는 권한은 755가 되는데,
rwx(421)의 합 7 / r-x(4_1)의 합 5 / r-x(4_1)의 합 5인 식이다.

chmod 755 file.txt

9.3. 슈퍼 사용자

슈퍼 사용자는 관리자 권한으로, 루트 사용자라고도 불림.

su 명령어: 사용자 전환

su명령어로 일시적으로 다른 사용자로 전환 가능한데, 주로 슈퍼 사용자로 전환하기 위해 사용.

su명령어에 아무 인자도 주지 않으면 슈퍼 사용자로 전환하는 것을 의미하고, 프롬프트가 $에서 #으로 바뀜. 작업이 완료되었으면 exit명령어로 일반 사용자로 돌아갈 수 있음.

슈퍼 사용자로 전환 시, 환경 변수나 디렉터리는 일반 사용자의 상태가 유지되므로, 슈퍼 사용자용 환경으로 초기화를 위해 su -로 하이픈을 추가해서 실행하는 것이 좋다.

sudo 명령어: 명령어를 다른 사용자가 되어 실행

sudo명령어를 사용하면 다른 사용자가 되어 명령어를 실행할 수 있음. 사용자를 지정하지 않으면 슈퍼 사용자로 명령어를 실행.

sudo 명령어

sudo명령어를 사용할 수 있는 사용자는 /etc/sudoers 파일을 통해 관리된다. 해당 파일을 텍스트 에디터로 편집하는 것은 위험하므로 visudo라는 특별한 명령어가 존재한다. visudo는 슈퍼 사용자 권한이 필요하며 Vim을 사용해 편집하게 된다.