다음은 ls -l 명령어를 통해 살펴본 index.html 파일의 정보이다.

 

 

허가권 (Permission)

 

파일 및 디렉토리의 권한은 소유자 권한 (UID), 그룹 권한 (GID), 그 외 사용자 권한 (OTHER) 순으로 기재되어있으며, UID > GID > OTHER 순으로 우선순위가 결정된다. 따라서, UID 와 GID 가 같은 경우에는 UID 권한으로 실행된다.

 

1) r 권한

read 의 약자로, 4 의 값을 가지며 읽기 권한을 의미한다.

 

- 파일에서의 r 권한 : 문서 열람 권한을 의미한다.   (cat , vi ,......)
- 디렉토리에서의 r 권한 : 디렉토리 열람 권한을 의미한다.    (ls....)

 

2) w 권한

write 의 약자로, 2 의 값을 가지며 쓰기 권한을 의미한다.

 

- 파일에서의 w 권한 : 문서 수정, 저장 및 쓰기 권한을 의미한다. ( vi......)
- 디렉토리에서의 w 권한 : file / dir 생성 삭제 이름변경 (touch ,mkdir ,rm ,mv ..... )

 

3) x 권한

excute 의 약자로, 1의 값을 가지며 접근 및 실행 권한을 의미한다.

 

- 파일에서의 x 권한 : 파일에 대한 실행권한 (일반사용자 sh명령, 스크립트, 명령어...)

- 디렉토리에서의 x 권한 : 디렉토리 접근 권한  (cd ..... )

 

[예제]

접근 권한 관련 명령어 (cd), 읽기 권한 관련 명령어 (ls), 쓰기 권한 관련 명령어 (touch)

 

1) 1번 예제

- cisco 사용자 : 읽기, 쓰기, 접근 권한 (ls, touch, cd)

- test 사용자 : 읽기, 접근 권한 (ls, cd)

- yejun 사용자 : 읽기, 접근 권한 (ls, cd)

 

2) 2번 예제

- cisco 사용자 : 읽기, 쓰기, 접근 권한 (ls, touch, cd)

- test 사용자 : 읽기, 쓰기, 접근 권한 (ls, touch, cd)

- yejun 사용자 : 읽기, 쓰기, 접근 권한  (ls, touch, cd)

 

3) 3번 예제

- cisco 사용자 : 읽기, 쓰기, 접근 권한 (ls, touch, cd)

- test 사용자 : 읽기, 쓰기 권한이 있으나 접근 권한이 부여되지 않았으므로, 관련 명령어 사용 불가 (ls, touch)

- yejun 사용자 : 읽기, 접근 권한 (ls, cd)

 

4) 4번 예제

- cisco 사용자 : 읽기, 접근 권한 (ls, cd)

- test 사용자 : 읽기, 쓰기 권한이 있으나 접근 권한이 부여되지 않았으므로, 관련 명령어 사용 불가 (ls, touch)

- yejun 사용자 : 읽기, 쓰기, 접근 권한 (ls, touch, cd)

 

5) 5번 예제

- cisco 사용자 : 읽기, 쓰기, 접근 권한 (ls, touch, cd)

- test 사용자 : 읽기, 접근 권한 (ls, cd)

- yejun 사용자 : 접근 권한 (cd)

 

5) 6번 예제

- cisco 사용자 : x

- test 사용자 : x

- yejun 사용자 : x

 

 

chmod  ( 허가권 변경 )

파일이나 디렉토리에 대한 허가권을 변경한다. -R 옵션을 사용하면 위 디렉토리 및 파일까지 재귀적으로 변경한다.

 

1) numeric ( 숫자 )

chmod [숫자] [파일 및 디렉토리] 형식으로 허가권을 변경한다.

 

/chtest 디렉토리의 하위에 1, 2, 3, 4 라는 이름의 파일 총 4개를 생성하였다. 현재 모든 파일들의 허가권은 -rw-r--r-- 로 644 값을 가지고 있음을 확인할 수 있다.

 

1번 파일의 허가권을 111 로 변경한다. 111 은 --x--x--x 와 동일하다.

 

2번 파일의 허가권을 222 로 변경한다. 222 는 -w--w--w- 와 동일하다.

 

3번 파일의 허가권을 456 으로 변경한다. 456 은 r--r-xrw- 와 동일하다.

 

4번 파일의 허가권을 753 으로 변경한다. 756 은 rwxr-x-wx 와 동일하다.

 

앞선 과정에서 111로 설정되었던 1번 파일의 허가권을 777 로 변경한다. 777 은 rwxrwxrwx 와 동일하다.

 

2) symbolic

 chmod [문자 + 기호] 형식으로 허가권을 변경한다. u 는 소유자 권한, g 는 그룹 권한, o 는 그 외 사용자 권한, a 는 전체 사용자 권한 을 의미한다. 그리고 부분적으로 권한을 부여할때는 +, 부분적으로 권한을 회수할 때는 -, 특정 권한을 부여할 때는 = 기호를 사용한다.

 

현재 /chtest 디렉토리 하위에 위치한 4개 파일들의 허가권은 다음과 같다.

 

rwxrwxrwx 권한을 가지던 1번 파일에서 u 사용자 권한 rwx 회수, g 그룹 권한 rwx 회수, o 그 외 사용자 권한 rwx 를 회수하여 모든 권한이 --------- 로 해제된 것을 확인할 수 있다.

 

