당신은 이제껏 Linux 권한의 복잡한 세계에 얽메이신 적이 있나요? 아직까지 누가 무엇을 읽고 쓰고 실행할 수 있는지 궁금하다면, 정확한 장소에 계시게 되었습니다. chmod
와 chown
이라는 강력한 콤보에 초점을 맞춰 Linux 권한의 복잡한 예술을 해체해보세요!
이 튜토리얼에서는 자신감 있게 파일과 디렉토리에 대한 접근을 제어하는 기술을 습득하게 될 것입니다.
자무를 걷어차고 Linux 권한을 정복해보세요!
전제 조건
Linux 권한의 깊은 곳을 탐험하기 전에, chmod
와 chown
명령어를 마스터하기 위해 Linux 기기가 필요합니다. 이 튜토리얼은 Ubuntu 22.04 LTS (Jammy Jellyfish)를 사용합니다.
chmod
와 chown
명령어 이해하기
Linux 권한의 영역에서 chmod
와 chown
명령어는 상당한 권한을 가지고 있습니다. 이 명령어들을 효과적으로 사용하는 방법을 이해하는 것은 초보자부터 숙련된 관리자까지 모든 Linux 사용자에게 중요합니다.
두 명령어 모두 Linux 시스템을 제어하는 다양한 방법을 제공하지만, 각각의 기능에 대한 기본적인 내용은 다음과 같습니다:
chmod
– 이 명령어는 Linux에서 파일과 디렉토리 권한을 관리하는 핵심입니다. 이 명령어를 사용하여 파일에 대해 누가 읽고 쓰고 실행할 수 있는지를 지정할 수 있습니다. 기호와 숫자 코드의 조합을 사용하여 사용자, 그룹 및 기타 사용자에 대한 접근 권한을 부여하거나 제한할 수 있습니다.chown
– 이 명령어를 사용하여 파일과 디렉토리의 소유권을 변경할 수 있습니다. 이 명령어는 관리자 권한을 이전하거나 파일과 사용자/그룹 간의 연관성을 변경해야 할 때 귀중한 도구입니다.
중요한 데이터를 보호하거나 팀의 접근을 간소화해야 할 때, 이러한 명령어들은 Linux 파일 작업의 신뢰할 수 있는 동반자입니다.
계속해서 이 명령어들에 대해 더 자세히 알아보세요.
파일 목록 보기와 권한 확인
chmod
과 chown
명령어로 권한과 소유권을 변경하기 전에, 첫 번째 단계는 파일 목록을 보고 권한을 확인하는 것입니다.
Linux에서 도서관에서 책을 찾는 것과 같이, 파일 목록과 해당 파일의 권한을 자주 확인해야 합니다. 이 지식은 효과적인 파일 관리에 필수적입니다.
파일 또는 디렉토리의 권한을 확인하려면:
터미널을 열고 다음 ls
명령어를 실행하여 현재 작업 디렉토리의 모든 파일과 디렉토리를 긴 형식(-l
)으로 나열합니다.
긴 형식은 아래에 표시된 것처럼 각 파일 또는 디렉토리에 대한 자세한 정보를 제공합니다.
이 정보에는 권한, 링크 수, 소유자, 그룹, 크기 및 수정 시간이 포함되어 있습니다. 그러나 지금은 파일 권한에 초점을 맞추어야 합니다.

모든 파일과 디렉토리에는 읽기 (r), 쓰기 (w) 및 실행 (x)이라는 세 가지 핵심 권한이 있습니다. 각각은 사용자가 모든 파일과 디렉토리의 내용과 상호 작용하는 방식을 지시합니다.
또한, 이러한 권한은 소유자, 그룹 및 기타 (그룹의 멤버도 아닌 사용자)라는 세 가지 다른 소유 카테고리에 적용됩니다.
다음은 파일 권한의 각 부분을 보여줍니다:
- 첫 번째 문자는 파일 (–) 또는 디렉토리 (d)를 나타냅니다.
- 첫 번째 부분 (rw-) – 소유자에게 읽기 및 쓰기 권한을 부여하지만 실행 권한은 부여하지 않습니다.
- 두 번째 부분 (rw-) – 그룹에게 읽기 및 쓰기 권한을 부여하지만 실행 권한은 부여하지 않습니다.
- 마지막 부분 (r–) – 다른 사람에게 읽기 권한을 부여하지만 쓰기 또는 실행 권한은 부여하지 않습니다.

