본문 바로가기

개발/Linux

파일다루기 - 파일 디렉터리 접근 권한 관리

반응형

파일 디렉터리 접근 권한 관리


- chmod

  시스템 호출 chmod는 파일이나 디렉터리의 접근 권한을 변경하는데 쓰인다. 




맨앞에 d는 디렉토리인지 파일인지 알 수 있다. 

d라고 쓰여 있는 것은 디렉토리, 그 위치에 -로 쓰여있는 것은 파일이다.


두번째부터 rwxr-xr-x 이런 방식으로 써있는 문구들이 있다.

이 문구들이 바로 접근 권한을 알려주는 문구들이다. 

앞에서 부터 3글자 씩 나누어 user/group/다른user 이렇게 나누어 볼 수 있다. 


r은 read, w는 write, x는 execute 을 나타낸다. 

예를 들어 맨 아래줄인 vmware-install.pl의 접근 권한을 해석해보면

-rwxr-xr-x

- : 파일

rwx : 현재 user에서 읽고, 쓰고, 실행이 가능

r-x : 현재 user group에서는 읽고, 실행이가능

r-x : 다른 user에서 읽고, 실행이 가능 하다고 해석 할 수 있다. 


그리고 이러한 파일들의 권한을 바꿔주어야할 경우가 있다. 

새로운 파일은 하나 생성 해보자. 



hello world를 출력해주는 shell 프로그램이다. 

이것을 실행 해보자. 


Permission denied라는 문구가 나왔다. 접근 권한이 없다는 뜻 바로 실행 권한이 없다는 뜻이다. 

그렇다면 hello 파일의 접근 권한을 살펴 보자. 



rw-rw-r 에서 보면 현재 user의 접근권하는 나타내는 맨 앞 3개의 문자가 rw-인 것으로 보아 실행할 권한이 없다. 

그 여기에서 바로 우리가 앞에 배운 chmod를 사용하는 것이다. 


여기서 하나 먼저 알야할 것이 있다. 접근 권한을 바꾸러면 해당 접근 권한을 숫자로 바꿔서 입력을 해야한다. 다른 방법이 있을거 같지만 현재 내가 알고 있는 방법은 이거 하나... ㅜㅜ


세글자씩 나누어 이진수를 만들어보자 일단! 그렇게 해야한다. 

예를 들어 내가 현재 user 에게 rwx로 하여 읽고 쓰고 실행 할 수 있게 하고 싶다.

그러면 저것을 해당하는 문구의 위치를 1로 하여 이진수로 만들면 111이다 이것을 다시 십진수로 변경하면 7이 된다. 이렇게 user/group/other를 각각 숫자로 바꾼다. 

예를 들어 rwxr-xr-x이렇게 하여 현재 user에서는 읽기 쓰기 실행이 되고 다른 user에서는 읽고 실행만 되도록하면 755라는 숫자가 나온다. 이렇게 위에 hello의 접근권한을 변경해보자.


chmod 755 파일명 -> 이렇게 입력하면된다.



chmod 755 hello 명령어로 파일 권한이 변경된것이 보이는가?? 


이제 실행해보자. 



올바르게 실행 된 것을 볼 수 있다. 


이렇게 chmod 명령어를 이용하여 자신이 원하는 접근 권한을 줄 수 있다.

아마 처음 리눅스를 접하는 사람들은 sudo 명령어를 무분별하게 사용하여 접근권한 때문에 애먹을 일이 많이 있을 것이다. 

그리고 내가 만든 파일을 다른 사용자에게 접근권한을 제한할 때 사용하면 된다.



파일/디렉토리 접근권한 (r : read / w : write / x : execute)

현재 User

현재User Group 

Other User 

 r

 1

 7

 1

 1

 7



반응형