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
'SW > 리눅스' 카테고리의 다른 글
CentOS 7 : Webmin 설치 방법, 예제, 명령어 (0) | 2021.04.01 |
---|---|
Debian 9 : Redis 설치, 구성 방법, 예제, 명령어 (0) | 2021.03.31 |
Ubuntu 18.04 : TeamViewer 설치 방법, 예제, 명령어 (0) | 2021.03.29 |
Debian 9 : Tomcat 9 설치 방법, 예제, 명령어 (0) | 2021.03.28 |
CentOS 7 : Gradle 설치 방법, 예제, 명령어 (0) | 2021.03.27 |