리눅스 파일 소유권 - linugseu pail soyugwon

소유권 확인

ls -al

위와 같이 명령어를 입력하면 아래의 그림처럼 결과가 출력된다.

리눅스 파일 소유권 - linugseu pail soyugwon

현재 소유권자도 root이고, 그룹식별자도 root이다.

왼쪽이 소유권자, 오른쪽이 그룹식별자이다.

파일 소유권 변경

root계정으로 접속하여 아래와 같이 명령어를 입력한다.

명령어

chown {소유권자}:{그룹식별자} {변경을 원하는 파일명}

예를 들어 test.python 이라는 파일의 소유권을 test1, 그룹식별자를 test2로 변경하자면 다음과 같다.

예제

chown test1:test2 test.python

디렉토리 소유권 변경

파일 소유권 변경과 크게 다르지 않다.

root계정으로 접속하여 아래와 같이 명령어를 입력한다.

명령어

chown {소유권자}:{그룹식별자} {변경을 원하는 디렉토리 명}

/test/app 디렉토리를 소유권자는 test1로 변경하고, 그룹식별자를 test2로 변경하는 방법은 아래 예제와 같다.

예제

chown test1:test2 /test/app

그런데 디렉토리 자체만 변경하기보다 하위에 있는 파일까지 모두 변경하는 경우가 대부분이다.

하위 디렉토리 및 파일까지 모두 소유권 변경

root계정으로 접속하여 아래와 같이 명령어를 입력한다.

위에서 확인하였던 명령어에서 -R 만 붙여준다면 하위까지 모두 변경 가능하다.

명령어

chown -R {소유권자}:{그룹식별자} {변경을 원하는 파일 및 디렉토리 명}

예제

chown -R test1:test2 /test/app

위 -R 옵션을 붙여서 명령어를 입력한다면, app 디렉토리는 물론이고 하위에 있는 디렉토리 및 파일까지 모두 적용된다.

리눅스에서 파일 및 디렉토리의 소유권을 변경하는 명령어 (change owner)


기본 사용법

chown {소유권자}:{그룹식별자} {소유권을 변경하고싶은 파일 및 디렉토리}

소유권 확인

ls -al

소유권

-rw-r--r-- 1 aoo boo 2945 Apr 13 2020 bbbb.jpg

소유권자 : aoo

그룹 식별자 : boo


파일 소유권 변경시 root 권한 아래 명령어를 실행해야함

1) 파일 소유권 변경

chown a1:b1 test.txt

소유권자:a1, 그룹식별자:b1

2) 디렉토리 소유권 변경

chown a1:b1 /home/medi

/home/medi 디렉토리만 소유권이 변경되고, 이하 디렉토리는 소유권 변경이 되지않음

3) 하위 디렉토리까지 소유권 변경

chown -R {소유권자}:{그룹식별자} {소유권을 변경하고싶은 디렉토리}
chown a1:b1 /home/medi

/home/medi 디렉토리는 물론 이하 모든 디렉토리의 소유권이 변경됨

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

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

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

리눅스 파일 소유권 - linugseu pail soyugwon
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