[리눅스] 사용자 및 권한 기본 명령어

이지연·2025년 11월 18일
post-thumbnail

개요

이번 포스팅에서는리눅스에서 꼭 알아야 하는 사용자와 권한 관련 기본 명령어들을 치트시트 형태로 정리해보겠다.
특정 파일이 “왜 안 열리는지 / 왜 안 지워지는지 / 왜 실행이 안 되는지” 같은 문제들은 대부분 사용자/권한과 연결되기 때문에, 이 부분을 이해해 두면 서버를 다룰 때 훨씬 편해진다.


사용자 정보 및 권한 상승

먼저, “지금 내가 어떤 계정으로 무엇을 할 수 있는지”를 확인하는 명령어들이다.

# 현재 로그인한 계정 이름 출력
whoami
  • whoami : “나는 누구인가?” → 현재 명령을 실행 중인 사용자 계정을 알려준다.
  • 여러 계정(su, sudo 등)을 오가다 보면, 실제로 어떤 권한으로 실행 중인지 헷갈릴 때가 많아 자주 쓰게 된다.
# 관리자 권한으로 명령 실행 (Super User Do)
sudo [명령어]

# 예시
sudo apt update
sudo rm /var/log/app.log
  • sudo : 현재 사용자 비밀번호를 입력해 관리자(root) 권한으로 명령을 1회 실행한다.
  • root 계정 비밀번호가 아니라, 현재 로그인한 사용자 비밀번호를 묻는다.
  • 잘못 사용하면 시스템 파일을 삭제하거나 설정을 망가뜨릴 수 있으니, 습관적으로 남발하지 않는 것이 중요하다.

사용자 계정 관리

새 계정을 만들거나, 비밀번호를 설정하고, 다른 계정으로 전환하는 기본 흐름이다.

# 새 사용자 추가 (보통 root 또는 sudo 권한으로 실행)
sudo useradd devuser
  • useradd [계정명] : 시스템에 새로운 사용자 계정을 추가한다.
  • 실제로 사용할 계정이라면 홈 디렉터리, 쉘 옵션 등을 함께 지정하는 것이 일반적이지만, 치트시트 수준에서는 이름만 기억해도 충분하다.
# 사용자 비밀번호 설정/변경
sudo passwd devuser
  • passwd [계정명] : 해당 사용자의 비밀번호를 설정하거나 변경한다.
  • 보안 정책에 따라 주기적인 비밀번호 변경도 이 명령으로 수행한다.
# 다른 사용자로 전환 (로그인 쉘까지 변경)
su - devuser
  • su - [계정명] : 해당 계정의 비밀번호를 입력하고, 그 사용자로 로그인하여 쉘을 연다.
  • -를 붙이면 해당 사용자의 환경변수, PATH, 홈 디렉터리까지 완전히 그 유저로 로그인한 상태가 된다.
# 현재 쉘/세션 종료
exit
  • exit : 지금 열려 있는 쉘을 종료한다.
  • su로 들어간 뒤 exit을 치면 이전 사용자로 복귀한다.
  • 터미널 탭/세션을 닫을 때도 동일하게 사용한다.
+ 생성된 계정으로 change 시 발생하는 경고문의 이유와 해결방법

권한(permission) 기본 개념

리눅스에서 파일/디렉터리의 권한은 보통 다음과 같은 형태로 표시된다.

rwxrwxr--
^  ^  ^
|  |  └─ o : other (그 외 사용자)
|  └──── g : group (소유 그룹)
└─────── u : user  (소유자)

각 문자 의미는 다음과 같다.

  • r (read) : 읽기 권한 → 숫자 4
  • w (write) : 쓰기 권한 → 숫자 2
  • x (execute): 실행 권한 → 숫자 1
  • - : 해당 권한 없음

예를 들어:

rwxrw-r--
  • u(소유자) : rwx → 4 + 2 + 1 = 7
  • g(그룹) : rw- → 4 + 2 + 0 = 6
  • o(기타) : r-- → 4 + 0 + 0 = 4