chmod
명령을 사용하여 권한 수정하기: Symbolic Mode
파일 권한에 대한 이해를 확장하려면 권한을 수정하는 강력한 도구에 대해 알아보세요. 파일 또는 디렉토리에 대한 액세스, 수정 또는 실행을 정밀하게 조정하는 상상해 보세요. chmod
명령 (모드 변경)을 사용하면 Linux 시스템을 제어할 수 있습니다.
파일과 디렉토리에 대한 액세스를 정밀하게 제어하기 위해 유연하고 표현력 있는 방법인 symbolic mode를 사용하면 됩니다.
symbolic mode를 통해 chmod
명령을 사용하여 권한을 수정하려면 다음 단계를 따르세요:
아래의 who
명령을 실행하여 새 파일 user.txt
을 특권 없는 사용자로 생성하십시오. 해당 파일은 현재 Linux 시스템에 로그인한 사용자 목록을 포함합니다.
이 명령은 터미널에서 출력을 제공하지 않지만, 다음 단계에서 파일의 권한을 확인하게 됩니다.
2. 다음으로 아래 명령을 실행하여 user.txt
파일의 권한을 확인하십시오.
아래에서는 파일의 기본 권한, 소유자, 생성일 및 월, 파일 이름이 표시됩니다.
현재 파일 권한을 주의 깊게 확인하십시오. 현재는 사용자 권한에 중점을 둡니다 (rw-).

3. 이제 다음 명령을 실행하여 소유자 (u
)의 쓰기 (w
) 권한을 제외하고 다른 카테고리의 모든 권한을 유지합니다.
다음 표에서 각 기호가 나타내는 내용을 살펴보십시오.
User Symbol | Details | Operation Symbol | Details | Permission Symbol | Details |
---|---|---|---|---|---|
u | Owner | + | Add permissions | r | Read |
g | Group | – | Remove permissions | w | Write |
o | Others | = | Set permissions explicitly | x | Execute |
성공하면 chmod
명령은 터미널에서 출력을 생성하지 않으며, 이는 본 자습서 전체에 적용됩니다.
4. 권한을 변경한 후 아래 명령을 실행하여 user.txt
파일의 권한을 확인하십시오.
제시된 파일 권한과 두 번째 단계에서 기록한 파일 권한을 비교하십시오 (rw-). 주의하세요. 소유자 (u)는 이제 읽기 권한만 있습니다 (r–).

5. 이제 다음 명령을 실행하여 다음을 수행하십시오:
- 동일한
user.txt
파일에 소유자(u
)에 대한 추가(+
), 쓰기(w
), 및 실행(x
) 권한을 추가합니다. - 변경된 권한을 확인하기 위해
user.txt
파일의 정보를 보세요.
아래에 표시된 대로 사용자는 이제 rwx 파일에 대한 읽기, 쓰기 및 실행 권한을 갖습니다.user.txt 파일.

6. 추가하는 대신, 다음 chmod
명령을 실행하여 다음을 제거합니다:
- 소유자(
u
)에 대한 실행(x
) 권한. - 그룹(
g
)에 대한 쓰기(w
) 권한. - 다른 사용자(
o
)에 대한 모든 권한(rwx
).
이 명령을 사용하면 단일 명령으로 다른 범주에서 권한을 동시에 제거할 수 있습니다.
이번에는 -v
옵션을 사용하여 chmod
가 작업에 의해 수행된 변경 사항에 대한 메시지를 표시하도록 합니다.

