리눅스 권한 관리

Regular Kim·2025년 7월 27일
0

기타

목록 보기
9/19

사용자

컴퓨터에 접근하는 계정을 의미한다. 하나의 컴퓨터에 여러 사용자가 있을 수 있다. 그 계정들이 사용자이다.

cat /etc/passwd

컴퓨터의 사용자 목록을 출력한다.

root:*:0:0:root:/root:/bin/bash

: 값으로 구분된 값들이 나열된다. 이 중 가장 앞의 root 가 사용자의 이름을 나타낸다.

필드 위치설명
1사용자 이름 (root)
2암호 정보 (x 또는 *)
3사용자 ID (UID)
4그룹 ID (GID)
5사용자 설명 또는 전체 이름
6홈 디렉토리 (/root)
7로그인 쉘 (/bin/bash)

리눅스의 사용자 유형

1. 슈퍼 사용자

관리자이다. 시스템의 모든 권한을 가진 계정이다.

  • 어떤 제한도 없이 모든 명령어를 실행시킬 수 있으며 모든 파일을 조작할 수 있다.
  • 실수로 중요한 파일을 지우는 것도 가능하므로, 안전을 위해 평소에는 일반 사용자 계정을 사용하는 것을 추천한다.
  • 일반적으로 root 계정이 슈퍼 사용자로 설정되어 있다.

2. 일반 사용자

  • 권한이 허용된 명령어만 실행시킬 수 있고, 권한이 허용된 파일만 조작할 수 있다.
  • 실수로 중요한 시스템 파일을 지우는 것이 불가능하다.

현재 접속한 사용자 계정 확인하기

~ ❯ whoami
regularkim

관리자 계정으로 변경하기

sudo su
# super user

다른 계정으로 변경하기

su user-name

user-name에 해당하는 사용자 계정으로 변경한다.

그룹

그룹이란 사용자 계정을 묶어서 관리하기 위한 단위이다. 여러 사용자에게 공통된 권한을 한번에 부여하고 관리할 때 유용하다.

특징

  • 한 사용자는 무조건 하나의 그룹에 속해야 한다.
  • 한 사용자는 여러 그룹에 속할 수 있다.

특정 계정이 어떤 그룹에 속해있는지 확인하기

groups user-name

user-name에 속하는 계정의 그룹을 출력한다.

권한

하나의 컴퓨터에는 여러 사용자가 존재한다. 그러다보니 특정 사용자가 다른 사용자의 파일을 마음대로 접근하는 것을 막기 위해 권한이라는 기능을 추가했다. 권한을 활용하면 특정 사용자에 대해서만 특정 파일 또는 디렉토리에 접근할 수 있게 만들 수 있다.

권한 확인하기

리눅스의 모든 파일에는 '누구에게 어떤 권한까지 허용할 지'와 '소유자'와 '소유 그룹'이 설정되어 있다. 파일에서 이 정보를 확인할 수 있다.

ls -l
total 24
-rw-r--r--@   1 regularkim  staff    861  7  4 14:40 backup_demo.sql
drwxr-xr-x    3 regularkim  staff     96  4 20 21:40 CursorProjects
drwxr-xr-x    3 regularkim  staff     96  7  3 14:49 DataGripProjects
drwx------@   4 regularkim  staff    128  7  4 12:19 Desktop
drwx------@  13 regularkim  staff    416  6 24 13:43 Documents
drwx------+   4 regularkim  staff    128  6 29 05:05 Downloads
drwxr-xr-x    4 regularkim  staff    128  7 27 19:56 IdeaProjects

권한

맨 왼쪽 열의 문자열을 확인해보자. 어떤 행은 - 으로 시작하고 다른 행은 d로 시작한다. 여기서 -는 일반 파일을 의미하고, d는 디렉토리를 의미한다. 위 값들 중 drwxr-xr-x을 예시로 더 자세히 알아보자.

drwxr-xr-x
File TypeUserGroupOthers
파일 유형을 의미소유자에게 혀용된 권한을 의미소유 그룹에게 허용된 권한을 의미소유자도 아니고 소유 그룹도 아닌 사용자에게 허용된 권한을 의미
일반 파일의 경우유저 권한과 같으므로 생략유저 권한과 같으므로 생략
- : 일반 파일r(read) : 읽을 수 있다.
d : 디렉토리w(write) : 수정할 수 있다.
l : 심볼릭 링크x(execute) : 실행할 수 있다.
권한을 r, w, x의 순서로 표시하고 해당 권한이 없으면 - 로 표시한다.
디렉토리의 경우
r : 디렉토리 내부 파일 조회가 가능하다.
w : 디렉토리 내부 파일을 생성/삭제 가능하다.
x : 디렉토리 내부로 접근 가능하다.
권한을 r, w, x의 순서로 표시하고 해당 권한이 없으면 - 로 표시한다.

이제 drwxr-xr-x의 의미를 이해할 수 있다. 해당 파일은 디렉토리이며 파일의 소유자는 읽기, 수정, 실행이 가능하다. 소유 그룹은 읽기와 실행만 가능하다. 소유자도 아니고, 소유 그룹도 아닌 유저는 읽고, 실행만 가능하다.

소유자

regularKim 이름이 적혀있는 열은 파일의 소유자를 나타낸다. 파일을 생성한 사람이 자동으로 파일의 소유자로 설정된다.

소유 그룹

staff 이름이 적혀있는 열은 소유주가 아니라 소유자가 속한 그룹의 이름을 나타낸다. 각 사용자마다 기본 그룹이 설정되어 있다. 그 기본 그룹이 그룹명에 나타난다.

권한 변경하기 (chmod)

chmod 명령어를 사용하면 파일에 부여된 권한을 변경할 수 있다. 이 때 숫자 3개를 활용해서 변경할 권한을 설정한다. 각 권한(r, w, x)은 해당하는 숫자가 있다. 이 숫자를 더해서 변경할 권한을 수정할 수 있다.

r (읽기)w (쓰기)x (실행)
421
chmod 777 my-script.sh # -rwxrwxrwx
chmod 644 file.txt     # -rw-r--r--
chmod 755 secret.txt   # -rwxr-xr-x

예시. chmod 777

chmod 777

어떤 파일에 소유자, 소유 그룹, 그 외의 사용자에게 모든 권한을 부여하고 싶다. 그럼 아래와 같이 권한을 부여해야 한다. 이 때, 소유자, 소유 그룹, 그 외의 사용자에게 부여한 권한 문자에 맞게 각각 숫자를 더하면 777이라는 숫자가 나온다. 이 숫자를 활용해 rwxrwxrwx라는 권한을 부여할 수 있게 된다.

chmod 777 file-name
profile
What doesn't kill you, makes you stronger

0개의 댓글