→ 숫자로 쓰면 764 권한이 된다.

이 숫자 표기 방식은 chmod 764 파일명처럼 쓸 때 사용된다.


권한 변경 – chmod

파일이나 디렉터리의 권한을 바꾸는 명령어는 chmod이다.

숫자(8진수)로 설정하기

# u:rw-, g:r--, o:r-- → 644 권한 부여
chmod 644 sample.txt
  • chmod [숫자] [파일명] 형태로 사용한다.
  • 각 자리(소유자/그룹/기타)는 r(4) + w(2) + x(1)을 더해서 만든다.
    • 예) 7rwx, 5r-x, 4r--
    • 예) 755 → u:7(rwx), g:5(r-x), o:5(r-x)

심볼릭 모드로 변경하기

숫자 대신 문자 조합으로 더 직관적으로 권한을 조절할 수도 있다.

  • 대상
    • u : user(소유자)
    • g : group(소유 그룹)
    • o : other(그 외)
    • a : all(모두)
  • 연산자
    • + : 권한 추가
    • - : 권한 제거
    • = : 권한을 정확히 지정
# 소유자에게 실행 권한 추가
chmod u+x sample.txt

# 그룹에서 실행 권한 제거
chmod g-x sample.txt

# 기타 사용자에게 읽기만 허용 (r-- 로 설정)
chmod o=r sample.txt

숫자 모드가 익숙할수록 빠르지만, 특정 권한만 추가하거나 제거할 때는 심볼릭 모드가 더 이해하기 편하다.


소유자 / 그룹 변경 – chown

파일/디렉터리의 주인(소유자)소유 그룹을 변경하는 명령어는 chown이다.

# 소유자와 그룹을 동시에 변경
chown owneruser:ownergroup sample.txt
  • chown [소유자]:[소유그룹] [파일/디렉터리] 형식이다.
  • 그룹만 바꾸려면 :group, 사용자만 바꾸려면 user: 처럼 한쪽만 써도 된다.
  • 실제로는 대부분 sudo나 root 권한으로 실행한다.

디렉터리와 그 안의 모든 파일까지 한 번에 바꾸고 싶은 경우:

# sample_dir와 그 내부 전체 소유자/그룹 변경
chown -R owneruser:ownergroup sample_dir
  • -R : 재귀적(recursive)으로 하위 디렉터리/파일까지 모두 적용.

chown은 한 줄로 표현하면

“이 파일/폴더의 주인과 그룹을 바꾸는 명령
이라고 이해하면 된다.


사용 팁 요약

  • whoami : 지금 어떤 계정으로 명령을 실행 중인지 먼저 확인.
  • sudo : 정말 필요한 작업에만 최소한으로 사용 (특히 rm, chmod, chown과 조합 시 주의).
  • useradd / passwd / su : 계정 생성·비밀번호 설정·계정 전환.
  • chmod : 권한(읽기/쓰기/실행)을 조절.
    • 숫자 모드는 r(4) + w(2) + x(1) 조합을 기억.
  • chown : 파일/디렉터리의 주인과 그룹을 바꿈.

마치며

이번 글에서는 리눅스에서 자주 마주치게 되는 사용자와 권한 개념을
whoami, sudo, useradd, passwd, su, chmod, chown 같은 명령어 중심으로 정리해봤다.

특히 “Permission denied” 에러나, 어떤 파일은 열리는데 어떤 파일은 전혀 손댈 수 없는 이유가 결국 소유자/그룹/기타 사용자에 대한 권한 설정에 있다는 점을 이해하고 나면,
문제를 감으로 해결하는 대신 정확히 권한을 읽고 조정해서 해결할 수 있게 될듯!!

profile
Eazy하게

1개의 댓글

comment-user-thumbnail
2025년 12월 11일

와우 좋은글감사합니다
저도 출근해서 꼴보기싫은 상급자에게 바로 ‘chown’ 시전한 뒤
회사근처국밥집까지 저를태우고 네발로기어가게하고싶네요
농담입니다

답글 달기