[Linux] 권한 설정

욱이로그·2022년 9월 13일
0

권한 설정 관련해서 항상 어려움을 겪고 있어서 이렇게 포스팅으로 남겨놓으려고 한다!
잘 정리해놓고 까먹을때마다 확인하자...

리눅스는 멀티유저 운영체제이다. 따라서 여러 명의 사용자가 이 시스템에 접근해서 어떠한 행위를 할 수 있는 서버 시스템 환경이다.

장점이지만 단점으로는 시스템의 중요한 문서나 파일들과 같이 보안이 필요한 부분에서 취약하다.
리눅스에서는 이러한 단점을 보완하고자 각각의 파일과 디렉토리에 소유권을 부여하고 읽기, 쓰기, 실행 권한을 부여함으로써 보안성을 강화한다.


🎈 파일 권한 설정

 drwxr-xr-x  2  root root  4096  Sep 1  17:19  opt/

ls -al 명령어를 사용하면 파일들 리스트 및 권한 등을 확인할 수 있다.
해당 파일에 대한 정보를 분석해보자.

d: 파일 표시 ( -: 파일, d: 폴더/디렉토리, l: 링크 )
rwx: 소유자 권한 ( r: 읽기, w: 쓰기, x: 실행 )
r-x: 그룹 권한 ( r: 읽기, w: 쓰기, x: 실행 )
r-x: 다른 사용자 권한 ( r: 읽기, w: 쓰기, x: 실행 )
2: 링크 수 (opt 디렉토리 내에 파일 개수)
root: 소유자
root: 소유자 그룹
4096: 파일 크기
Sep 1: 수정 날짜
opt: 파일 이름

따라서 해석해보면 다음과 같다.

opt 파일의 소유자 및 소유자 그룹은 root이다.
소유자 권한은 rwx (읽기 + 쓰기 + 실행)
그룹 및 다른 사용자 권한은 r-x (읽기 + 실행)

숫자 표기법

rwxr-xr-x 부분을 숫자로도 표기가 가능하다.

rwx: 4+2+1 = 7
rw-: 4+2+0 = 6
r-x: 4+0+1 = 5
r--: 4+0+0 = 4
-wx: 0+2+1 = 3
-w-: 0+2+0 = 2
--x: 0+0+1 = 1

ex1) rwxrwxrwx: 777
ex2) rw-r--r--: 644


🎈 권한 변경: chmod

chmod <권한> <변경할 파일 또는 디렉토리>

권한을 변경하는 방법에는 개별단위로 권한을 부여하는 방법과 숫자로 변경하는 방법이 있다.
먼저 개별단위로 권한을 부여하는 방법을 알아보도록 하자.

g: 그룹, u: 사용자, o: 다른 사용자, a: 모두
+와 -를 통해 권한을 부여하거나 제외시킬 수 있다.

위와 같이 testfile1, testfile2를 만들어놨다.
testfile2에 여러 테스트를 해보겠다.

chmod g+rw testfile2: 그룹에 읽기 및 쓰기 권한 부여
chmod u+rwx testfile2: 사용자에게 읽기, 쓰기 및 실행 권한 부여
chmod o+rwx testfile2: 다른 사용자에게 읽기,쓰기 및 실행 권한 부여
chmod g-w testfile2: 그룹에 쓰기 권한 박탈

다음으로는 숫자로 변경하는 방법에 대해서 알아보자.
위에서 진행한 방식을 숫자 표기법으로 진행해보자.

chmod 777 testfile2: 사용자, 그룹, 다른사용자에게 모든 권한을 부여
chmod 766 testfile2: 사용자(rwx), 그룹 및 다른사용자(rw) 부여
chmod 744 testfile2: 사용자(rwx), 그룹 및 다른사용자(r--) 부여

r+w+x가 7이라는 사실만 확실하게 기억하자!
(r=4, w=2, x=1)


🎈 소유주 및 그룹 변경: chown

chown <소유주> <변경할 파일 및 디렉토리>

위의 testfile2의 소유주는 root이다.
예를 들어, 사용자 계정 중 hellopapa라는 계정이 있다고 가정하자.

chown hellopapa testfile2 (파일)
chown (-R) hellopapa testfile2/ (디렉토리)

위와 같이 명령어를 입력하게 되면 소유주(사용자)가 root에서 hellopapa로 바뀌게 된다.
-R 옵션을 주게되면 디렉토리 안의 파일 소유권도 동일하게 hellopapa로 변경된다.

또한 소유주와 그룹을 동시에 변경하고 싶을 때가 있다.
다음과 같은 명령어를 입력해주면 된다.

chown <소유주>:<그룹> <변경할 파일 및 디렉토리>

chown hellopapa:hellopapa testfile2

위와 같이 입력하게 되면 소유주 및 그룹이 hellopapa로 모두 변하게 된다.
마찬가지로 -R 옵션도 적용 가능하다.


🎈 파일의 그룹만 변경: chgrp

chgrp <그룹> <변경할 파일>

chgrp root testfile2

그룹이 hellopapa에서 root로 변경되는걸 확인할 수 있다.


🎈 Reference

https://wlsvud84.tistory.com/9
https://danmilife.tistory.com/8?category=541148

profile
뭐든 해보고싶은 개발자

0개의 댓글