SW/리눅스

Linux : Chown (파일 소유권) 사용 방법, 예제, 명령어

얇은생각 2021. 3. 30. 07:30
반응형

chown 명령을 사용하면 지정된 파일, 디렉터리 또는 심볼릭 링크의 사용자 및/또는 그룹 소유권을 변경할 수 있습니다. 

Linux에서는 모든 파일이 소유자 및 그룹과 연결되고 파일 소유자, 그룹 구성원 등에 대한 권한 액세스 권한이 할당됩니다.

실제 예를 통해 chown 명령어 사용 방법을 보여드리겠습니다.

 

 

Linux : Chown (파일 소유권) 사용 방법, 예제, 명령어 

 

 

chown 사용 방법

chown 명령 사용 방법에 대해 살펴보기 전에 먼저 기본 구문을 검토하겠습니다.

chown 명령 식은 다음 형식을 사용합니다.

chown [OPTIONS] USER[:GROUP] FILE(s)

 

 

 

USER는 새 소유자의 사용자 이름 또는 UID(사용자 ID)입니다. GROUP은 새 그룹 또는 그룹 ID(GID)의 이름입니다. FILE은 하나 이상의 파일, 디렉터리 또는 링크의 이름입니다. 숫자 ID 앞에는 + 기호가 붙어야 합니다.

사용자 - 사용자만 지정한 경우 지정된 사용자가 지정된 파일의 소유자가 되고 그룹 소유권은 변경되지 않습니다.

USER - 사용자 이름 뒤에 콜론(colon :)이 있고 그룹 이름이 지정되지 않은 경우, 사용자는 파일의 소유자가 되고 파일 그룹 소유권은 사용자의 로그인 그룹으로 변경됩니다.

USER:GROUP - 사용자 및 그룹이 모두 지정된 경우(공백이 없는 경우) 파일의 사용자 소유권이 지정된 사용자로 변경되고 그룹 소유권이 지정된 그룹으로 변경됩니다.

:GROUP - 사용자가 생략되고 그룹에 콜론:이 접두사가 붙은 경우 파일의 그룹 소유권만 지정된 그룹으로 변경됩니다.

: - 콜론 :만 주어졌을 경우 사용자 및 그룹을 지정하지 않고는 변경이 되지 않습니다.

 

기본적으로 성공 시, chown은 아무런 출력도 생성하지 않고 0을 반환합니다. 

ls -l 명령을 사용하여 파일의 소유자 또는 파일이 속하는 그룹을 확인할 수 있습니다.

ls -l filename.txt

# -rw-r--r-- 12 linuxize users 12.0K Apr  8 20:51 filename.txt
# |[-][-][-]-   [------] [---]
#                 |       |
#                 |       +-----------> Group
#                 +-------------------> Owner

 

 

일반 사용자는 파일을 소유하는 경우에만 파일 그룹을 변경할 수 있으며 자신이 구성원인 그룹에만 변경할 수 있습니다. 관리 사용자는 모든 파일의 그룹 소유권을 변경할 수 있습니다.

 

 

 

파일 소유자를 변경하는 방법

파일 소유자를 변경하려면 chown 명령 다음에 새 소유자의 사용자 이름과 대상 파일을 인수로 사용하십시오.

chown USER FILE

 

 

예를 들어 다음 명령은 file1 파일 소유권을 tistory라는 새 소유자로 변경합니다.

chown tistory file1

 

 

여러 파일 또는 디렉터리의 소유권을 변경하려면 공백으로 구분된 목록으로 지정하십시오. 아래 명령은 file1 dir1 디렉토리의 소유권을 tistory라는 이름의 새 소유자로 변경합니다.

chown tistory file1 dir1

 

 

사용자 이름 대신 숫자 사용자 ID(UID)를 사용할 수 있습니다. 다음 예에서는 file2라는 이름의 파일의 소유권을 UID 1000인 새 소유자로 변경합니다.

chown 1000 file2

 

 

숫자 소유자가 사용자 이름으로 존재하면 소유권이 사용자 이름으로 전송됩니다. 이 접두사를 사용하지 않으려면 ID +로 지정하십시오.

