linux 파일 권한 명령어 chmod, chown, chgrp
📝리눅스 파일 권한 명령어 정리(chmod, chown, chgrp)
- 리눅스에서 파일, 디렉토리 권한을 설정, 변경하고 소유권을 변경하는 방법에 대해 알아보겠습니다.
먼저 권한을 확인하는 명령어인 ls -al
명령어를 통해 파일과 디렉토리 리스트를 출력하면 권한을 확인할수 있습니다.
출력 결과는 각각 파일종류 및 권한(퍼미션), 링크수, 사용자(소유자), 그룹, 파일크기, 수정시간, 파일이름을 나타냅니다.
여기서 권한은 ‘drwxr-xr-x’ 부분이고 소유권은 ‘pi pi’로 확인할수 있습니다. 앞의 pi는 사용자를 나타내며 뒤의 pi는 그룹을 나태냅니다. 첫 글자가 d
로 시작하면 디렉토리라는 의미로, -
일 경우는 일반 파일로 해석하면 됩니다.
이 외에도 첫번째 문자의 의미를 정리하면 아래와 같습니다.
d | 디렉토리(directory) |
---|---|
b | 블록 타입 특수 파일(block special) |
c | 문자 타입 특수 파일(character special) |
l | 심볼릭 링크(symbolic link) |
p | 파이프(pipe) |
s | 소켓(socket) |
- | 일반 파일(regular file) |
첫 글자를 제외한 뒤의 9개의 문자는 3글자씩 끊어서 소유자, 그룹 사용자, 기타 사용자의 권한을 표시합니다. 3글자씩 끊는 이유는 파일에 부여할 수 있는 권한은 기본적으로 읽기, 쓰기, 실행 3가지의 형태가 있기 때문입니다.
- 읽기 권한(r) : 파일을 열어볼 수 있고, 파일의 수정은 불가능하나 복사는 가능합니다.
- 쓰기 권한(w) : 파일에 덧붙여 쓸 수 있습니다. 즉, 읽기 권한과 쓰기 권한을 같이 가진 rw_ 형태의 파일이라면 파일 편집이 가능하다는 것입니다. 읽기 권한 없이 쓰기 권한만 있다면 기존의 파일 뒤에 정보를 덧붙일 수 있는 것만 가능합니다.
- 실행 권한(x) : 파일을 실행할 수 있습니다.
예를 들어보겠습니다.
---
: 접근 불가능한 파일r--
: 읽기만 가능한 파일r-x
: 읽기와 실행이 가능한 파일(프로그램 같은 파일)rw-
: 읽기와 쓰기가 가능한 파일(일반 파일)rwx
: 모든 권한을 가진 파일
디렉토리에 대한 파일 권한 역시 일반 파일과 동일합니다. 디렉토리 권한에 대한 몇 가지 상황을 생각해 보겠습니다.
-
디렉토리에서 쓰기 권한(w)이 없다면 파일을 수정하고 생성하는 것 등이 불가능합니다.
-
실행 권한(x) 이 없다면 디렉토리로 접근하는 것(cd)가 불가능해집니다.
-
읽기 권한(r)만 부여할 경우 디렉토리에 저장된 항목은 조회할 수 있지만 해당 디렉토리에 저장된 파일은 조회할 수 없습니다. 즉, 어떤 파일이 있다는 것만 알 수 있습니다.
-
디렉토리에 실행 권한(x)만 부여할 경우, 디렉토리 내 파일 목록을 볼 수 없습니다. 이 말은 읽기 권한(r)이 없어
ls-al
로 조회해도 디렉토리 내의 파일을 알 수 없습니다. 하지만 실행 권한(x)은 있어 어떤 파일이 저장되어 있는지 이미 알고 있다면 파일을 조회하는 것은 가능합니다. 주의할 점은 이 경우에는 파일의 결로와 이름이 정확하게 입력해야 조회할 수 있습니다. -
디렉토리에 쓰레 권한( w)만 부여한 경우는 아무 권한도 부여하지 않은 상태와 동일합니다.
파일 권한 숫자 ( 옥텟 8진수)
위에서 살펴 봤듯이, 파일 권한을 구분하는 경우 크게 3가지로 분류할 수 있습니다.
읽기(r) | Reading | 4 |
---|---|---|
쓰기(w) | Writing | 2 |
실행(x) | Executing | 1 |
— | –x | -w- | -wx | r– | r-x | rw- | rwx |
---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
- 파일 또는 디렉토리를 생성할 때
umask
권한 값을 결정하는 명령어입니다.umask
는 리눅스가 설치될때 기본적으로 022값으로 설정되어있습니다. 값은 설정 가능합니다.
기본 권한(8 진수) | 기본 권한(문자) | |
---|---|---|
파일 | 644 | rw-r–r– |
디렉토리 | 755 | rwxr-xr-x |
- 권한 관련 파일 및 디렉토리 명령어 입니다. 즉 권한에 따라 영향을 받는 파일 및 디렉토리 명령어 입니다.
명령어 | 파일 | 디렉토리 |
---|---|---|
읽기 | more, cat, gead, tail | ls |
쓰기 | vi편집기로 내용 수정 | touch, mkdir, mv, cp, rm |
실행 | 파일 이름 | cd |
chmod
명령어를 사용해 권한 부여해보겠습니다.
-
chmod
(change mode): 파일이나 디렉토리에 권한을 수정할 때 사용합니다. 각 user, group, other, all(전부)에게 권한을 지정할 수 있습니다, 더하기(+)를 사용해 권한을 추가하고, 빼기(-)를 사용해 권한을 제거할 수 있습니다. ”=”으로는 권한을 직접 지정할 수 있습니다.- 예를 들어 보겠습니다.
chmod g+x [파일명]
: 그룹에 실행 권한을 줍니다.chmod o-w [파일명]
: 다른 사용자에게 쓰기 권한을 빼앗습니다.chmod a=rw [파일명]
: 모든 사용자에게 읽기, 쓰기 권한을 지정합니다.
-
위의 방식은 다른 대상은 건드리지 않고 특정 대산에 대한 권한만 간단하게 지정할 수 있지만, 한꺼번에 수정할 경우에는 번거로울 수 있습니다. 이럴 때는 위에 설명한 권한을 나타내는 숫자를 이용해 한번에 권한을 변경할 수 있습니다.
chmod {user 권한 숫자}{group 권한 숫자}{other 권한 숫자}[파일명]
의 형식을 통해 권한을 변경할 수 있습니다.- 예를 들어보겠습니다.
chmod 000 [파일명]
: user, group, other에 있는 모든 권한을 제거합니다.chmod 777 [파일명]
: user, group, other에 대한 모든 권한을 추가합니다.chmod 743 [파일명]
: user에게는 모든 권한이 허용되고, group에는 읽기 권한(r)만, other에 대해서는 실행 권한 (x), 쓰기 권한(w)만 줍니다.- 위에서 설명한 바와 마찬가지로 읽기 권한(r)은 4, 쓰기 권한(w)는 2, 실행 권한(x)는 1로 나타낼 수 있고, 필요한 권한을 모두 더한 값으로 각 사용자의 권한을 지정할 수 있습니다.
-
-R
을 사용하면 하위 디렉토리와 그 안의 파일 권한까지 변경할 수 있습니다.- 예를 들어보겠습니다
chmod -R 7-- [디렉토리명]
: 해당 디렉토리 하위에 위치한 모든 파일 및 디렉토리에 user의 읽기, 쓰기, 실행 권한만 주고 나머지의 권한은 없앱니다.
chown, chgrp
를 사용해 파일 소유권을 변경하기
-
위에서 설명한 chmod 명령어는 파일이나 디렉토리의 권한을 변경하는 역할을 했습니다. chown, chgrp의 역할도 알아보겠습니다.
-
chown(change ownership): 파일이나 디렉토리의 사용자(소유자)를 변경할 때 사용합니다.
-
chgrp(change group): 파일이나 디렉토리의 그룹을 변경할 때 사용합니다.
즉, chown이나 chgrp 모두 파일이나 디렉토리의 소유권을 변경할 때 사용합니다.
-
예를 들어보겠습니다.
-
sudo chown user1 [파일명]
: 파일 사용자를 user1으로 변경합니다. -
sudo chgrp user1 [파일명]
: 파일 그룹을 user2으로 변경했습니다.-
그룹만 변경할 때 chgrp 명령어를 사용합니다. 일반 사용자는 자신이 속한 그룹으로만 변경이 가능합니다.
sudo chown user3.user3 [파일명]
: chown 명령어를 통해 사용자와 그룹을 동시에 변경할 수 있습니다. 이때 권한 설정할 때와 같이 -R을 사용하면 하위 디렉토리와 그 안의 파일 소유권까지 변경할 수 있습니다.
-
-
-
댓글남기기