Skip to content
난이도 출제 빈출문제은행 6

UNIX/LINUX 명령어와 chmod ​

UNIX 계열 운영체제는 셸(shell)에 명령어를 입력해 파일과 프로세스를 다룬다. 실기 시험에서는 "설명에 맞는 명령어"를 쓰게 하거나, 파일 권한을 8진수로 바꾼 chmod 명령문을 쓰게 하는 문제가 자주 나온다. 이 문서는 자주 나오는 명령어를 역할별로 묶고, 권한 표기를 숫자로 바꾸는 절차를 정리한다.

자주 나오는 명령어 ​

이름은 대부분 영어 단어의 줄임이라 뜻째 외운다.

명령어하는 일이름의 뜻
ls디렉터리의 파일 목록 표시list
cd현재 디렉터리 변경change directory
pwd현재 작업 디렉터리 경로 표시print working directory
cp · mv · rm파일 복사 · 이동(이름 바꾸기) · 삭제copy · move · remove
cat파일 내용을 화면에 표시concatenate
find · grep파일 찾기 · 파일 안에서 문자열 찾기find · global regular expression print
chmod · chown권한 변경 · 소유자와 그룹 변경change mode · change owner
ps · kill실행 중인 프로세스 표시 · PID(Process ID, 프로세스 식별자)로 프로세스에 신호 보내 종료process status
who · uname접속한 사용자 표시 · 시스템 이름·버전 등 정보 표시who · UNIX name

fork는 셸 명령이 아니라 실행 중인 프로세스를 복제해 **새 프로세스를 만드는 시스템 호출(system call)**이지만, 시험의 명령어 목록에는 함께 나온다. find는 파일 이름·속성으로 찾고, grep은 파일 내용에서 문자열을 찾는다는 점이 자주 헷갈린다.

권한 10자리 읽기 ​

ls -l을 하면 줄 맨 앞에 -rwxr-xr-- 같은 10자리가 나온다. 첫 자리는 파일 종류(- 일반 파일, d 디렉터리, l 심볼릭 링크(symbolic link))이고, 나머지 9자리는 세 자리씩 소유자(user)·그룹(group)·기타 사용자(other) 의 권한이다. 각 세 자리는 읽기 r, 쓰기 w, 실행 x 순서이며 권한이 없으면 -다.

8진수로 바꾸기 ​

세 자리씩 끊어, 권한이 있으면 1·없으면 0인 2진수로 본 뒤 8진수 한 자리로 바꾼다. 곧 r=4, w=2, x=1을 더한 값이다. 예를 들어 rwxr-x--x는 111 101 001이므로 751이고, 명령문은 chmod 751 파일명이다.

8진수권한ls -l 결과
755소유자 전부, 나머지 읽기·실행-rwxr-xr-x
644소유자 읽기·쓰기, 나머지 읽기-rw-r--r--
750기타 사용자는 권한 없음-rwxr-x---
600소유자만 읽기·쓰기-rw-------

기호로 바꾸기 ​

기호 표기는 누구에게(u·g·o·a) 무엇을(+ 추가, - 제거, = 지정) 어떤 권한(r·w·x) 을 줄지 쓴다. 숫자 표기는 전체를 새로 정하고, +·-는 기존 권한의 일부만 바꾼다. 예를 들어 644인 파일에 chmod u+x,g+w를 하면 -rwxrw-r--(764)가 되고, chmod u=rwx,g=rx,o=는 750과 같다.

umask ​

umask는 파일이나 디렉터리를 새로 만들 때 빼 버릴 권한을 정하는 값이다. 새 파일은 666, 새 디렉터리는 777을 기본값으로 요청하고, 여기서 umask에 켜진 비트를 끈다. umask가 022이면 새 파일은 644, 새 디렉터리는 755가 되고, 027이면 파일 640·디렉터리 750이 된다.1

시험 포인트 ​

  • "파일 권한을 설정하는 명령" → chmod, "소유자·그룹 변경" → chown, "현재 디렉터리 경로 출력" → pwd, "새 프로세스 생성" → fork.
  • 권한 → 숫자: r4 w2 x1을 세 자리씩 더한다. rwxr-xr-- → 754. 답은 chmod 754 파일명 형태로 쓴다.
  • umask는 빼는 값이다. 파일 기준 666, 디렉터리 기준 777.

참고

  1. 정확히는 자릿수 뺄셈이 아니라 비트 끄기다. 두 방식은 umask 자리에 기본값에 없는 비트가 있을 때 갈린다. 파일에 umask 027을 적용하면 기타 사용자 자리는 6−7이 아니라 6(rw-)에서 7(rwx)의 비트를 모두 꺼서 0이 된다. ↩︎

관련 문서