질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

초보질문 ㅠㅠ chown과 chmod에 대해..

작성자 정보

  • 박세우 작성
  • 작성일

컨텐츠 정보

본문

안녕하세요.. 우선 또 너무 기초적인 질문을 드려서 죄송합니다 ㅠㅠ

그래도 한번 읽어주시고 좋은 답변을 부탁드리겠습니다.

개념이 안잡혀있어서 그러니 양해해주시구요  ^^*

chown 명령은 소유자를 변경한다고 알고 있습니다.

그렇다면 예를들어서 root가 디렉토리를 생성하였다면

    -rw-r--r-- 1 root root  ... okman.cf<-이런식으로 소유자 그룹이 root로 되어 있다는건

    이해가 갑니다.

   그럼 chown nada.nada okman.cf 하면 okman.cf의 소유권과 그룹은 nada nada 로 나올

   것 입니다. 그럼 저렇게 소유주와 그룹을 변경하는 예를 알려주셨으면 합니다.

   어떨때 저걸 변동하는건가요? 그리고 이유는 무엇인가요? 이게 너무나도 궁금

   하고 답답해서 뒤로자빠졌습니다. ㅠㅠ ㅎㅎ;;

   우선 이거 답변을 들어야지 다음 chmod에 대한 질문을 드릴수 있을거 같네요..

   좋은 답변 기달리겠습니다.~

관련자료

댓글 4

박세우님의 댓글

  • 박세우
  • 작성일
추가질문이여~~ 관련 상세히 나온곳 링크 걸어주시면 대단히 감사드리구요..

또한 예를들어 FTP접속했을때 어떠어떠하다 라는 약간 구체적인 예를 들어주시면

정말 감사드리겠습니다 ㅠㅠ

최경훈님의 댓글

  • 최경훈
  • 작성일
소유권을 이전 하는 명령어는 chown입니다.. 예를 들어서 choi라는 아이디로 FTP를 접속해서 sysconfig.conf라는 파일을 다운 받으려고 합니다. 다운 받으려고 하니까 권한이 없다고 나옴니다. 보니까 소유자가 choi가 아니고 root라고 되있고 퍼미션이 700이라고 하면 당연히 다운이 안되겠죠?/?? 어디까지나 예를 들어서 말씀드리는 겁니다.
그럼 chown choi.choi sysconfig.conf로 바꿔 주어야 다운이 됩니다... 참고가 되었길...

정원용님의 댓글

  • 정원용
  • 작성일
뒤늦게 올립니다만, 비단 FTP뿐만이 아니고 아주 단순한 예를 들자면
choi:choigrp 인 계정을 가진 사람에게 root:root이고 접근권한이 있는
/opt라는 디렉토리 아래에 choidir 이라는 디렉토리를 만들어 주려고 합니다.

용도는 동영상을 저장할 수 있는 공간을 주는 것이라고 치지요.
그런데, root유저가 디렉토리를 만들게 되면 root:root(root유저와 root그룹이 소유자) 상태로
만들어집니다.
그럼 choidir이라는 디렉토리를 choi라는 사람이 접근하기 위해서는
choi라는 유저로 디렉토리를 만들면 될까요?
/opt라는 디렉토리는 쓰기 권한이 없고 억세스 권한만 모든 유저에게 주어져 있기 때문에
choi라는 사람은 디렉토리를 만들 수 없습니다.
이러한 경우에는 root유저가 root:root상태로 디렉토리를 만든 후 chown명령어로 디렉토리의
권한을 변경해주게 됩니다.(그러므로 상당히 많이 쓰이는 명령어중에 하나입니다.)

즉, 어떠한 공간을 특정 사용자에게만 허용해 주거나 금지할 때에는 chomod로 권한 조절하는것만으로는 목적을 달성할 수 없습니다.
이런 경우 소유자를 변경해주는것으로 특정 유저 또는 특정 그룹에만 사용을 허가해주는 일이 가능합니다.

또, 아주 간단한 예를 들어보면
apache라는 프로그램이 있습니다. 이 프로그램은 특정 디렉토리 아래에 자기가 필요한 파일이나 디렉토리를 만들어서 움직입니다. 그런데, 다른 사람이나 프로그램이 자꾸 프로그램 파일을 건드리는 일이 생겨서 apache가 제대로 동작하지 못하는 일이 생겼습니다.
그래서, apache의 디렉토리에는 apache라는 프로그램 이외의 다른 접근을 막고 싶습니다.
라는 경우를 생각해보지요.

이런 경우 apache라는 프로그램을 연상시키기 쉬운 apache 라는 유저와 그룹을 만든 후
apache라는 프로그램이 위치한 디렉토리/파일들은 소유자를 모두 apache:apache 로 만듭니다.
그리고 apache라는 유저로 프로그램을 기동하게되면, apache라는 프로그램은 자신이 위치한 디렉토리는 모두 apache유저가 가지고 있으므로 자유롭게 접근이 가능합니다.
그렇지만 root를 제외하고 다른 유저들은 소유주가 다르고 접근 권한이 없다면 해당 디렉토리에 아무런 해를 끼치지 못하게 됩니다.

정원용님의 댓글

  • 정원용
  • 작성일
그러므로 소유주 설정과 접근 권한 설정은 같이 연동해야만 원하는 결과를 얻을수 있습니다.
소유주가 지정되어있어도 chmod 777 과 같이 모든 사용자에게 읽기/쓰기/실행하기를 허용한다면 소유주 설정은 아무런 영향을 미치지 못합니다.
그러나, chmod 700 으로 설정되면 소유주만이 읽기/쓰기/실행하기 권한이 있고, 동일 그룹, 그외 다른유저에게는 디렉토리라면 디렉토리에 들어가는 것 조차 허용되지 않습니다.

그러므로
chown -R choi:choi /opt
chmod -R 700 /opt

이 두가지 명령이 실행된 /opt 디렉토리는 choi라는 그룹에 속한 choi유저만이 자유롭게 사용가능하고, root를 제외한 다른 모든 유저들의 접근이 불가능해집니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,138 명
  • 현재 강좌수 :  36,200 개
  • 현재 접속자 :  312 명