Computer >> 컴퓨터 >  >> 문제 해결 >> Linux

"현재 이 폴더에 액세스할 수 있는 권한이 없습니다" 오류 수정 방법

Windows의 Linux용 하위 시스템(WSL), Cygwin 등 Unix와 Windows를 연결하는 다양한 환경을 사용하다 보면 "현재 이 폴더에 액세스할 수 있는 권한이 없습니다"라는 오류를 만날 수 있습니다. 순수 Linux 또는 Unix 환경에서는 "error opening directory: permission denied"와 같은 메시지가 표시되기도 합니다. POSIX 호환 파일 시스템으로 구성된 네트워크 드라이브 역시 데이터에 접속하는 운영체제와 무관하게 동일한 문제가 발생할 수 있습니다.

이 문제의 원인은 모든 경우에 동일합니다. 접근이 제한된 디렉터리에 필요한 권한이 없는 계정으로 진입하려고 하는 것입니다. 따라서 해결법도 생각보다 간단합니다. 다른 계정으로 로그인하거나 폴더 권한 자체를 변경하면 됩니다.

방법 1: 계정을 전환하여 디렉터리 접근하기

먼저 접근하려던 폴더에 다시 접근해 보세요. 명령 프롬프트에서 cd 명령으로 해당 디렉터리에 진입하려 하면 "bash: cd : Permission denied"와 같은 메시지가 출력됩니다.

 현재 이 폴더에 액세스할 수 있는 권한이 없습니다  오류 수정 방법

그래픽 환경에서 디렉터리에 접근하려고 해도 비슷한 오류가 나타납니다.

 현재 이 폴더에 액세스할 수 있는 권한이 없습니다  오류 수정 방법

위 예시는 /lost+found 디렉터리에 접근하려는 경우입니다. 대부분의 Linux 설치 환경에서 이 디렉터리는 root 사용자 외에는 접근이 차단되어 있습니다. 터미널로 돌아가 sudo -i를 입력한 뒤 Enter 키를 누르세요. 비밀번호 입력을 요구받으며, 인증에 성공하면 root 로그인 셸을 사용할 수 있게 됩니다. 이후 cd 명령으로 해당 디렉터리에 들어가 내용을 살펴볼 수 있습니다. 다만 root 셸에서 작업할 때는 작은 실수 하나가 시스템 전반에 큰 피해를 줄 수 있다는 점을 반드시 유념해야 합니다.

평소 사용하던 계정을 그대로 유지하고 싶다면 sudo -i 대신 sudo ls /lost+found 명령으로 디렉터리 내용만 확인할 수도 있습니다. /lost+found 자리에는 /root를 포함해 원하는 디렉터리 경로를 넣으면 됩니다. 단, sudo를 붙인 명령 역시 시스템의 거의 모든 것을 변경하거나 삭제할 수 있다는 사실은 마찬가지입니다.

방법 2: 폴더의 기본 권한 변경하기

첫 번째 방법은 매우 간단해서 시스템 점검 등 일회성 확인 용도로 적합합니다. 하지만 서버나 네트워크 환경에서 일반 사용자도 지속적으로 특정 폴더에 접근할 수 있게 만들고 싶다면 다른 방법을 고려해야 합니다.

sudo chmod -R 755 /path/to/folder 명령을 실행하세요. 여기서 경로 부분은 실제로 접근을 허용하고 싶은 디렉터리 경로로 바꾸면 됩니다. 명령 실행 후에는 일반 사용자 계정으로 폴더에 접근해 정상적으로 열리는지 확인하세요. 이 방법은 첫 번째 방법보다 다소 복잡하지만, 최초 1회 실행 이후에는 root 계정을 다시 사용할 필요가 없어 더 안전하고 영구적인 해결책입니다.

대부분의 상황에서는 디렉터리를 생성하는 단계부터 이런 권한을 지정할 수 있습니다. mkdir -m 755 명령을 사용하면 소유자에게 읽기·쓰기·실행 권한을, 그룹과 기타 사용자에게는 읽기·실행 권한을 부여한 새 디렉터리를 만들 수 있습니다.

권한 값을 777로 지정하면 파일 시스템에 로그인한 모든 사용자가 해당 디렉터리를 자유롭게 조작할 수 있게 됩니다. 두 대의 컴퓨터 사이에서 수동으로 파일을 주고받는 용도의 이동식 저장 장치처럼 이 설정이 필요한 경우도 있지만, 로컬 파일 시스템에서 사용할 때는 보안 위험을 충분히 고려한 뒤 결정하는 것이 좋습니다. 대신 -p 플래그를 사용하면 시스템 기본값으로 간주되는 권한이 새 디렉터리에 적용되며, 플래그 없이 실행했을 때와 결과가 같은 경우가 많습니다.

파일을 복사할 때도 올바른 권한을 유지하도록 설정할 수 있습니다. 소유자에게 쓰기 권한을 부여하려면 rsync --perms --chmod=Fu+w 명령을 사용해 보세요. 물론 다른 권한 조합도 지정할 수 있습니다. rsync에 --chown= 옵션을 붙이고 사용자 이름, 콜론(:), 그룹 이름 순으로 입력하면 복사된 파일에도 올바른 소유자와 그룹이 지정됩니다.

rsync는 Windows와 Linux 사이에서 POSIX 호환 파일 구조를 복사할 때 매우 유용하므로, 다양한 chmod 설정을 직접 시험해 보는 것도 좋습니다. 이외에도 install이라는 명령어를 활용할 수 있습니다. install -m 777 뒤에 원본 파일 경로와 대상 경로를 입력하면 모든 사용자에게 즉시 읽기·쓰기 권한이 부여됩니다. 보안을 위해 755나 다른 권한 조합을 선택할 수도 있습니다.

install 명령은 rsync만큼 빠르지 않지만, "현재 이 폴더에 액세스할 수 있는 권한이 없습니다" 유형의 오류를 해결하면서도 파일 권한을 세밀하게 지정하고 싶은 상황에서 유용하게 활용할 수 있습니다.