728x90

 

안녕하세요 오늘은 유닉스 리눅스 명령어에 대해

알아보려고 합니다.

보안기사 / 보안산업기사를 보면 가끔 나오더라구요.

처음에 공부를 할 땐 계속 햇갈렸었는데

이번에 글을쓰면서 확실히 개념을 잡으려고 합니다.

 

chmod / chown 처음에 제가 공부했을 땐 둘다 소유권을 변경하는건 줄 알아서

문제에 나오면 뭐지라고 헷갈렸는데요.

문제에서는 확실하게 차이점을 구별하기 위해선 다음과 같습니다.

chmod 파일의 접근권한 변경

chown 특정 사용자나 그룹을 변경할 때 사용

 

이런 차이점으로 문제를 내시는 것 같습니다.

처음엔 찍기로 맞혔는데 나중에 풀이랑 보니깐 특정이 붙는지 아닌지로 저는 생각하고 풀고있습니다.

 

그럼 자세히 알아볼까요

 

 

chmod

 

chmod 접근권한 변경

- 기존 파일이나 디렉토리에 대한 접근 권한(파일모드)을 변경할 때 사용

- 파일 모드의 변경은 파일 소유자나 슈퍼 유저만 가능

-파일 모드는 기호나 8진수로 지정

 

사용법 

문자일 경우   :  chmod [옵션] (대상)(+/-/=)(rwx) (파일명)

8진수 일경우 : chmod [옵션) (대상)(+/-/=)(rwx) (파일명)

 

 

자세한건 아래에 하겠습니다.

 

 

이렇게 접근 권한을 문자로 표현합니다.

문자 외에 숫자로도 표현이 가능한데요 다음과 같습니다. 

읽기는 4 , 쓰기는 2 , 실행은 1의 8진법으로 표현이 됩니다.

즉 숫자로 봤을때 7이나온다면 읽기쓰기실행권한이 다있는 것이고

5가 나온다면 읽기 실행

4가 나온다면 읽기만 가능한 것이죠.

 

chmod는 숫자로 접근권한을 변경하기도 하며

문자로도 변경이 가능합니다.

 

일단 간단한 예시로

chmod 4755 변경하고자하는 파일

 

자세히 예를 들자면

chmod 777 test : test 파일의 user / group / other의 권한을 모두 rwx (읽기,쓰기,실행)으로 변경

chmod 4755 test : test 파일의 user id 설정을 지정하고, user에게 rwx(읽기,쓰기,실행) 권한 부여

group / other 에겐 r-x(읽기, 실행) 권한 부여

 

 

이런 식으로도 가능하며 문자는 다음과 같이 사용이 가능합니다.

사용법

문자열일 경우

예)

chmod ug+rw test: test 파일의 user / group 멤버들에게 읽기 , 쓰기 권한 추가

chmod u=rwx,g+x test : test 파일의 user는 읽기,쓰기,실행 권한 부여,

group 멤버들에게 실행권한을 추가

 

 

 

chown

 

 

chown 소유자/그룹 변경

-파일이나 디렉토리의 소유주나 그룹을 변경할 때 사용

- 명령을 실행하고 나면 그 파일에 대한 이전 소유주는 해당 파일에 명령을 다시 실행할 수 없음(소유자 변경)

- 명령어를 사용하기 위해서는 슈퍼 유저 권한이 필요(보안 특성상 슈퍼유저만 사용)

 

 

사용법 : $ chown -R [owner name]:[group name] [filename or directory]

 

 

chown 명령어 같은 경우 어떻게 쓰는지에 따라 설정이 바뀌는데요 다음과 같습니다.


소유자 – 소유자만 변경한다.
:그룹명 – 그룹만 변경한다.
소유자: – 소유자와 그룹 모두 동일한걸로 변경한다.
소유자:그룹명 – 소유자와 그룹을 서로 다른걸로 변경한다. (물론 같은걸 해도 상관없답니다.)

 

chown 사용 예)

chown a test : test 파일에 대한 소유자를 a로 바꾼다.

chown :a test : test 파일에 대한 그룹명을 a로 바꾼다.

 chown a: test : test 파일에 대한 소유자 및 그룹명을 a로 바꾼다.

chown a:b test : test 파일에 소유자는 a, 그룹명은 b로 바꾼다.

 

 

chomd의 옵션은 다음이 있습니다.

만약 옵션을 사용하신다면 앞에 두시면되죠

Ex)

chown -R a test 

 

 

 

 

이 외에 그룹 소유권을 변경하는 (chgrp)가 있는데요

과거 UNIX의 이전 버전에선 chown 명령어가 그룹 소유권이 아닌 파일 소유권만 변경할 수 있었습니다.

chgrp는 그룹 소유권을 변경하기 위한 독립된 명령어 입니다.

이 역시 추가 옵션으로는 chown 과 같습니다.

 

 

Umask

 

마지막으로 Umask 에 대해 알아보겠습니다.

Umask 접근 권한 마스크로

 

chmod 명령 같은 경우 기존에 있던 파일의 접근궈한을 변경할 때 사용을 하는데요.

그렇다고 매번 새로 생성되는 파일마다 접근권한을 변경해주기는 번거롭지 않을까요.

그래서 사용하는게 umask입니다.

새로 만들어진 파일에 대한 명령으로 해당 8진수는 새로 만들어질 파일에서 제거 될 권한을 나타냅니다.

 

디렉토리와 파일 같은 경우 최대 권한이 8진수로 표현했을때 다음과 같습니다.

디렉토리 : 777

파일 : 666

 

그런데 만약 umask가 022로 설정되어 있다면

새로 만들어지는 디렉토리와 파일에 접근권한은 다음과 같게되죠.

디렉토리 : 755

파일 : 644

 

즉 쉽게 설명하자면

최대 접근권한에서 umask 값을 빼면 됩니다.

777 022 = 755 이런식으로요

 

보통 umask 값은 그룹과 기타 사용자의 쓰기 권한에 제한을 두는 022를 많이 사용합니다.

하지만 다르게 사용을 할때도 있겠죠.

umask 같은 경우 사용을 하려면

 

 

사용법

umask (특정 권한) = umask 033 

 

이런 식으로 사용하시면 됩니다.

그러면 디렉토리는 744가 되겠죠

 

umask를 입력해보면

숫자가 4개가 나올텐데요

기본 가정했을 때 0022 가나올텐데

두 번째부터가 소유자 그룹 기타사용자입니다.

맨 앞에같은 경우 다음에 설명드릴 SetUID SetGID. Sticky bit 비트가 설정되면 나오는 숫자입니다.

setUID 7  해당 파일의 소유자 권한

SetGID 4 해당 파일의 그룹 권한

Sticky bit 1 파일 소유자나 루트사용자가 파일 변경 가능

 

간단하게 이런되요 이 설명에 대해선 다음에 다시 하도록 하겠습니다.

 

저도 공부하는 입장이르 틀린 부분이 있을 수도 있는데요.

잘못된 것이나 보완할 점을 댓글에 달아주시면 감사하겠습니다.

보고 나서 저도 개념을 다시 정리하고 글 수정도 하도록 하겠습니다.

 

이상으로 마치겠습니다.

감사합니다.

 

----------------------------------------------------------------------

확인해봤는데 보완할 점이 있어 다시 수정해서 올립니다.

 

728x90

+ Recent posts