Linux 에서 chown 명령어로 디렉터리 소유권 변경하기

CompTIABeginner
지금 연습하기

소개

이 실습에서는 Linux 에서 chown 명령어를 활용하여 디렉터리의 소유권을 변경하는 실무적인 방법을 학습합니다. 파일과 디렉터리의 소유권을 능숙하게 다루는 것은 Linux 시스템 관리의 기초이며, 권한 관리와 공유 자원에 대한 보안 액세스를 제어하는 데 매우 중요합니다. 이번 실습을 통해 협업 프로젝트를 조직할 때 자주 발생하는 작업인 디렉터리의 그룹 소유권 변경 과정을 직접 경험해 보게 됩니다.

먼저 research라는 이름의 새로운 그룹을 생성하고 현재 사용자를 해당 그룹에 추가하여 필요한 환경을 구축하는 것으로 시작합니다. 환경 설정이 완료되면 디렉터리를 생성하고 초기 소유권 상태를 확인합니다. 실습의 핵심 단계에서는 chown 명령어를 사용하여 디렉터리의 소유 그룹을 research로 재할당합니다. 마지막으로 ls -l 명령어를 사용하여 소유권이 성공적으로 업데이트되었는지 확인하며 실습을 마무리합니다.

환경 준비 및 그룹 멤버십 확인

이 단계에서는 이후 실습에 필요한 사용자 그룹을 준비합니다. Linux 에서 파일 소유권은 사용자 (User) 와 그룹 (Group) 으로 정의되며, 이를 통해 유연한 권한 관리가 가능합니다. research라는 새 그룹을 생성하고 현재 사용자인 labex를 이 그룹에 추가하겠습니다. 이렇게 하면 나중에 파일과 디렉터리의 소유권을 이 특정 그룹으로 지정할 수 있습니다.

먼저 groupadd 명령어를 사용하여 research 그룹을 생성합니다. 그룹 생성은 시스템 설정 파일을 수정하는 작업이므로 관리자 권한으로 명령을 실행하기 위해 sudo를 사용해야 합니다.

터미널에서 다음 명령어를 실행하세요:

sudo groupadd research

이 명령어는 성공적으로 실행될 경우 아무런 출력도 내보내지 않습니다. 그룹이 제대로 생성되었는지 확인하기 위해 시스템의 모든 그룹 정보가 담긴 /etc/group 파일을 검색해 보겠습니다. grep 명령어를 사용하여 방금 만든 그룹에 해당하는 줄을 찾습니다.

grep 'research' /etc/group

그룹 ID(숫자) 는 다를 수 있지만, 다음과 유사한 출력이 나타나야 합니다:

research:x:5003:

이제 그룹이 존재하므로 labex 사용자를 해당 그룹에 추가할 차례입니다. "user modify"의 약자인 usermod 명령어를 사용합니다. 이때 -aG 옵션이 중요한데, -a는 추가 (append) 를 의미하고 -G는 보조 그룹을 지정합니다. -a 옵션 없이 사용하면 사용자가 기존에 속해 있던 다른 그룹에서 제거될 수 있으니 주의해야 합니다.

labexresearch 그룹에 추가하려면 다음 명령어를 실행하세요:

sudo usermod -aG research labex

마찬가지로 성공 시 별도의 출력이 없습니다. /etc/group 파일을 다시 한번 확인하여 변경 사항을 검증해 보겠습니다.

grep 'research' /etc/group

출력 결과의 마지막 부분에 labex가 표시된다면 해당 사용자가 그룹의 멤버로 정상적으로 등록된 것입니다.

research:x:5003:labex

research 그룹이 생성되고 labex 사용자가 할당됨으로써, 파일 및 디렉터리 소유권 관리를 위한 환경 설정이 완료되었습니다.

디렉터리 생성 및 초기 소유권 조사

이 단계에서는 프로젝트 폴더 내에 새 디렉터리를 생성하고 기본 소유권 설정을 확인합니다. Linux 에서 새 파일이나 디렉터리가 생성되면 시스템은 자동으로 소유권을 할당합니다. 일반적으로 소유자는 파일을 생성한 사용자가 되며, 소유 그룹은 해당 사용자의 기본 그룹이 됩니다.

현재 작업 디렉터리는 /home/labex/project입니다. 여기에 "make directory"의 약자인 mkdir 명령어를 사용하여 RandD라는 이름의 새 디렉터리를 생성하겠습니다.

다음 명령어를 실행하여 디렉터리를 생성하세요:

mkdir RandD

RandD 디렉터리가 생성되었으므로, ls -l 명령어를 사용하여 소유권을 포함한 속성을 살펴보겠습니다. -l 옵션은 파일과 디렉터리에 대한 상세 정보를 제공하는 "긴 목록 (long listing)" 형식을 사용하도록 지정합니다.

