리눅스/명령어

권한 변경해주는 명령어 - chmod, chown

KWMBLOG 2018. 11. 29. 14:10

일단 먼저 말을 해둔다.

나는 특수권한을 사용해 본적이 많이 없어서

따로 다루지 않을 것이다.

권한 때문에 문제가 되는 경우가 많아서

함부로 적지 못하겠다.



chmod : 파일이나 디렉토리의 접근 권한을 변경해준다.

옵션

  • -R : 하위 디렉토리, 파일까지 모두 동일한 권한으로 변경한다.


예제를 보기전에 우선 마스크 값에 대해

먼저 짚고 넘어가야 한다.


ls -l 을 입력했을 때 보이는 것 중

rwxr-xr-x 이런식으로 표현되어 있는 것을

볼 수 있는데,

이런 것들을 마스크값이라고 한다.


rwxrwxrwx 이런식으로 쓰여지고, rwx 하나가 한셋트이다.

제일 앞 rwx 는 소유자의 권한,

중간에 rwx는 그룹의 권한,

마지막 rwx는 일반 사용자 권한이다.


이렇게 계정 용도별로 나워져 있어서

3개씩 끊어서 읽고,

rwxrwxrwx는 8진법으로

777 로 표기한다.


r : 읽기 (4), w : 쓰기 (2), x : 실행 (1)

으로 사용된다.

각 권한들이 빠져있다면 그 권한에 해당하는 기능은 사용할 수 없게 된다.


예를들어 w가 다 빠져있다면, 볼 수는 있지만 수정은 불가능하다.


앞에 붙어있는 d, - , l 등 과 같이 있는 것들은

파일의 유형을 나타내는 것이다.

d : 디렉토리, - : 일반파일, l : 링크 파일

을 뜻한다.





우선 테스트를 위해 test라는 디렉토리를 만들고,

하위에 test_directory 라는 디렉토리,

test_file 이라는 파일을 생성해 뒀다.

여기서 보면 각각 755, 644 로 생성 되어있음을 알 수 있다.





777은 누구에게나 모든 권한을 오픈한다는 것이다.

옵션 없이 chmod 명령어만 사용할 경우 test 디렉토리 하나만 수정이 된다.





-R 옵션을 사용하면 하위 디렉토리, 파일이

모두 변경이 되어있음을 확인 할 수 있다.




chown : 파일 혹은 디렉토리의 소유주와 그룹을 변경해준다.

옵션

-R : 하위 디렉토리, 파일까지 모두 변경해준다.



소유주와 그룹을 설정하는 이유는

해당하는 소유주와 해당하는 그룹원만 볼 수 있게 설정 할 수 있기 때문이다.


예를들어 소유주와 그룹원이 root로 생성된 파일이 있는데,

kwmblog 라는 계정으로 수정이나 작성 등 뭔 짓을 하려고 하면

권한 문제로 실행이 되지 않는다.

보안상 이런것들은 계정에 맞춰 설정 해 두는것이 좋다.



사용 방법은

chown 소유주명.그룹명 파일명

이다.


이것도 chmod 명령어와 마찬가지로

옵션을 쓰지 않으면 해당 파일만 권한이 바뀐다.





-R 옵션을 사용하면 하위까지 다 바뀌는 것을 볼 수 있다.




추가

심볼릭 링크를 사용하는 경우

소유자, 그룹권한을 변경해야 할 때도 있다.

이럴때는 -h옵션을 사용하면 된다.


chown -h 소유주명.그룹명 심볼릭링크

이렇게 해주면 된다.



꿀팁아닌 꿀팁을 주자면

chown 소유주명. 파일명

으로 입력했을때,

/etc/group에 소유주와 같은 이름으로

같은 그룹의 이름이 있다면 (보통은 있다)

chown 소유주명.그룹명 파일명

으로 입력한 명령어와

동일한 형태로 변경된다.


3줄요약

chmod는 파일이나 디렉토리의 접근권한을 설정하는 명령어이다.

chown은 파일이나 디렉토리의 소유주, 그룹을 설정하는 명령어이다.

글로 설명하려니 너무 어렵다.