}

블로그 소개


*여러분들의 따듯한 댓글은 5%, 팔로우는 10% 블로그 포스팅 속도와 퀄리티를 높여줍니다.*

프로필

팔로우 해주시면 포스트할 때 큰 힘이 됩니다!!! 사실 저도 이 팔로우가 무슨 기능이 있는지는 모르겠습니다만, 팔로우 수가 늘면 '날 응원해주는 사람들이 있구나' 생각이 들어서 큰 힘이 됩니다.

팔로어

다른 페이지로 이동


리눅스 독학 페이지 운영체제 독학 페이지 네트워크 독학 페이지 시스템 해킹 하드웨어 독학 페이지 프로그래밍 독학 페이지 보안 페이지

오스 페이지 다이어트 정보 페이지 게임 정보 페이지 인생 꿀팁


****사진을 클릭하시면 페이지로 이동할 수 있습니다!****

<===***===↓↓↓You can use translate using chrome ↓↓↓===***===>

2019년 8월 25일 일요일

chown, chgrp 매우 자세히!

안녕하세요 마무입니다~ 오늘도 저의 블로그를 찾아주셔서 감사합니다!
오늘은 "리눅스 소유자 ,소유 그룹 변경"과 그때 쓰이는 명령어 "chown", chgrp에 대해서
 포스팅을 하겠습니다.

오늘 배울 내용은 리눅스 보안에 있어서 가장 기본중의 기본인 소유자와 그룹변경에 대한
개념과 하는 법을 배울 겁니다!

이 포스트를 이해하기 위한 지식

*********************


--목차---

1. 리눅스 소유자, 그룹을 왜 변경?

2. chown

3. chgrp

----------


더 자세한 리눅스 정보는 
에서 찾아보세요!




1. 리눅스 소유자, 그룹을 왜 변경?




자 먼저 뒤에서 배울 소유자나 그룹을 변경하는 명령어를 배우기 전, 도대체 왜 '변경을 하는지'에 대해서 먼저 알고 가겠습니다.

'소유자'란 말 그대로 '이 파일을 소유한 사람'을 말합니다. 그리고 리눅스에서는 처음에 파일을 만든 사람입니다.

'그룹'이란 말 그대로 '이 파일을 사용할 수 있는 그룹'을 말합니다. 그리고 리눅스에서는 처음에 파일을 만든 사람이 속한 메인 그룹입니다.

제가 유저 생성 포스트에서 알려드렸었지만 다시 복습삼아 말하자면, 리눅스 시스템은 기본적으로 유저를 만들면, 유저는 자기의 이름과 똑같은 '그룹'에 자동으로 속하게 됩니다.

왜냐면 리눅스는 항상 파일이든 유저든 모든 것이 소유자 또는 그룹에 속하게 만들기 때문이죠, 그래서 새로운 유저가 만들어지면 일단 소유자 이름과 똑같은 그룹을 만들어 유저를 집어넣는 겁니다.

예시를 들자면

useradd mamu
란 명령어로 'mamu'란 유저를 만들면 

리눅스에서는 기본적으로 'mamu'란 그룹을 자동으로 만들고, 거기에 'mamu'란 유저가 속하게 만드는 것이죠.

그리고 'mamu'란 유저가 "touch roro"란 명령어로 'roro"란 파일을 만들면 
이 파일의 정보는

-rw-r--r-- 1 mamu mamu 0 8월 23 00:47 roro


자연스럽게 초록색 '소유자' 위치소유자이자 파일을 만든 'mamu'가 들어가고
주황색 '파일 그룹' 위치에 파일을 만든 소유자의 메인 그룹인 'mamu'가 들어가는 것이죠.

자 그러면 도대체 왜 귀찮게 '소유자', '파일 그룹'이란 것을 만들어 사용하느냐?

이것도 제가 리눅스 운영체제 설치 편에서 다뤘듯, 애초 리눅스는 다수가 사용하는 '서버용 운영체제'로 만들어졌기 때문입니다.

개인 PC에 특화된 Windows만 사용해오던 우리들은 필요성을 잘 모르지만, 다수가 동시에 사용하기로 특화된 '리눅스'에선 파일의 소유자와 그룹을 나눠 사용을 제한하는 게 중요한 것이죠.

자 생각해보세요.