터미널에서 다음 명령어를 실행하세요:

ls -l

현재 위치에 있는 파일과 디렉터리 목록이 나타납니다. RandD에 해당하는 줄을 찾으세요. 출력 결과는 다음과 유사할 것입니다:

drwxrwxr-x 2 labex labex 6 Jun 26 10:28 RandD

이 줄에서 소유권 부분을 분석해 보겠습니다. 세 번째 열은 소유 사용자 (labex) 를 나타내고, 네 번째 열은 소유 그룹 (labex) 을 나타냅니다. 이를 통해 기본적으로 새 디렉터리는 생성한 사용자와 그 사용자의 기본 그룹이 소유하게 됨을 확인할 수 있습니다.

다음 단계에서는 이러한 기본 소유권 설정을 변경하는 방법을 배웁니다.

chown 명령어를 사용한 디렉터리 소유권 변경

이 단계에서는 chown 명령어를 사용하여 RandD 디렉터리의 소유권을 변경합니다. 이는 공유 프로젝트 디렉터리를 관리할 때 시스템 관리자가 자주 수행하는 작업입니다. 우리의 목표는 소유 사용자는 labex로 유지하되, 소유 그룹을 첫 번째 단계에서 생성한 research 그룹으로 바꾸는 것입니다. 이렇게 하면 그룹에 설정된 권한에 따라 research 그룹의 모든 멤버가 이 디렉터리에서 협업할 수 있게 됩니다.

소유권을 변경하는 명령어는 "change owner"의 약자인 chown입니다. 일반적인 구문은 chown [사용자]:[그룹] [파일/디렉터리]입니다.

RandD 디렉터리의 소유자를 labex로, 그룹을 research로 변경하려면 다음 명령어를 실행합니다. 본인 소유의 디렉터리라 하더라도 그룹 소유권을 수정하는 작업은 종종 높은 권한이 필요하므로 sudo를 사용합니다.

현재 ~/project 디렉터리 상태에서 다음 명령어를 실행하세요:

sudo chown labex:research RandD

명령어가 성공하면 아무런 출력 없이 변경 사항이 즉시 적용됩니다.

이제 RandD 디렉터리의 소유권 변경을 완료했습니다. 마지막 단계에서 이 변경 사항을 시각적으로 확인해 보겠습니다.

ls -l 명령어로 새로운 디렉터리 소유권 확인

이 단계에서는 이전 단계에서 수행한 소유권 변경이 성공적으로 이루어졌는지 최종 확인합니다. 실행한 명령이 의도한 효과를 냈는지 항상 검증하는 것은 시스템 관리의 핵심 습관입니다. 이전과 동일하게 ls -l 명령어를 사용하여 디렉터리 속성을 조사하겠습니다.

터미널 위치는 여전히 ~/project여야 합니다. RandD 디렉터리의 업데이트된 소유권 상세 정보를 보려면 다시 한번 ls -l을 실행하세요.

ls -l

RandD 디렉터리에 대한 출력 줄을 확인합니다. 이제 새로운 소유 그룹이 반영되어 있어야 합니다. 출력 결과는 다음과 유사할 것입니다:

drwxrwxr-x 2 labex research 6 Jun 26 10:28 RandD

2 단계에서 보았던 출력과 비교해 보세요. 세 번째 열인 소유 사용자는 여전히 labex이지만, 네 번째 열인 소유 그룹이 labex에서 research로 변경된 것을 볼 수 있습니다. 이는 chown 명령어가 정확하게 작동했음을 증명합니다.

성공적으로 디렉터리를 생성하고, 협업을 위해 그룹 소유권을 변경했으며, 해당 변경 사항을 확인하는 과정까지 모두 마쳤습니다.

요약

이 실습에서는 Linux 환경에서 디렉터리 소유권을 관리하는 필수 단계를 학습했습니다. 먼저 sudo groupadd 명령어로 research라는 새 그룹을 생성하여 필요한 사용자 및 그룹 환경을 준비했습니다. 이어서 sudo usermod -aG를 사용하여 현재 사용자인 labex를 새 그룹에 추가하고, /etc/group 파일을 확인하여 변경 사항을 검증했습니다.

환경 설정 후에는 새 디렉터리를 생성하고 ls -l 명령어로 기본 소유권을 조사했습니다. 실습의 핵심 기술로 chown 명령어를 사용하여 디렉터리의 그룹 소유권을 새로 만든 research 그룹으로 수정하는 방법을 익혔습니다. 마지막으로 ls -l을 다시 실행하여 디렉터리의 소유 그룹이 성공적으로 업데이트된 것을 확인하며 실습을 마무리했습니다.