Linux는 다중 사용자 운영 체제이기 때문에 승인된 프로세스와 사용자만 다양한 디렉토리와 파일에 액세스할 수 있도록 파일 권한을 설정하고 관리하는 메커니즘이 있습니다. Linux를 사용하다 보면 필요한 권한이 없음을 나타내는 "권한 거부됨" 오류로 인해 파일이나 디렉터리를 편집할 수 없는 다양한 경우가 발생할 수 있습니다. 이 튜토리얼에서는 권한 설정이 하위 폴더와 파일에 적용되도록 Linux에서 파일 권한을 재귀적으로 변경하는 방법을 보여줍니다.
Linux에서 파일 권한을 확인하는 방법
파일 또는 디렉토리 작업에서 "permission denied" 오류가 발생하면 먼저 사용자, 그룹 및 기타에 대해 할당된 권한을 확인하십시오.
그렇게 하려면 ls -l
을 사용할 수 있습니다. 명령. 예를 들어, 다음은 "/var" 디렉토리에 있는 다양한 파일 및 디렉토리에 대한 권한입니다.
위의 출력에는 특정 정보가 포함되어 있습니다.
- 첫 번째 열은 파일 및 디렉터리 권한을 나타냅니다. 이 열의 첫 번째 문자는
d
유형을 나타냅니다. 디렉토리를 의미합니다.l
심볼릭 링크를 나타내며-
일반 파일. - 다른 9개의 문자는
u
세 세트로 그룹화됩니다. 사용자,g
그룹 및o
소유자는 파일 또는 디렉토리 권한을 나타냅니다.r
"읽기" 권한을 나타냅니다.w
"쓰기" 권한을 나타내며X
"실행" 권한을 나타냅니다.
작업 디렉토리나 파일의 파일 권한을 알면 쉽게 변경할 수 있습니다.
chmod를 사용하여 파일 권한을 변경하는 방법
chmod
명령은 Linux에서 파일 권한을 변경하는 가장 쉬운 방법입니다. 명령의 일반 구문은 다음과 같습니다.
chmod {permission}{operator}{mode}
- 권한:사용자, 그룹, 소유자 또는 모두에게 부여된 권한을 나타냅니다.
- 운영자:권한의 양수인에게 부여된 권한을 나타냅니다:
+
권한 부여,-
권한을 거부하고=
설정할 권한을 지정합니다. - 모드:설정할 권한을 지정합니다.
r
읽기,w
쓰기 또는x
실행합니다.
chmod
에 대한 자세한 정보 작동 방식은 이 기사를 확인하세요.
예를 들어, "/var" 디렉토리의 백업 디렉토리에 대한 모든 쓰기 액세스를 거부하려면 다음 명령을 사용할 수 있습니다.
sudo chmod -w /var/backups
chmod
를 사용하여 파일 권한을 변경하더라도 명령은 유효하며 지정된 디렉토리 또는 파일에 대한 파일 권한만 변경합니다.
다행스럽게도 디렉토리 또는 파일과 그 하위 디렉토리 및 파일의 파일 권한을 재귀적으로 변경할 수 있습니다. 그렇게 하려면 chmod 명령 재귀 -r
를 사용하십시오. 옵션.
예를 들어, read
를 재귀적으로 제거해 보겠습니다. "/var/backup" 디렉토리와 모든 파일 및 하위 디렉토리에 대한 권한. 현재 권한:
drwxrwxrwx 2 root root 4096 Jul 15 06:25 backups
이제 chmod
를 실행해 봅시다. 재귀적으로 권한 변경:
sudo chmod –r -r /var/backups
이제 파일 권한이 변경된 것을 볼 수 있습니다.
찾기를 통한 재귀적 변경 권한
일반적으로 유사한 권한으로 파일 및 디렉토리를 설정하지 않습니다. cd
를 실행하려면 실행 권한이 필요하기 때문입니다. 특정 디렉토리에. 그러나 대부분의 파일에는 이 실행 권한이 필요하지 않습니다.
이를 극복하기 위해 find
를 사용할 수 있습니다. Linux의 유틸리티. 이렇게 하면 특정 파일이나 디렉터리만 찾고 이에 대한 권한을 설정할 수 있습니다.
Linux에서 찾기 사용에 대한 자세한 내용은 이 문서를 확인하세요.
"/var/log" 디렉토리를 사용합시다. 디렉토리에는 파일과 디렉토리가 모두 포함되어 있습니다.
파일에만 특정 권한을 설정하려면 -type f
와 함께 find 명령을 사용할 수 있습니다. 옵션.
아래의 예제 명령을 참조하십시오.
sudo find /var/log/ -type f -exec chmod 777 {} ;
위의 예에서는 find 명령을 사용하여 "/var/log" 디렉토리에서 파일을 검색한 다음 사용자, 그룹 및 모두에 대한 읽기, 쓰기 및 실행 권한을 설정했습니다.
디렉토리에 대해서도 동일한 경우를 수행할 수 있습니다. 이 경우 -type d
를 지정합니다. 디렉토리만 가져옵니다.
예:
sudo find /var/log/ -type d -exec chmod 755 {} ;
위의 예에서는 파일과 디렉토리가 아닌 디렉토리에만 권한 755를 설정했습니다.
ls -la
를 사용하여 이를 확인할 수 있습니다. 명령.
모든 파일에는 777 권한이 있고 디렉토리에는 755 권한이 있습니다.
종료 중
Linux에서 파일 권한을 변경하는 방법을 아는 것은 다양한 파일 및 디렉토리에 대한 무단 액세스 및 수정을 방지하는 데 도움이 되기 때문에 필수적인 기술입니다. 한편 파일 소유권을 변경하여 파일 액세스를 제한하거나 am 액세스 제어 목록을 사용하여 Linux에서 파일 권한을 더욱 세밀하게 제어할 수도 있습니다.