내가 열심히 머리를 굴려 작업을 하고, 저장한 뒤 '헤헤헤 나머지는 내일 해야지'하며 만족스럽게 자러 집으로 갔다고 해봅시다. 다음날에 돌아와 파일을 열어보니

누가 멋대로 파일을 복사해 가서 인터넷에 공개하고, 제 파일을 삭제시켜놨다고 해보죠.

와!!!! 상상만으로도 (개빡치네)화가 폭발할 것 같지 않습니까?

이렇듯 다수가 사용하는 시스템에서는 당연하게도 다른 사람의 소유물을 멋대로 다루면 안되기 때문에 모든 파일에 '소유자'를 지정해서 그 사람 외에는 사용을 제한하는 것이죠.

자 그럼 만약, 내가 파일을 만들었는데 이 파일을 소유권을 다른 사람에게 넘기고 싶다면 어떻게 해야할까요?

바로 이때 '소유권' 변경 명령어 'chown'을 쓰는 것이죠!

그러면 이런 생각도 들죠, 멋대로 다른 사람들이 내 작업물을 확인하는 것은 안되지만 같은 팀원 또는 부서인 사람은 확인하게 만들고 싶은데...

오! 그래요 바로 그럴 때를 위해 존재하는 게 바로 '파일 그룹'입니다.

자신의 이름과 똑같은 '그룹'이 아닌, 특정 부서, 팀만을 위한 '그룹'을 만들고
'파일 그룹'을 '그 그룹'으로 변경하면그룹에 속한 사람들만 파일을 사용할 수 있는 것이죠.

바로 이때! '파일 그룹'변경 명령어 'chrgp 또는 chown'을 쓰는 것이죠!

물론 살다보면 소유자, 파일그룹만으론 모두 관리하기 힘든 상황이 벌어집니다.
그래서 보다 정확한 권한 관리를 위한 것이 다음 포스트에서 배울 rwx입니다.




2. chown



chown(change owner) : 영어대로 소유자를 바꾸는 명령어 입니다.
하지만 이 "chown"은 소유자 뿐만 아니라 소유 그룹도 변경이 가능한데요 그래서
뒤에 배울 chgrp은 솔직히 쓸 일이 별로 없습니다. (쓸데없는 명령어를 많이 외워봤자
헷갈리기만 하기에... 물론 시험공부할 땐 외워야겠죠?)

그러니 외울 때 그냥 chown(change owner)를 개인소유자뿐 아니라 그룹소유자까지 포함한 "소유자를 바꿔버리는 명령어" 라고 외우시면 편합니다~

형식                                                                                                              
chown [옵션] [소유자:그룹] [파일]   
또는    [옵션] [소유자.그룹] [파일]                         
                                                                                                                           
위에 형식에서의 옵션은 언제나 그렇듯 "옵션"일 뿐입니다. 그래서 옵션은 없어도 되고
있어도 되죠 

"소유자:그룹" 같은 경우 일일이 소유자와 그룹이름을 다 쓸 필욘 없습니다만 [소유자:그룹] 처럼 '소유자.그룹'의 순서는 꼭 지켜줘야 합니다. 

무슨소리냐 "roro" 파일의 소유자를 "mamu"로 바꾸고 싶다면 "chown mamu roro"만 하면 되지만 소유 그룹만 "mamu"로 바꾸고 싶다면 "chown :mamu roro""chown .mamu roro" 이렇게 "."이나 ":"의 기점으로 순서를 지켜야 된다 이겁니다.

여기서 약간 주의하셔야 할 것이 "chown bob: roro(소유자: 파일이름)]과 같이 소유자 다음에 ":"를 붙이고 그 뒤에 그룹 이름을 안 쓰면 "그룹 이름이 소유자랑 똑같아 생략 효과"가 생겨 소유자랑 소유 그룹 둘 다 bob이 됩니다.

반면에 "chown :bob roro"는 앞에 생략됐다고 볼 만한 이름이 없기 때문에 소유자 그룹 둘다 bob이 되지 않고 그룹 이름만 "bob"으로 바뀌는 겁니다.

일단 사진을 통해 천천히 이해해봅시다~






이렇게 "roro"라는 파일을 만들어보고 나서 보니 "root그룹에 속한 root유저"로 만들었기에 파일의 소유자와 소유 그룹이 "root"인게 보이실 겁니다.






