리눅스(Linux) 시스템에서 모든 파일은 소유자(owner)와 그룹 소유자(group owner)와 연결되어 있습니다. 적절한 권한이 없다면 해당 파일이나 디렉터리에 접근하거나 수정할 수 없습니다. 리눅스에는 이러한 소유권을 관리할 수 있는 chown(change owner) 명령어가 기본으로 제공되며, 이를 통해 파일과 디렉터리의 소유자 및 그룹 소유자를 자유롭게 변경할 수 있습니다. 이번 글에서는 chown 명령어를 활용해 리눅스에서 파일과 폴더를 더 효율적으로 관리하는 방법을 자세히 알아보겠습니다.
리눅스에서 chown 명령어 사용법
chown 명령어는 다음과 같은 형식으로 사용합니다:
sudo chown [새_소유자]:[새_그룹_소유자] 파일명
파일의 현재 권한 확인하기
파일의 소유자(또는 그룹 소유자)를 변경하기 전에 먼저 ls -l 명령어로 현재 파일의 권한을 확인하는 것이 좋습니다. 이 명령어를 사용하면 작업하려는 파일의 소유자와 그룹 소유자를 한눈에 파악할 수 있습니다.
파일/디렉터리의 소유자만 변경하기
리눅스에서는 파일의 소유자만 별도로 변경하는 것도 가능합니다. 명령어 문법에서 콜론(:)을 기준으로 두 부분으로 나뉘는데, 첫 번째 부분은 새 소유자를, 두 번째 부분은 새 그룹 소유자를 의미합니다. 또한 파일의 소유자를 변경하려면 슈퍼유저(superuser) 권한이 필요하므로 모든 chown 명령어 앞에 sudo를 붙여야 합니다.
sudo chown maketech: docker-machine
명령 실행 후 ls -l로 결과를 확인해 보겠습니다:
$ ls -l total 1964 -rw-r--r-- 1 userkubetrain user_kubetrain 2148 Mar 18 2019 certnew.cer -rw-r--r-- 1 maketech user_kubetrain 48 Jan 29 10:13 docker-machine
"maketech"가 이제 해당 파일의 새 소유자가 된 것을 확인할 수 있습니다. 기본적으로 chown 명령어는 단일 파일이나 디렉터리에만 적용됩니다. 폴더 내의 모든 파일과 하위 디렉터리에 변경 사항을 일괄 적용하려면 -R(재귀적) 옵션을 사용해야 합니다:
sudo chown -R maketech virtual-machine
사용자 이름 대신 UID를 사용하여 파일 소유자를 변경할 수도 있습니다:
sudo chown -R 1002 virtual-machine
파일 또는 디렉터리의 그룹 소유자만 변경하기
다른 사용자에게 파일 접근 권한을 부여하고 싶다면, 해당 사용자들을 하나의 그룹으로 묶은 뒤 파일의 그룹 소유권을 변경하면 됩니다.
sudo chown :maketechpublic -R docker-machine
실행 결과를 확인해 보겠습니다.
위 예시처럼 새 그룹 소유자 이름 앞에 콜론(:)을 붙이는 이유는, 이것이 새 사용자 이름이 아니라 그룹 이름임을 명확히 나타내기 위해서입니다.
파일의 사용자와 그룹 동시에 변경하기
파일이나 디렉터리의 소유자와 그룹 소유자를 한 번에 변경하려면 두 값을 모두 지정하면 됩니다:
sudo chown maketech:maketechpublic -R docker-machine
이렇게 하면 디렉터리의 새 소유자를 지정하는 동시에, 해당 디렉터리를 함께 사용할 수 있는 그룹(즉, 그룹에 속한 사용자들)도 함께 지정하게 됩니다.
리눅스의 chown 명령어는 파일의 사용자 및 그룹 소유권을 변경하는 역할을 담당합니다. 실무에서는 chmod 명령어와 함께 사용하여 리눅스 환경에서 파일 권한을 더욱 체계적으로 관리하는 경우가 많으니, 두 명령어를 함께 익혀두면 큰 도움이 됩니다.