-rw—–– ??

ls -la

항상 터미널을 주로 사용하다보니 현재 경로의 파일들을 확인하기 위해 ls 명령어를 사용하지만 간혹가다가 모든 파일을 확인해봐야 할 때 ls -la 명령어를 사용한다. 그러다 예전에 문득 궁금증이 생겼다.

“저 줄 앞에있는것들은 무엇을 뜻하는걸까?”




Permission

rwx

앞에 나오는 10-11자리 숫자는 모두 각각의 의미를 가지고 있으며 각각 나눠서 확인해보면 이렇게 나온다.

파일 맨 앞에 나오는 문자 (1자리)

해당 파일에 대한 유형을 보여주는 곳이다.

문자유형의미
-일반 파일텍스트, 이미지, 프로그램, 데이터 파일 등
d디렉토리폴더
l심볼릭 링크다른 파일이나 디렉토리를 가리키는 바로가기
c문자 장치 파일터미널, 모뎀 등 문자 단위로 입출력하는 장치
b블록 장치 파일하드디스크, CD-ROM 등 블록 단위로 입출력하는 장치

나머지 접근권한 (이후 9자리)

여기서 3개씩 묶어서 각각 소유자(User), 그룹(Group), 기타 사용자(Orders) 순서대로 적용된다.

위치권한의미
r읽기파일 내용을 보거나, 디렉토리 목록 확인 가능
w쓰기파일 내용을 수정하거나, 디렉토리에서 파일 생성 혹은 삭제 가능
x실행파일을 프로그램으로 실행시키거나, 디렉토리에 접근하여 이동 가능
-권한 없음해당 권한이 부여되지 않음

즉 만약 -rw-r--r-- 라고 한다면 해당 파일 혹은 디렉토리는 다음과 같은 권한을 가지고 있다.

  • -: 일반 파일
  • rw-: 소유자는 읽기와 쓰기 가능
  • r--: 그룹 사용자는 읽기만 가능
  • r--: 기타 사용자는 읽기만 가능




설정하기

chmod

이제부터 파일 혹은 폴더에 대한 권한을 설정해보려고 한다. 제일 흔한 방법으로 가장 기본적인 방법으로는 chmod명령어를 사용하는것이다. change mode 라는 뜻을 가진 이 명령어를 실행하는 밥법으로 두 가지 방법이 존재한다.

1. 8진수 (숫자) 표기법

이 방식은 위에엇 말했던 소유자(User), 그룹(Group), 기타 사용자(Orders)에게 부여할 최종 권한을 숫자로 지정하는 방식이다. 제일 많이 사용하고 직관적인 특징을 가지고있다.

권한문자8진수 값
실행x1
쓰기w2
읽기r4
표에 나온 각 권한의 숫자를 더해서 3자리 숫자를 만들면 된다.

rwx = 4 + 2 + 1 = 7, r-x = 4 + 1 = 5, rw- = 4 + 2 = 6

// 명령어 방식
chmod [User][Group][Others] [file-name/directory-name]
// 명령어 방식
chmod [User][Group][Others] [file-name/directory-name]
chmod 644 [file-name/directory-name]
chmod 644 [file-name/directory-name]

만약 자신이 ssh 키 생성하면서 한번쯤 사용했었을 chmod 600 ssh-name 혹은 chmod 644 ssh-name 이라는 명령어도 이 공식에서도 적용되어 있는 것이다. (소유자에게만 쓰기, 읽기 권한 적용)

그리고 디렉토리의 권한을 변경할 때, 해당 디렉토리 안에 있는 모든 하위 파일과 디렉토리의 권한까지 함께 변경하고 싶다면 -R (재귀적 옵션) 을 사용하면 된다.

chmod -R 755 [directory-name]
chmod -R 755 [directory-name]

2. 심볼릭 (문자) 표기법

이 방식은 기존 권한에서 특정 권한을 추가(+)하거나 제거(-) 또는 새롭게 설정(=) 할 때 사용된다.

대상 (Who)작업 (Operator)권한 (Permission)
u (User, 소유자)+ (추가)r (읽기)
g (Group, 그룹)- (제거)w (쓰기)
o (Other, 기타)= (새로 지정)x (실행)
a (All, 모두)

chmod의 심볼릭 표기법은 u+x (소유자에게 실행 권한 추가), g-w (그룹에서 쓰기 권한 제거)와 같이 특정 권한을 더하거나 뺄 때 유용하게 사용할 수 있다.

// 명령어 방식
chmod [Who][Operator][Permission] [file-name/directory-name]
// 명령어 방식
chmod [Who][Operator][Permission] [file-name/directory-name]
// 예시
chmod u+r [file-name/directory-name]
// 예시
chmod u+r [file-name/directory-name]

간혹 ls -l을 실행했을 때 -rwxr-xr-x+ 와 같이 권한 비트 뒤에 +가 붙는 경우가 있다. 이것은 표준 권한(UGO) 외에 setfacl 명령어를 통해 설정된 추가적인 접근 제어 목록(ACL)이 존재한다는 특별한 표시다. (예: /home/user)




마무리

end

오늘은 리눅스 초기에 궁금증이 생겨서 찾아봤던걸 짤게 작성해봤다. 그리고 chmod 라는 명령어는 자주 사용하는 명령어가 아니지만 ssh를 설정할 때 자주 접했을거라 생각해서 관련 내용을 추가해서 작성해보았다.