7. 다음 명령을 실행하여 다음 작업을 수행하십시오:
- 모든 범주에 읽기(
r
) 권한을 추가합니다. - 모든(
a
) 범주에 대해 쓰기 및 실행 권한(wx
)을 제거합니다.
8. 이제 아래 명령을 실행하여 user.txt
파일의 업데이트된 권한을 확인합니다.

? 대안으로, 동일한 권한을 모든 세 범주(사용자, 그룹 및 기타)에 대해 수정할 수 있습니다. 다음 명령을 사용합니다:
chmod ugo-r
– 모든 세 부분(ugo
)에서 읽기 권한(r
)을 제거합니다.
chmod ugo+r
– 모든 세 부분(ugo
)에 대한 읽기 권한(r
)을 추가합니다.
9. 마지막으로 다음 명령을 실행하여 다음을 수행합니다:
chmod
– 소유자 및 그룹에 대한 읽기 및 쓰기(rw
) 권한을 설정하고 다른 사용자의 권한을 제거합니다(o=
).
=
기호를 사용하면 명시적으로 권한을 설정하고 기존 권한을 덮어씁니다.=
기호 뒤에 특정 권한이 지정되지 않은 경우 해당 범주의 모든 권한이 제거됩니다.ls
–user.txt
파일의 권한에 대한 수정 사항을 확인합니다.

chmod
명령을 사용하여 액세스 권한 조정: 8진수 모드
심볼 표기법의 복잡성 없이 파일 권한을 신속하게 정확하게 설정할 수 있다면 얼마나 편리할까요. 8진수 모드(8진법 표기법)는 권한을 관리하는 데 새로운 방법이 될 것입니다.
8진수 모드(8진법 표기법)에서 권한은 0에서 7까지의 네 자리 또는 세 자리 숫자를 사용하여 나타냅니다. 각 숫자는 소유자, 그룹 및 다른 사용자에 대한 특정 권한 집합에 해당합니다:
- 읽기 (r) = 4
- 쓰기 (w) = 2
- 실행 (x) = 1
- 권한 없음 (-) = 0
8진수 모드가 파일 권한을 관리하는 데 어떻게 작동하는지 보려면 다음 단계를 수행하세요:
1. 아래 chmod
명령을 실행하여 user.txt
파일에 다음 권한(664
)을 추가하십시오:
- 소유자 – 읽기 (
4
) + 쓰기 (2
) + 실행 (0
) =6
- 그룹 – 읽기 (
4
) + 쓰기 (2
) + 실행 (0
) =6
- 기타 – 읽기 (
4
) + 쓰기 (0
) + 실행 (0
)=4
리눅스에서 파일 권한을 위해 chmod
명령을 사용할 때, 네 자리 숫자를 사용하는 경우, 앞자리(좌측)는 setuid, setgid 및 sticky bit과 같은 특수 권한을 나타냅니다. 다음 세 자리는 각각 소유자, 그룹 및 기타 사용자의 표준 권한을 나타냅니다.
그러나 세 자리 숫자를 사용하는 경우, 첫 번째 자리는 파일 소유자(u
)의 권한을 나타내고, 두 번째는 파일 그룹(g
)의 권한을 나타내며, 마지막은 다른 사용자(o
)의 권한을 나타냅니다.
특수 권한을 다루지 않는 경우를 포함하여 많은 경우에는 세 자리 표기만 볼 수 있습니다. 8진법 표기를 나타내는 선행 제로는 함축될 수 있으므로 생략될 수 있습니다. 아래 예시에서처럼, 0664
대신 664
를 사용합니다.
2. 다음으로 아래 명령을 실행하여 user.txt
파일의 권한을 확인하십시오.
아래 출력에서, user.txt 파일에 설정된 권한이 8진법 모드에서 664와 동일한 기호적 모드로 표시됩니다.

