본문 바로가기

닷컴's_열공/Linux

리눅스의 기본 명령어 - 퍼미션 (권한)

윈도우 사용자에겐 약간 생소한 퍼미션에 대해 알아보자.
퍼미션이라는 말은 Permission 즉 허락,허가 같은 뜻이다.
어떤 파일이나 디렉토리에 접근할 때 허락하느냐 마느냐에 대한 내용이란 뜻이다.
리눅스는 윈도우와는 달리(윈도우 서버는 제외한다.) 여러 사용자가 사용할 수 있는 시스템이다.
윈도우는 기본적으로 한 사용자가 한 컴퓨터를 사용하게 되지만 리눅스는 여러 사용자가 동시에 한 컴퓨터를 사용할 수 있게 해준다.
네트워크를 통한 접속을 통해서 가능하다.
여러 사용자가 사용하다보니 접근권한에 대한 문제가 생겼다.
내가 컴퓨터에 일기를 적어놓았는데 누군가가 훔쳐볼 수도 있다는 생각이 들었기 때문이다.
일기를 써놓은 파일을 나만 볼 수 있게 되면 좋겠다.
그래서 퍼미션이란게 생겼다.
기본적으로 세가지 권한이 있다.

  • 읽기(read) : 파일을 읽어 볼 수 있는 권한.
  • 쓰기(write) : 파일을 수정하거나 삭제할 수 있는 권한.
  • 실행(execute) : 파일을 실행할 수 있는 권한.

이 권한을 다음과 같이 세가지로 구분해서 줄 수 있다.

  • 소유자(user)
  • 그룹(group)
  • 나머지 사용자(others)

나와 친한 사람들만 볼 수 있는 파일을 만들어 같이 사용할 수도 있을 것이다.




[brown@ezphp brown]$ ls -al
합계 8
drwxrwxr-x 2 brown brown 4096 7월 4 14:45 .
drwx--x--x 9 brown brown 4096 7월 4 14:45 ..
-rw-rw-r-- 1 brown brown 0 7월 4 14:45 test
[brown@ezphp brown]$

앞서 배운 ls 명령을 통해 디렉토리 내의 리스트를 출력해 보았다.
그런데 파일이름 생성날짜 파일 크기 외에 모르는 무언가가 몇 개 보인다.
우리가 유심히 봐야 할 것은 앞의 drwxrwxr-x 와 brown brown 이다.
처음의 d는 디렉토리임을 뜻한다. 파일은 test는 디렉토리가 아니기 때문에 -로 표시되어있다.
이 다음부터는 세 개씩 때어서 보자.
눈치가 빠른 사람은 이미 알아차렸겠지만 이는 권한을 뜻한다.


  • r -> read
  • w->write
  • x->execute

임을 뜻한다.
그런데 이런게 세 개가 있다. 감이 오는가? 그렇다. 소유자,그룹,그외 사용자 이런 순서로 권한이 주어진 것이다.
test 파일의 경우 소유자와 같은 그룹 사용자는 읽고 쓰기권한이 그 외 사용자는 읽기 권한밖에 없다.
쓰기 권한이 없는 그 외 사용자가 이 파일의 내용을 수정하려고 한다면 권한이 없어서 에러가 나게된다.
자 그럼 brown brown 은 무엇인가?
첫 번째 brown은 이 파일에 대한 소유자를 뜻한다.
brown 이라는 아이디를 사용하는 사용자가 이 파일의 주인이라는 뜻이다.
그렇다면 두 번째 brown 은? 당신은 천재다!
brown이 속한 그룹명이다.(유저명이랑 그룹명이 동일한 경우다! brown이 user 그룹에 속한다면 user 라고 나왔을것이다. )

chmod


파일이나 디렉토리의 퍼미션을 주는 명령어이다.




$chmod u+r brown.txt #소유자에게 읽기 권한을 주는 것이다.
$chmod g+r brown.txt #소유자가 속한 그룹에게 읽기 권한을 주는 것이다.
$chmod o+r brown.txt #그외 사용자에게 읽기 권한을 주는 것이다.
$chmod a+r brown.txt #모두에게 읽기 권한을 주는 것이다.
$chmod o-r brown.txt #그외 사용자에게 읽기 권한을 없애는 것이다.

위처럼 + 는 권한 부여를 -는 권한 박탈을 뜻한다.

  • u - user
  • g - group
  • o - others
  • a - all

이 방법 외에 숫자로 주는 방법이 있다.

  • 읽기 = 4
  • 쓰기 = 2
  • 실행 = 1






$chmod 755 brown.txt

7 = (4 + 2 + 1) : 읽기 + 쓰기 + 실행
5 = (4 + 1) : 읽기와 실행

chown


파일의 소유자 및 그룹을 변경하는 명령어이다.

이 명령어는 root는 제한없이 사용가능하지만 일반 사용자는 제한이 있다.
일반 사용자는 자신이 소유한 파일에 한하여 그룹정보만 바꿀 수 있다.




#chown brown.user brown.txt

brown.txt 파일의 소유자를 brown 으로 그룹을 user 로 변경한다.

chgrp


파일의 그룹을 변경하는 명령어이다.
일반 사용자는 자신이 소유한 파일만 가능하다.




#chgrp user brown.txt

chown 이 그룹정보를 변경할 수 있기 때문에 잘 사용하지는 않는다.

'닷컴's_열공 > Linux' 카테고리의 다른 글

find.grep.egrep.du-sk.ps-ef 간단사용  (0) 2012.05.14
route 테이블 사용방법  (0) 2008.06.16
linux 명령어 총집합  (0) 2007.12.26
리눅스 스케줄러 crontab 이용하기  (3) 2007.12.26
Linux에서 Java 설치  (0) 2007.12.26