현재노트
리눅스(linux), 유닉스(unix)의 퍼미션 한번에 이해하자!(접근제어,접근권한) 본문
서버관리에 앞서 관리하고자하는 서버의 폴더, 파일 등에 권한을 부여하여 생성, 이동, 삭제, 수정 등이 가능합니다.
1. 해당파일에 대한 퍼미션.
2. 해당파일에 link 되어 있는 파일의 개수.
3. 해당파일의 사용자(user) - 대부분 파일의 생성자
4. 해당파일의 그룹(Group) - 대부분 파일을 생성한 계정이 속해 있는 그룹
첫번째 항목부터 알아보겠습니다.
drwxr-xr-x 21 root root 4096 7월 12 11:30 var
drwxr-xr-x 부분은 다시 4부분으로 나뉘게 됩니다.
d , rwx , r-x , r-x 이렇게!
처음에 d 는 directory 라는 의미를 뜻하고, 파일의 종류에 대한 속성을 나타냅니다.
속성에 해당하는 테이블은 아래와 같습니다.
d : Directory 파일
- : Regular 파일, 일반 정규 파일
l : Symbolic Link, 링크되어 있는 파일
c : Character File, 버퍼에 저장되지 않은 특수 파일, 예) 터미널
b : Block File, 버퍼링된 특수 파일. 예) 디스크 드라이브
s : Socket File, 소켓 기능을 하는 파일
p : Pipe File, 파이프 기능을 수행하는 파일
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 라고 인식됩니다.
예를들면
# chmod 755 files
라는 명령어만으로 files 라는 파일에 대해 rwxr-xr-x 권한을 줄 수 있습니다.
감사합니다.