3. 지금 아래 stat
명령어를 실행하여 user.txt
파일에 대한 포괄적인 통계를 보십시오. 이는 심볼릭 및 8진 모드의 권한을 포함합니다.
아래와 같이 표시된 Access 속성에서, user.txt 파일의 파일 권한과 관련된 8진 및 심볼릭 모드를 볼 수 있습니다.
이 정보를 통해 8진 모드를 사용하여 권한을 조정하는 방법을 이해할 수 있습니다.

chown
명령어를 사용하여 파일 소유권 변경
권한은 파일이나 디렉터리에서 수행할 수 있는 작업을 지정하지만, 권한을 설정하거나 수정할 권한을 누가 가지고 있는지를 지정할 수 있습니다.
chown
명령어(소유자 변경)는 파일 및 디렉터리 소유권을 관리하는 주요 명령어입니다. chmod
명령어와 마찬가지로, chown
명령어는 루트 전용 명령어입니다 — 파일이나 디렉터리의 소유권을 변경할 수 있는 것은 루트 사용자만 가능합니다.
chown
명령어를 사용하여 소유권을 관리하려면 아래 단계를 따르십시오:
1. 아래 명령어를 실행하여 bill
이라는 사용자(useradd
)를 생성하고 강력한 암호를 제공합니다.
기본 사용자인 여러분 외에 로컬 머신에 하나 이상의 사용자가 있어야만 소유권 변경이 작동하는 방법을 확인할 수 있습니다.

2. 다음으로, 각 명령을 실행하여 현재 로그인한 사용자 목록(who
)을 new.txt
라는 파일에 비특권 사용자로 작성하고(ls
) 그 소유자와 권한을 확인합니다.
아래 출력에서 파일 소유자가 mercy임을 보여줍니다.

3. 소유자가 확인되면 다음과 같이 new.txt
파일의 소유자를 bill
로 변경하는 chown
명령을 실행합니다.
chmod
명령과 마찬가지로 chown
명령은 출력을 제공하지 않지만, 다음 단계에서 소유자 변경을 확인할 수 있습니다.
4. 이제 다음 명령을 실행하여 new.txt
파일의 새 소유자(ls
)를 확인합니다.
아래 출력은 new.txt 파일의 소유자를 이제 파일을 제어하고 권한을 가진 bill로 성공적으로 변경했음을 확인합니다.

chown
명령을 사용하여 그룹 소유권 수정 강제로
리눅스 파일 시스템에서 각 파일과 디렉터리는 개별 소유자뿐만 아니라 그룹과도 연관됩니다. 한 개의 튜닝이 틀린 악기가 전체 앙상블을 방해할 수 있는 것처럼 잘못된 소유권은 잠재적인 문제를 야기할 수 있습니다.
걱정해야 할까요? 그렇지 않습니다. 그룹 연관성은 파일 권한에 계층적 접근을 허용합니다. 이 접근 방식을 통해 여러 사용자가 그룹 소속에 따라 협력하고 액세스를 공유할 수 있습니다.
그룹 소유권을 수정하려면 다음 단계를 따르세요:
1. 아래 명령을 실행하여 new.txt
파일과 연결된 그룹을 확인합니다.

2. 다음 명령을 실행하면 출력은 제공되지 않지만 다음 작업을 수행합니다:
developers
라는 그룹을 생성(groupadd
)합니다.new.txt
파일의 그룹 소유권을developers
로 변경(chown
)합니다.
? 개별 접근 대신, 파일 또는 디렉토리 전체의 소유자와 그룹 소유권을 재귀적으로 변경하려면 다음 명령을 사용할 수 있습니다.
sudo chown -R john:finance-group user.txt
sudo chown -R john:finance-group ~/Desktop
3. 이제 다음 명령을 다시 실행하여 new.txt
파일의 새로운 그룹 소유권을 확인합니다.
아래 출력은 new.txt 파일의 그룹 소유권이 developers로 성공적으로 변경되었음을 확인합니다.

