11. 권한_소유권(ownership)
(1) 소유권
노란색 부분이 소유권!

소유권이란 말 그대로 소유자(사용자)가 가진 권한으로 허가권에서 owner부분의 권한을 가진 대상을 뜻한다.
*형식
UID | GID |
root | root |
-> ls -l 명령어를 통해 볼 수 있는 노란색 부분에서 앞 부분을 UID, 뒷 부분을 GID라고 한다.
-> UID는 user id로 사용자, 즉 현재 로그인 되어 있는 계정의 id 이다.
-> GID는 group id로 사용자가 속해 있는 그룹이다.
=> 소유권을 통해 허가권에 대한 소유자를 알 수 있다.
(2) 소유권 변경
허가권에 대한 소유자 변경
chown [UID]:[GID] [file/directory]
1. 단순 변경
ex) chown user1:user1 ./a
ex) chown root:user1 ./a
2. UID, GID를 따로 지정하지 않으면 UID만 변경된다.
ex) chown user1 ./a //UID=user1, GID 변경x
3. : 대신에 . 을 사용해도 된다.
ex) chown user1.user1 ./a //chown user1:user1 ./a 과 동일
-> . 을 앞에 사용하면 GID만 변경된다.
ex) chown .user1 ./a //UID 변경x, GID=user1
-> . 을 뒤에 사용하면 UID, GID 모두 변경된다.
ex) chown user1. ./a //UID=user1, GID=user1
(3) 권한 실습
표에 나와있는 허가권과 소유권을 동시에 비교하면서 다음 다섯가지의 작업이 가능한지 불가능한지를 체크한다.
/export/home/korea/html 과 /var/www/html/ 의 허가권, 소유권을 변경해보며 패턴을 찾아낸다.
*사전 작업
리눅스 접속은 root계정으로, ftp 접속은 korea계정으로 한다.
user1의 홈 디렉토리를 /export/home/korea로 설정한다.
윈도우에 index.html이라는 테스트 파일을 하나 생성한다.
/export/home/korea 안에 html 디렉토리를 생성한다.
/export/home/korea/html 과 /var/www/html/ 의 허가권, 소유권을 항상 동일하게 설정하고 진행한다.
*확인 사항 //번호 순서대로 확인할 것
1. ftp 접속이 되는가?
2. html 디렉토리가 보이는가?
3. html 디렉토리로 이동이 되는가?
4. data upload 가 되는가?
5. site 출력이 되는가?
*방법
1. cmd -> ftp ip주소 입력
2. cmd -> ls -l 명령어를 통해 html이 보이는지 확인
3. cmd -> cd ./html/ 명령 이후 pwd를 통해 html 디렉리로 이동되는지 확인
4. cmd -> put index.html (windows -> linux로 파일 전송)
5. Explorer 주소창에 ip 주소 입력한 후 index.html의 내용이 출력되는지 확인
//755 korea:root의 경우 실습 예시
허가권 / 소유권 | root : root | root : korea | korea : root | korea : korea |
755 (rwxr-xr-x) | O O O X X | O O O X X | O O O O O | O O O O O |
570 (r-xrwx---) | O O X X X | O O O O X | O O O X X | O O O X X |
375 (-wxrwxr-x) | O O O X X | O O O O O | O O O O O | O O O O O |
455 (r--r-xr-x) | O O O X X | O O O X X | O O X X X | O O X X X |
001 (--------x) | O O O X X | O O X X X | O O X X X | O O X X X |
010 (-----x---) | O O X X X | O O O X X | O O X X X | O O X X X |
273 (-w-rwx-wx) | O O O X X | O O O O O | O O X X X | O O X X X |
135 (--x-wxr-x) | O O O X X | O O O O O | O O O X X | O O O X X |
705 (rwx---r-x) | O O O X X | O O X X X | O O O O O | O O O O O |
316 (-wx--xrw-) | O O X X X | O O O X X | O O O O X | O O O O X |
770 (rwxrwx---) | O O X X X | O O O O X | O O O O X | O O O O X |
644 (rw-r--r--) | O O X X X | O O X X X | O O X X X | O O X X X |
027 (----w-rwx) | O O O O O | O O X X X | O O X X X | O O X X X |
500 (r-x------) | O O X X X | O O X X X | O O O X X | O O O X X |
507 (r-x---rwx) | O O O O O | O O X X X | O O O X X | O O O X X |
*패턴 풀이
우선 ftp 접속자인 korea의 위치를 파악해야 한다.
허가권 | korea의 위치 |
root:root | other |
root:korea | group |
korea:root | user(owner) |
korea:korea | user(owner) |
=> UID와 GID가 동일하면 UID 권한으로 실행된다. 즉, korea:root 와 korea:korea의 권한이 같다.
1. ftp 접속이 되는가?
-> korea 사용자의 홈 디렉토리(/export/home/korea)의 x권한
2. html 디렉토리가 보이는가?
-> korea 사용자의 홈 디렉토리의 r권한
3. html 디렉토리로 이동이 되는가?
-> html 디렉토리에 대한 ftp 접속자(korea)의 x권한
4. data upload 가 되는가?
-> html 디렉토리에 대한 ftp 접속자(korea)의 w권한
5. site 출력이 되는가?
-> site 접근자(other)의 x권한
*정리
-> 일반적으로 korea 사용자의 홈 디렉토리는 755 korea:korea 이므로 UID인 korea의 권한, 즉 owner의 권한(7)을 보면 된다. 이에 따라 1번과 2번은 모두 가능함을 알 수 있다.
-> html의 소유권이 바뀜에 따라 ftp 접속자인 korea의 위치가 바뀌므로 3~5번의 성공 여부는 각 허가권에 따른다.
-> 1~5번의 순서에 따라 진행된다. 3번이 안 되면 그 이후의 순서인 4, 5번은 당연히 불가능하다.