IT/Linux

Permission :: 리눅스/유닉스의 퍼미션(접근제어,접근권한)

DoubleSH 2008. 7. 14. 00:03
반응형


흠...오늘은 접근제어에 대해서...

이름하여..permission에 대해 공부해볼까아..??ㅎㅎㅎ

리눅스를 가동시켰다면..  일단 상큼하게 쳐보자..

# ls -l



ls -al



잉.. " ls -l 치라면서 왜 ll 을 치는데? "
나같은 초보를 위해 잠깐 설명하자면... alias 라는게 있는데 자세한건 나중에(언제?) 말하구
단축명령어라는거... alias ll = 'ls -l'  이라는 명령어에 의해 등록되어있지요..(대부분 기본설정되있음)
따로 등록하지 않아도 사용가능할거다.....


다시 본론으로 와서..

ls -l 의 결과에서 볼건 이런게 있다..

1. 해당파일에 대한 퍼미션.
2. 해당파일에 link 되어 있는 파일의 개수.
3. 해당파일의 사용자(user) - 대부분 파일의 생성자
4. 해당파일의 그룹(Group) - 대부분 파일을 생성한 계정이 속해 있는 그룹



이 4가지 중에서도 가장 눈여겨볼건.. 첫번째 항목이지?

drwxr-xr-x  21  root  root  4096  7월  12  11:30  var


drwxr-xr-x 부분은 다시 4부분으로 나뉘게 된다~

d  ,  rwx  ,  r-x  ,  r-x       이렇게!

처음에 d 는 directory 라는걸 뜻하는 거구.. 파일의 종류에 대한 속성을 나타낸다.
다음은 속성들에 대한 테이블이다..



rwx, r-x, r-x 는 (다들 아실테지만) 비슷하게 똑같이 생긴거 같징?
[파일의 User], [파일의 Group], [관계없는자들(Other)]
에 대한 권한(permission)을 표시하는건데..
리눅스에서는 어떤파일이든 user, group, other 에 대해 각각 권한을 주게 된다.
즉 처음의 'rwx'는 파일의 소유자(user)에 대한 접근 권한
다음의 'r-x'는 소유 group에 대한 접근 권한
마지막의 'rwx'는 파일과 관련이 없는 자들(others)에 대한 접근권한이다.

이게 무슨뜻이냐면.. 아주아주 간단하게 말하면
내가 지금 user1 이란 사용자로 로그인 했더라도
이 사용자가 'root'라는 group의 일원이면(=gid가 0이면)
두번째의 'r-x'의 권한에 영향을 받는다는 거다. 헷갈린다면.. 어쩔 수 없다.
사용자가 'root'도 아니고 그룹도 'root'가 아니면 other에 대한 권한을 받아 'r-x' 권한이 적용된다.

자.. 그럼 대체 rwx 는 뭐냐고?

Read, Write, eXecute 를 대표하는 한글자 씩이다..
읽거나, 쓰거나, 실행할 수 있다는 거다.
'rwx'는 당연히 셋다 되는거고
'r-x'는 읽거나 실행할 수는 있지만 쓰기, 즉 수정은 불가능하다는 말이다.
이해가 되는가? 못하면..뭐 다시 읽어봐야지;;

여기서 어딘가 근질근질 거리는 사람이 있을것 같은데...
" '777' 이니 '755'니 '644' 로 퍼미션을 주세요" 라는 말을 들어본 사람이 있을 것이다.

그렇다.. 이 r, w, x 세가지 권한은 각자 고유한 숫자값을 가지고 있다.

  •  r : 4 (2진수로 100)
  • w : 2 (2진수로 10)
  • x : 1 (2진수로 1)

rwx 를 더하면 r(4) + w(2) + x(1) = 7(2진수로 111) 이 된다.
777 이란건 user, group, other의 퍼미션이 777. 즉 rwxrwxrwx 라는 말이다.

var 라는 디렉토리는 숫자로 표현하면 755 의 퍼미션값이 되겠다.
퍼미션을 만지작 만지작 하려면 이 숫자값에 더 익숙해지게 될지도 모른다.
예를들면

# chmod 755 files



라는 명령어만으로 files 라는 파일에 대해 rwxr-xr-x 권한을 줄 수 있다
설령 원래 '---------'(000) 값을 가지고 있었다고 해도 말이다.
매력있지 않는가?....아니면 말구;;




반응형