chown 1000 file2

 

 

 

파일의 소유자 및 그룹을 변경하는 방법

파일의 소유자와 그룹을 모두 변경하려면 chown 명령 다음에 새 소유자 및 그룹을 공백 없이 콜론(:)으로 구분하고 대상 파일을 사용합니다.

chown USER:GROUP FILE

 

 

다음 명령은 file1 파일 소유권을 tistory 및 그룹 사용자라는 새 소유자로 변경합니다.

chown tistory:users file1

 

 

콜론(:) 이후에 그룹 이름을 생략하면 파일의 그룹이 지정된 사용자의 로그인 그룹으로 변경됩니다.

chown tistory: file1

 

 

 

파일 그룹을 변경하는 방법

파일 그룹만 변경하려면 콜론(:)과 새 그룹 이름(공백 없음) 뒤에 나오는 chwon 명령을 인수로 사용합니다.

chown :GROUP FILE

 

 

 

다음 명령은 file1 파일 소유 그룹을 www-data로 변경합니다.

chown :www-data file1

 

 

파일의 그룹 소유권을 변경하는 데 사용할 수 있는 또 다른 명령은 chgrp입니다.

 

 

 

심볼 링크 소유권을 변경하는 방법

재귀 옵션을 사용하지 않으면 chown 명령은 심볼 링크 자체가 아니라 심볼 링크가 가리키는 파일의 그룹 소유권을 변경합니다. 

예를 들어 /var/www/file1을 가리키는 심볼 링크1의 소유자와 그룹을 변경하려고 하면 chown은 심볼링크가 가리키는 파일 또는 디렉터리의 소유권을 다음과 같이 변경합니다.

chown www-data: symlink1

 

 

대상 소유권을 변경하는 대신 "can can reference 'symlink1: Permission denable" 오류가 발생할 수 있습니다.

이 오류는 대부분의 Linux 배포에서 기본적으로 보호되며 대상 파일에서 작동할 수 없기 때문에 발생합니다. 이 옵션은 /proc/sys/fs/protected_symlinks에 지정되어 있습니다. 1 enabled 0을 의미합니다. Symlink 보호를 비활성화하지 않는 것이 좋습니다.

Symlink 자체의 그룹 소유권을 변경하려면 -h 옵션을 사용합니다.

chown -h www-data symlink1

 

 

 

파일 소유권을 재귀적으로 변경하는 방법

지정된 디렉터리의 모든 파일 및 디렉터리에서 반복적으로 작동하려면 -R(--recursive) 옵션을 사용하십시오.

chown -R USER:GROUP DIRECTORY

 

 

다음 예에서는 /var/www 디렉토리 아래의 모든 파일 및 하위 디렉토리의 소유권을 www-data라는 새 소유자 및 그룹으로 변경합니다.

chown -R www-data: /var/www

 

 

디렉토리에 심볼 링크가 포함된 경우 -h 옵션을 전달합니다.

chown -hR www-data: /var/www

 

 

디렉터리 소유권을 반복적으로 변경할 때 사용할 수 있는 다른 옵션은 -H -L입니다. 

chown 명령에 전달된 인수가 디렉토리를 가리키는 심볼 링크인 경우 -H 옵션을 사용하면 명령이 해당 디렉토리를 트래버스하도록 명령합니다. -L chown에게 각 심볼 링크를 표시되는 디렉토리로 트래버스하도록 지시합니다. 일반적으로 시스템을 어지럽히거나 보안 위험을 발생시킬 수 있으므로 이러한 옵션을 사용하면 안 됩니다.

 

 

 

참조 파일 사용

--reference=ref_file 옵션을 사용하면 지정된 파일의 사용자 및 그룹 소유권을 지정된 참조 파일(ref_file)과 동일하게 변경할 수 있습니다. 참조 파일이 심볼 링크인 경우 대상 파일의 사용자와 그룹을 사용합니다.

chown --reference=REF_FILE FILE

 

 

 

예를 들어 다음 명령은 file1의 사용자 및 그룹 소유권을 file2에 할당합니다.

chown --reference=file1 file2

 

반응형