파일에는 소유권이 있습니다. 어느 그룹이 소유하고 있는지, 그리고 누가 소유하고 있는지. 이 둘을 바꾸는 명령어가 chown입니다.

 

 

 .c 파일들은 chogahui05가 소유하고 있고, chogahui05 그룹이 소유하고 있습니다. 권한은 -rw-rw-r--입니다. 그러면, 05 그룹이거나, 05인 경우에는, Read와 Write가 모두 가능하고, 그렇지 않으면 읽기만 가능하다는 이야기입니다.

 

 

 현재 user는 chogahui06입니다. groups를 쳐 보면, chogahui06만 나오는데요. 06은 05도 아니고, 05 그룹에 속해있지도 않기 때문에 others에 속합니다. 그러면, strcpy.c를 열면 어떻게 될까요?

 

 

 읽기 전용으로 열릴 거에요. 당연한 이야기입니다. Write 권한이 없기 때문입니다.

 


 먼저 소유자를 chogahui06으로 수정해 봅시다.

 

 

그러면, chown chogahui06 strcpy.c를 입력하면 됩니다. 이는, strcpy.c의 소유자를 chogahui06으로 바꾸겠다는 의미입니다. 그러고 나서, ls 명령어로 확인을 해 봅시다.

 

 

 그러면 strcpy.c에 chogahui06 chogahui05가 있음을 알 수 있어요. 소유자가 chogahui06이면 Read, Write가 가능합니다. 그룹이 chogahui05여도 Read와 Write가 가능합니다. 그게 아닌 유저라면 단지 읽기만 가능합니다. strcpy.c를 열어보겠습니다.

 

 

 읽기 전용이 사라졌습니다.

 

 

 chogahui05로 작업을 할 때도 마찬가지인데요. 이는 chogahui05가 chogahui05 그룹에 속했기 때문입니다.

 


 이제, strcpy.c의 소유 그룹을 chogahui06으로 바꿔보겠습니다. file_name의 소유 그룹을 g로 바꾸려면, chown :g file_name 이렇게 치시면 됩니다.

 

 

 그러면 어떻게 될까요? 소유 그룹도 바뀝니다.

 

 

 그러면 이 상태에서, 05 유저가 strcpy.c를 열면 어떻게 될까요? 사실 읽기는 가능합니다.

 

 

 그런데 수정은 불가능합니다. 유저 05는, 06이 아니기 때문입니다.

 

 

 그리고 06 그룹에 속하지도 않기 때문입니다.


 소유자와 소유그룹을 바꿀 수도 있어요. chown s:g file_name은 파일 file_name의 소유자를 s로, 소유 그룹을 g로 바꿉니다.

 

 

 위의 명령어는 strcpy.c의 소유자도 05로, 소유그룹도 05로 바꿉니다. ls -ail 명령어를 이용해서 출력을 해 봅시다.

 

 

 262627번의 strcpy.c는, 05가 가지고 있고, 가지고 있는 그룹은 05로 바뀌었음을 알 수 있어요.