모든 권한이 회수되었던 1번 파일에 u 사용자 권한 rx 부여, g 그룹 권한 w 부여, o 그 외 사용자 권한 x 를 부여하였다. 여기까지 살펴보면 -r-x-w---x 가 되어야 하지만, a 모든 사용자에 대해 r 권한을 부여했으므로 -r-xrw-r-x 권한을 가지는 것을 확인할 수 있다.

 

-r-xrw-r-x 권한을 가지던 1번 파일에 대해 u 사용자 권한 r 회수 + w 부여, a 모든 사용자 권한 x 를 부여하였으므로 --wxrwxr-x 권한으로 변경된 것을 확인할 수 있다.

 

--wxrwxr-x 권한을 가지던 1번 파일에 대해 u 사용자 권한 wx 회수, g 그룹 권한 wx 회수 및 r 부여, a 모든 사용자 x 를 회수하였으므로 ---r--r-- 권한으로 변경된 것을 확인할 수 있다.

 

---r--r-- 권한을 가지던 1번 파일에 대해 u 사용자 권한은 --x , g 그룹 권한은 -w- 을 부여하였기에 ---x-w-r-- 권한으로 변경되어야 한다. 하지만, a 모든 사용자 권한을 r-- 설정하도록 하였기 때문에 -r--r--r-- 권한으로 변경된 것을 확인할 수 있다.


chown, chgrp (소유권 변경)

1) chown 명령어

파일 및 디렉토리의 소유자를 변경한다. -R 옵션을 사용하면 위 디렉토리 및 파일까지 재귀적으로 변경한다.

 

특수 기호 사용 X : 파일 및 디렉토리의 소유자 (UID) 만을 변경한다.

. (dot) 기호 : 기호 앞에 대상 파일 및 디렉토리를 지정하면 소유자 + 그룹 변경, 뒤에 지정하면 그룹만 변경한다.

: (colon) 기호 : . (dot) 기호의 사용법과 동일하다.

 

실습 전, 사전 환경 설정을 위해 /chown 디렉토리를 만들었다.

 

/chown 디렉토리의 하위에 1, 2, 3, 4, 5, 6, 7, 8 이라는 이름의 총 8 개 파일을 생성한다. 현재 모든 파일의 소유권은 다음과 같다. UID -> root, GID -> root

 

*참고*

다수의 규칙적인 이름을 가진 파일을 생성할 때는 스크립트를 사용하는 편이 좋다.

 

for i in {1..8}; do touch $i done

 

 

기호 사용없이 파일 1번의 소유권을 korea 로 변경하고자 하였으므로, 해당 파일의 소유자가 korea2 로 변경된 것을 확인할 수 있다.

 

기호 앞에 소유권을 지정하였으므로, 2번 파일의 소유자와 그룹 소유권이 모두 변경된 것을 확인할 수 있다.

 

 

기호 뒤에 소유권을 지정하였으므로, 3번 파일의 그룹 소유권만 변경된 것을 확인할 수 있다.

 

기호 앞뒤로 소유권을 모두 지정하면, 4번 파일이 순차적으로 소유자(UID):소유 그룹(GID) 으로 변경된 것을 확인할 수 있다,

 

기호 사용없이 파일 5번의 소유권을 변경하고자 하였으므로, 해당 파일의 소유자가 변경된 것을 확인할 수 있다.

 

.(dot) 기호 사용법은 : (colon) 사용법과 동일하다. 따라서 기호 앞에 소유권을 지정하게 되면, 소유자 및 그룹 소유권까지 모두 변경되는 것을 확인할 수 있다.

 

기호 뒤에 소유권을 지정하였으므로, 7번 파일의 그룹 소유권만 변경된 것을 확인할 수 있다.

 

기호 앞뒤로 소유권을 모두 지정하면, 8번 파일이 순차적으로 소유자(UID):소유 그룹(GID) 으로 변경된 것을 확인할 수 있다,

 

2) chgrp 명령어

파일 및 디렉토리의 그룹 소유권만을 변경한다. -R 옵션을 사용하면 위 디렉토리 및 파일까지 재귀적으로 변경한다.

 

chown 명령어와 달리 그룹 소유권만 변경 가능하므로, 1번 파일의 소유 그룹이 변경된 것을 확인할 수 있다.

 

허가권, 소유권 변경을 통한 접근 예제

먼저, 테스트 환경을 구축하기 위해 /ctest 디렉토리를 생성한 후 이동한다.

 

/ctest 디렉토리의 하위에 스크립트를 활용하여 test1 ~ test7 까지 총 7개의 디렉토리를 생성한다.

 

그 후, /ctest/test1 ~ /ctest/test7 디렉토리의 하위에 test1 ~ test7 까지 총 7개의 파일을 생성한다. 즉, /ctest/test1/test1 ~ /ctest/test7/test7 까지 생성된다.

 

실습 환경이 모두 조성되면, 위와 같이 디렉토리의 소유권과 허가권을 변경한다.

 

/ctest/test1 ~ /ctest/test7 디렉토리의 허가권과 소유권은 다음과 같다. (sevas 계정에서 실습)

 

 

 

 

공부하면서 정리한 내용을 글로 작성하였습니다.

혹시나 잘못된 내용이 있다면 댓글로 알려주시면 감사하겠습니다. :)

COMMENT