Linux - Change Permissions and Ownership for Files and Folders (chmod, chown, members, groups )
차례:
Linux에서 파일에 대한 액세스는 파일 권한, 속성 및 소유권을 통해 관리됩니다. 이를 통해 권한이 부여 된 사용자 및 프로세스 만 파일 및 디렉토리에 액세스 할 수 있습니다.
이 학습서에서는
chmod
명령을 사용하여 파일 및 디렉토리의 액세스 권한을 변경하는 방법에 대해 설명합니다.
리눅스 파일 권한
계속 진행하기 전에 기본 Linux 권한 모델을 설명하겠습니다.
Linux에서 각 파일은 소유자 및 그룹과 연관되며 세 가지 다른 클래스의 사용자에 대한 권한 액세스 권한이 지정됩니다.
- 파일 소유자, 그룹 구성원, 기타 (다른 모든 사람)
chown
및
chgrp
명령을 사용하여 파일 소유권을 변경할 수 있습니다.
각 클래스에 적용되는 세 가지 파일 권한 유형이 있습니다.
- 읽기 권한 쓰기 권한 실행 권한
이 개념을 통해 파일을 읽거나 파일에 쓰거나 파일을 실행할 수있는 사용자를 지정할 수 있습니다.
ls
명령을 사용하여 파일 권한을 볼 수 있습니다.
ls -l filename.txt
-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt |- | | | | | | | | | | | | | +-----------> 7. Group | | | | | +-------------------> 6. Owner | | | | +--------------------------> 5. Alternate Access Method | | | +----------------------------> 4. Others Permissions | | +-------------------------------> 3. Group Permissions | +----------------------------------> 2. Owner Permissions +------------------------------------> 1. File Type
첫 번째 문자는 파일 형식을 보여줍니다. 일반 파일 (
-
), 디렉토리 (
d
), 기호 링크 (
l
) 또는 기타 특수 유형의 파일 일 수 있습니다.
다음 9 개의 문자는 파일 권한을 나타내며 각각 3 자씩 3 개의 3 자입니다. 첫 번째 삼중 항은 소유자 권한, 두 번째 하나의 그룹 권한을 표시하고 마지막 삼중 항은 다른 모든 권한을 표시합니다. 파일 유형에 따라 권한이 다른 의미를 가질 수 있습니다.
위의 예에서 (
rw-r--r--
)은 파일 소유자에게 읽기 및 쓰기 권한 (
rw-
)이 있고 그룹 및 다른 사람들에게는 읽기 권한 (
r--
) 만 있음을 의미합니다.
세 가지 권한 트리플렛 각각은 다음 문자로 구성 될 수 있으며 파일 또는 디렉토리로 설정되었는지에 따라 다른 효과를 갖습니다.
파일에 대한 권한의 영향
허가 | 캐릭터 | 파일의 의미 |
---|---|---|
읽다 |
-
|
파일을 읽을 수 없습니다. 파일 내용을 볼 수 없습니다. |
r
|
파일을 읽을 수 있습니다. | |
쓰다 |
-
|
파일을 변경하거나 수정할 수 없습니다. |
w
|
파일을 변경하거나 수정할 수 있습니다. | |
실행 |
-
|
파일을 실행할 수 없습니다. |
x
|
파일을 실행할 수 있습니다. | |
s
|
user
삼중 항에서 발견되면
setuid
비트를 설정합니다.
group
삼중 항에서 발견되면
setgid
비트를 설정합니다. 또한
x
플래그가 설정되어 있음을 의미합니다.
|
|
S
|
s
와 동일하지만
x
플래그가 설정되지 않았습니다. 이 플래그는 파일에서 거의 사용되지 않습니다. |
|
t
|
others
트리플렛에서 발견되면
sticky
비트를 설정합니다.
또한
|
|
T
|
t
와 동일하지만
x
플래그가 설정되지 않았습니다. 이 플래그는 파일에서 쓸모가 없습니다. |
디렉토리에 대한 권한의 영향 (폴더)
Linux에서 디렉토리는 다른 파일과 디렉토리를 포함하는 특수한 유형의 파일입니다.
허가 | 캐릭터 | 디렉토리의 의미 |
---|---|---|
읽다 |
-
|
디렉토리의 내용을 표시 할 수 없습니다. |
r
|
디렉토리의 내용을 볼 수 있습니다.
(예:
|
|
쓰다 |
-
|
디렉토리의 내용은 변경할 수 없습니다. |
w
|
디렉토리의 내용을 변경할 수 있습니다.
(예: 새 파일을 만들거나 파일 등을 삭제할 수 없습니다.) |
|
실행 |
-
|
디렉토리를 변경할 수 없습니다. |
x
|
cd
사용하여 디렉토리를 탐색 할 수 있습니다. |
|
s
|
user
삼중 항에서 발견되면
setuid
비트를 설정합니다.
group
삼중 항에서 발견되면
setgid
비트를 설정합니다. 또한
x
플래그가 설정되어 있음을 의미합니다.
setgid
플래그가 디렉토리에 설정되면 디렉토리에서 작성된 새 파일은 파일을 작성한 사용자의 1 차 그룹 ID 대신 디렉토리 그룹 ID (GID)를 상속합니다.
|
|
S
|
s
와 동일하지만
x
플래그가 설정되지 않았습니다. 이 플래그는 디렉토리에서 쓸모가 없습니다. |
|
t
|
others
트리플렛에서 발견되면
sticky
비트를 설정합니다.
또한
|
|
T
|
t
와 동일하지만
x
플래그가 설정되지 않았습니다. 이 플래그는 디렉토리에서 쓸모가 없습니다. |
chmod
사용
chmod
명령은 다음과 같은 일반적인 형식을 따릅니다.
chmod MODE FILE…
chmod
명령을 사용하면 기호 또는 숫자 모드 나 참조 파일을 사용하여 파일에 대한 권한을 변경할 수 있습니다. 모드에 대해서는 나중에 자세히 설명하겠습니다. 이 명령은 공백으로 구분 된 하나 이상의 파일 및 / 또는 디렉토리를 인수로 사용할 수 있습니다.
root, 파일 소유자 또는 sudo 권한을 가진 사용자 만 파일의 권한을 변경할 수 있습니다.
chmod
를 사용할 때, 특히 재귀 적으로 권한을 변경할 때 특히주의하십시오.
기호 (텍스트) 방법
기호 모드를 사용할 때
chmod
명령의 구문은 다음 형식을 갖습니다.
chmod perms… FILE…
첫 번째 플래그 집합 (
), users 플래그는 파일에 대한 권한이 변경되는 사용자 클래스를 정의합니다.
-
u
파일 소유자g
그룹의 구성원 인 사용자o
다른 모든 사용자ugo
와 동일한 모든 사용자.
users 플래그를 생략하면 기본 플래그는
a
이며 umask로 설정된 권한은 영향을받지 않습니다.
두 번째 플래그 집합 (
), 작업 플래그는 권한을 제거, 추가 또는 설정할지 여부를 정의합니다.
-
-
지정된 권한을 제거합니다.+
지정된 권한을 추가합니다.=
현재 권한을 지정된 권한으로 변경합니다.=
기호 뒤에 권한이 지정되지 않으면 지정된 사용자 클래스의 모든 권한이 제거됩니다.
r
,
w
,
x
,
X
,
s
및
t
문자 중 하나 이상을 사용하여 권한 (
perms…
)을 명시 적으로 설정할 수 있습니다. 권한을 하나의 사용자 클래스에서 다른 사용자 클래스로 복사 할 때 세트
u
,
g
및
o
의 단일 문자를 사용하십시오.
둘 이상의 사용자 클래스에 대한 권한을 설정하는 경우 (
)의 경우 공백없이 쉼표를 사용하여 기호 모드를 구분하십시오.
다음은 기호 모드에서
chmod
명령을 사용하는 방법에 대한 몇 가지 예입니다.
-
파일을 읽고 실행할 수는 없지만 그룹 구성원에게 파일을 읽을 수있는 권한을 부여하십시오.
chmod g=r filename
모든 사용자에 대한 실행 권한을 제거하십시오.
chmod ax filename
다른 사용자에 대한 쓰기 권한을 거부하십시오.
chmod -R ow dirname
파일 소유자를 제외한 모든 사용자에 대한 읽기, 쓰기 및 실행 권한을 제거하십시오.
chmod og-rwx filename
다음 양식을 사용하여 동일한 작업을 수행 할 수도 있습니다.
chmod og= filename
파일 소유자에게 읽기, 쓰기 및 실행 권한을 부여하고 파일 그룹에 대한 읽기 권한을 부여하고 다른 모든 사용자에게는 권한을 부여하지 않습니다.
chmod u=rwx, g=r, o= filename
파일 소유자 권한을 파일 그룹 구성원이 가진 권한에 추가하십시오.
chmod g+u filename
지정된 디렉토리에 고정 비트를 추가하십시오.
chmod o+t dirname
숫자 방법
숫자 메소드를 사용할 때
chmod
명령의 구문은 다음 형식을 갖습니다.
chmod NUMBER FILE…
숫자 모드를 사용하는 경우 세 가지 사용자 클래스 (소유자, 그룹 및 기타 모든)에 대한 권한을 동시에 설정할 수 있습니다.
NUMBER
는 3 자리 또는 4 자리 숫자 일 수 있습니다.
3 자리 숫자가 사용될 때 첫 번째 숫자는 파일 소유자의 권한, 파일 그룹의 두 번째 권한 및 다른 모든 사용자의 권한을 나타냅니다.
각 쓰기, 읽기 및 실행 권한은 다음과 같은 숫자 값을 갖습니다.
-
r
(읽기) = 4w (쓰기) = 2x
(실행) = 1 권한 없음 = 0
특정 사용자 클래스의 권한 번호는 해당 그룹에 대한 권한 값의 합계로 표시됩니다.
숫자 모드에서 파일의 권한을 찾으려면 모든 사용자 클래스의 총계를 계산하십시오. 예를 들어 파일 소유자에게 읽기, 쓰기 및 실행 권한을 부여하고 파일 그룹에 대한 읽기 및 실행 권한과 다른 모든 사용자에게만 읽기 권한을 부여하려면 다음을 수행하십시오.
- 소유자: rwx = 4 + 2 + 1 = 7 그룹: rx = 4 + 0 + 1 = 5 기타: rx = 4 + 0 + 0 = 4
위의 방법을 사용하면 원하는 권한을 나타내는 숫자
754
가 나타납니다.
setuid
,
setgid
및
sticky bit
플래그를 설정하려면 4 자리 숫자를 사용하십시오.
4 자리 숫자를 사용하는 경우 첫 번째 숫자는 다음과 같은 의미를 갖습니다.
- setuid = 4setgid = 2sticky = 1 변경 사항 없음 = 0
다음 3 자리 숫자는 3 자리 숫자를 사용할 때와 같은 의미입니다.
첫 번째 숫자가 0이면 생략 할 수 있으며 모드는 3 자리로 표시 될 수 있습니다. 숫자 모드
0755
는
755
와 같습니다.
숫자 모드를 계산하기 위해 다른 방법 (이진 방법)을 사용할 수도 있지만 조금 더 복잡합니다. 대부분의 사용자에게는 4, 2 및 1을 사용하여 숫자 모드를 계산하는 방법을 아는 것으로 충분합니다.
stat
명령을 사용하여 숫자 표기법으로 파일의 권한을 확인할 수 있습니다.
stat -c "%a" filename
644
다음은 숫자 모드에서
chmod
명령을 사용하는 방법에 대한 몇 가지 예입니다.
-
파일 소유자에게 읽기 및 쓰기 권한을 부여하고 그룹 구성원 및 다른 모든 사용자에게만 읽기 권한을 부여하십시오.
chmod 644 dirname
파일 소유자에게 읽기, 쓰기 및 실행 권한, 그룹 구성원에 대한 읽기 및 실행 권한을 부여하고 다른 모든 사용자에게는 권한을 부여하지 마십시오.
chmod 750 dirname
주어진 디렉토리에 대한 읽기, 쓰기 및 실행 권한과 고정 비트를 제공하십시오.
chmod 1777 dirname
파일 소유자에 대한 읽기, 쓰기 및 실행 권한을 반복적으로 설정하고 지정된 디렉토리의 다른 모든 사용자에게는 권한이 없습니다.
chmod -R 700 dirname
참조 파일 사용
--reference=ref_file
옵션을 사용하면 파일의 권한을 지정된 참조 파일 (
ref_file
)의 권한과 동일하게 설정할 수 있습니다.
chmod --reference=REF_FILE FILE
예를 들어 다음 명령은
file1
의 권한을
file2
할당합니다.
파일의 권한을 재귀 적으로 변경
주어진 디렉토리 아래의 모든 파일과 디렉토리에서 재귀 적으로 작업하려면
-R
(
--recursive
) 옵션을 사용하십시오.
chmod -R MODE DIRECTORY
예를 들어,
/var/www
디렉토리 아래의 모든 파일 및 서브 디렉토리의 권한을
755
하려면 다음을 사용하십시오.
심볼릭 링크에서 작동
심볼릭 링크에는 항상
777
권한이 있습니다.
기본적으로 symlink의 권한을 변경하면
chmod
는 링크가 가리키는 파일에 대한 권한을 변경합니다.
chmod 755 symlink
대상 소유권을 변경하는 대신 " 'symlink'에 액세스 할 수 없습니다: 권한이 거부되었습니다"라는 오류가 표시 될 수 있습니다.
대부분의 Linux 배포에서 심볼릭 링크가 기본적으로 보호되어 대상 파일에서 작업 할 수 없기 때문에 오류가 발생합니다. 이 옵션은
/proc/sys/fs/protected_symlinks
지정되어 있습니다.
1
은 활성화 됨과
0
비활성화됨을 의미합니다. 심볼릭 링크 보호를 비활성화하지 않는 것이 좋습니다.
대량으로 파일 권한 변경
파일 및 디렉토리 권한을 대량으로 변경해야하는 경우가 있습니다.
가장 일반적인 시나리오는 웹 사이트 파일의 권한을
644
, 디렉토리의 권한을
755
로 재귀 적으로 변경하는 것입니다.
숫자 방법 사용:
find /var/www/my_website -type d -exec chmod 755 {} ;
find /var/www/my_website -type f -exec chmod 644 {} ;
상징적 방법 사용:
find /var/www/my_website -type d -exec chmod u=rwx, go=rx {} ;
find /var/www/my_website -type f -exec chmod u=rw, go=r {} ;
find
명령은
/var/www/my_website
에서 파일과 디렉토리를 검색하고 찾은 각 파일과 디렉토리를
chmod
명령에 전달하여 권한을 설정합니다.
결론
chmod
명령은 파일의 권한을 변경합니다. 권한은 기호 또는 숫자 모드를 사용하여 설정할 수 있습니다.
chmod
에 대한 자세한 내용은 chmod 매뉴얼 페이지를 참조하십시오.
마이크로 소프트와 베스트 바이는 리눅스에서 강탈한다

당신은 '안티 리눅스'라고 말하면, 나는 '프로 윈도우'라고 말한다. 당신은 'Linux bashing'이라고 말하면서 '마케팅'이라고 말합니다.
리눅스에서 부팅 가능한 데비안 10 USB 스틱 만들기

이 튜토리얼에서는`dd` 명령을 사용하여 Linux 터미널에서 부팅 가능한 데비안 10 (버스터) USB 스틱을 만드는 방법을 설명합니다.
리눅스에서 파일의 권한을 재귀 적으로 변경하는 방법

Linux는 다중 사용자 시스템이며 파일에 대한 액세스는 파일 권한, 속성 및 소유권을 통해 제어됩니다. 이 기사에서는 파일 및 디렉토리의 권한을 재귀 적으로 변경하는 방법에 대해 설명합니다.