"chown 소유자 파일" 처럼 소유자만 적으니 "roro"파일의 소유자가 "mamu"로 바뀌었습니다.






"chown :그룹 파일이름" 은 앞서 설명한 것 처럼 앞에 생략된 이름이 있다고 볼 수 없는 형식으로 "roro"파일의 소유 그룹이 "bob"으로 바뀌었습니다

하지만






"chown root: roro" 이런식으로 ':' 뒤에 공백을 남기니, 그룹이름이 ':' 앞에 있는 유저와 같은 root라서 생략된 것 같은 여지를 주어 "roro"의 소유자와 소유그룹이 모두 "root"로 바뀌어버립니다.






"chown 소유자:그룹 파일이름" 처럼 동시에 소유자와 소유그룹 바꾸는 것은 당연히 가능합니다.

물론




없는 유저의 이름이나 없는 그룹이름으로 변경을 안됩니다~

chown의 사용 방법을 봤으니 이제 옵션도 봐야겠죠? chown에서 사실 쓸만한
옵션이라곤 -R(recursive) 밖에 없기 때문에 -R만 보고 가겠습니다~

옵션                                                                                                                                                                                                                                   -R(Recurisve) : 재귀, 쉽게 말해서 자기 자신을 또 참조하라는 뜻이죠 쉽게 이해하자면 "하위파일의 하위파일... 더이상 하위파일이 존재하지 않을 때까지 계속한다는 의미"로 이미 수 없이 많은 명령어에서 이 옵션을 쓰는 것을 봤죠?

여기서 쓸데없지만 궁금한 듯한 것이 있습니다. 왜 chown에는 '-r'옵션이 중복되지도
않는데 -R을 쓰는 것인가??

이것은 리눅스 -r과 -R의 차이라는 포스트에서 따로 다루도록 하겠습니다!!!

먼저 저희가 리눅스 기본명령어에서 배운 명령어인 'mkdir -R a/b/c'로 "a/b/c" 디렉토리 구조를 만들어줍니다.



                                                                                                         

보시면 a , a/b , a/b/c 디렉토리 모두 소유자와 그룹이 root입니다

위에 설명해드린 "-R" 옵션을 사용하면




이런식으로 하위파일까지 모두 소유자와 그룹이 바뀌는 것을 볼 수 있습니다~



3. chgrp



chgrp(change group) : 영어 그대로 파일의 소유자 그룹을 바꾸는 명령어 입니다.
하지만 이건 이름 그대로 "그룹"밖에 못바꿉니다.

형식                                                                                                              
 chgrp [옵션] [바꿀 그룹소유자이름] [파일] 
                                                                                                                                                           



아까 만든 "roro"파일의 그룹명을 바꿔봤습니다만.. chown만 완벽하게 습득하면 쓸 일이
없어서 더이상의 설명은 안하겠습니다~

당연히 -R(Recursive) 옵션이 있는데요 사용방법은 chown과 똑같아서 이것도 설명은
구지 안하겠습니다~


요즘 포스팅을 통 안했는데 너무 힘들고, 또 따로 공부하는게 있어서 그동안 못하고
조금씩 하면서 미뤄왔습니다 재충전의 시간을 가졌으니 이제 다시 열심히 포스팅
하겠습니다!!

다음 리눅스 포스팅을 기다리시던 분들에게는 아무런 통보없이 기다리게하여 죄송합니다
ㅠㅠ

다음에는 리눅스의 권한 rwx에 대해서 다뤄보겠습니다!

구글 블로그 팔로우와 따뜻한 댓글은 저에게 큰 힘이 되어 포스팅의 질 향상과 포스팅 속도 향상을 불러 일으킵니다!


댓글 없음:

댓글 쓰기

#1 여러분들이 소중한 시간을 투자해 달아주시는 따뜻한 댓글들은 저에게 정말 큰 힘이 됩니다!

#2 저의 각 포스트들은 엄청난 노력과 시간 투자를 통해 만들어진 포스트들로, 무단 복제나 모방하는 것을 금지합니다.

#3 저의 포스트에도 틀린 정보가 있을 수도 있습니다. 그럴 경우 친절한 말투로 근거와 함께 댓글로 달아주시면 정말 감사하겠습니다!