Home » OS » 리눅스 » 리눅스 chown 명령어로 파일 소유자와 그룹을 바꿔 봅시다.

리눅스 chown 명령어로 파일 소유자와 그룹을 바꿔 봅시다.

리눅스에서는 권한을 설정하는 것이 상당히 중요해요. chmod로 유저, 소유 그룹, 다른 사람의 권한을 설정할 수 있어요. 리눅스 chown 명령어로 파일의 소유자, 그룹을 바꿀 수 있어요. 이 글 역시 -R과 같은 위험한 옵션은 다루지 않겠습니다. chmod는 이 에서 설명하였습니다. 해당 글을 보시고 오시는 것도 좋습니다.

  • 파일 mode와 chmod 명령어를 알아봅시다. 링크

[그림 1] chown 명령어

chown은 파일의 소유자와 group을 바꿉니다. 옵션 없는 기본형은 아래와 같습니다. 그리고 저는 이 포맷으로 많이 쓰는 편입니다.

chown USER:GROUP file_name

파일 file_name의 소유자를 USER로, 소유 그룹을 GROUP으로 바꿉니다.

어렵지 않지요? 예제를 보겠습니다.


[그림 2] 파일 adm.txt의 소유자와 소유 그룹

adm.txt의 정보를 보기 위해, ls와 grep 명령어를 사용하였습니다. 보면, -rw-r–r– 옆에 1 root root라고 표시되어 있는 것을 볼 수 있어요. 이것은 소유자가 root이고, 소유 그룹이 root임을 의미해요. root라면 r, w 권한을 가집니다. root가 아니지만, root에 속하면 r 권한을 가져요. 그것도 아니라면 r 권한을 가져요.

그림으로 그리면 아래와 같습니다.

이 그림을 잘 기억해 두세요. chown 명령어로 이 순서도가 어떻게 바뀌는지 봅시다.


[그림 3] adm.txt의 소유 그룹을 cho로 변경한다.

chown root:cho adm.txt 명령어는 무엇을 의미할까요? 소유자를 root로, 소유 그룹을 cho로 변경하라는 의미입니다. 그러므로, 파일의 권한을 가져오는 순서도가 아래와 같이 바뀝니다.

정말 그런지 ls와 grep 명령어로 adm.txt의 정보를 확인해 보겠습니다.

root가 아니지만, group cho에 속하면 r– 권한을, cho에도 속하지 않는다면 r– 권한을 가지겠지요.

[그림 4] cho user로 adm.txt의 내용을 볼 수 있다.

cho 유저로 adm.txt의 내용을 보기 위해, cat adm.txt를 입력하였습니다. 그랬더니 허가가 납니다. 왜? r 권한이 있기 때문입니다.

[그림 5] adm.txt에 쓰기 권한이 없다.

하지만, echo 12345 > adm.txt를 입력하니, 허가 거부라고 뜨면서 거부가 됩니다. 이는, cho가 root가 아니라서 쓰기 권한이 없기 때문입니다.


이제 아래 명령어를 입력해 봅시다.

[그림 6] adm.txt의 소유자도 cho로 바꾼다.

chown cho:cho adm.txt는 adm.txt의 소유자를 cho로, 소유 그룹도 cho로 바꾸는 것입니다. 이러면 파일의 권한을 가져오는 순서도가 아래와 같이 바뀝니다.

저는 cho user이므로, r 권한과 w 권한 둘 다 가지고 있습니다.

[그림 7] adm.txt에 쓸 수 있는 cho 유저

따라서, cho 유저로 echo 12345 > adm.txt를 수행할 수 있습니다. 정리하면

  • chown user:group file 명령으로
    • file의 소유자를 user로, 소유 그룹을 group으로 바꿀 수 있다.

그런데 파일의 소유자만 바꾸거나, 소유 그룹만 바꿔야 할 수가 있어요. 어떻게 해야 할까요?

[그림 8] 파일의 소유자만 바꾼다.

먼저, chown 유저명 파일은 파일의 소유자를 유저명으로 바꿉니다. 예를 들어, chown root adm.txt는 파일 adm.txt의 소유자를 root로 바꿉니다.

[그림 9] 파일의 소유 그룹만 바꾸는 경우

반대로, 파일의 소유 그룹만 바꾸려는 경우 chown :그룹명 파일 이렇게 입력해 주시면 됩니다. 그러면, 파일의 소유 그룹이 그룹명으로 바뀌게 됩니다.

Leave a Comment

17 − 6 =