UID와 GID를 사용하여 파일 소유권 변경하기
사용자 이름과 그룹 이름은 파일 소유자를 식별하는 사람이 이해할 수 있는 방법을 제공하지만, 모든 사용자와 그룹은 고유한 숫자 식별자와 연관되어 있습니다.
이러한 고유한 숫자 식별자는 사용자 ID (UID)와 그룹 ID (GID)입니다. 이들은 겹치거나 유사한 사용자와 그룹 이름이 있는 환경에서 파일 소유권을 설정하는 명확한 방법을 제공합니다.
숫자 UID와 GID를 사용하여 소유권을 변경하려면 다음 단계를 수행하세요:
1. 아래 명령을 실행하여 new.txt
파일에 대한 정보를 나열하십시오 (ls
).
-n
옵션은 UID와 GID를 해당 사용자 및 그룹 이름으로 해결하는 대신 ls
명령이 숫자로 표시하도록 지시합니다.
new.txt
파일에 연결된 UID와 GID를 주의하세요. 나중의 단계에서 비교에 필요합니다.

2. 다음으로, 파일 소유권으로 설정하려는 사용자와 그룹의 UID 및 GID를 가져오기 위해 다음 getent
명령을 실행하십시오.
<username>
및 <groupname>
플레이스홀더를 원하는 사용자 이름과 그룹 이름으로 대체하십시오.
다음 출력에서 UID (즉, 1002)와 GID (즉, 1005)에 유의하십시오. 다음 단계에서 소유권을 변경하는 데 필요합니다.
기본적으로 Linux에서 사용자가 생성되면 사용자와 동일한 이름의 그룹도 생성됩니다. 이 그룹은 사용자의 기본 그룹으로 작동하며 자동으로 이 기본 그룹에 추가됩니다.
따라서 사용자 john
의 GID는 finance
그룹의 GID와 다릅니다. 사용자가 명시적으로 그룹에 추가되지 않는 한 해당 사용자의 GID는 다르게 유지됩니다.

3. 다음으로, new.txt
파일의 소유권과 그룹 소유권을 변경하려면 다음 명령을 실행하십시오. 단계 두에서 메모한 UID 1002
와 GID 1005
를 대체하십시오.
? 숫자 UIDs 및 GIDs 사용은 사용자 이름 및 그룹 이름보다 가독성이 떨어질 수 있습니다. 따라서 의도하지 않은 변경을 피하려면 올바른 숫자를 사용하십시오.
4. 마지막으로 아래 명령을 다시 실행하여 new.txt
파일에 대한 정보 (ls
)를 나열하고 파일 소유권의 변경을 확인하십시오.
첫 번째 단계에서 기록한 UID 및 GID를 아래와 비교하십시오. 새로운 파일 소유권이 1001:1003에서 1002:1005로 변경된 것을 주목하세요.

결론
당신은 리눅스 권한에 대한 포괄적인 탐험을 시작했습니다. 이 과정에서 chmod
및 chown
과 같은 중요한 명령을 숙달하였습니다.
또한 심볼릭 및 8진수 모드를 사용하여 권한을 수정하는 데 능숙해졌습니다. 또한 이름 또는 숫자 UID 및 GID를 통해 파일 소유권 및 그룹 할당을 관리하는 기술을 습득했습니다. 이제 chmod
및 chown
에서 나온 이 새로운 전문 지식을 통해 리눅스 시스템 내에서 액세스 및 소유권을 관리하기위한 강력한 도구를 소유하게 되었습니다.
하지만 리눅스 능숙도를 더 강화해 보는 것은 어떨까요? 어쩌면 액세스 제어 목록 (ACLs)을 포함한 고급 액세스 제어 방법을 탐험해 보는 것이 좋을 수 있습니다. 파일 및 디렉토리 권한에 대한 보다 정확한 제어를 목표로하세요!