XAMPP를 사용하여 Macbook Air에 Joomla를 설치하려고 합니다. 성공적으로 설치했지만 프런트엔드를 열려고 하면 계속해서 이 mkdir():permission denied
오류가 발생합니다.
이 문제를 해결하려고 노력하면서 두 가지 질문이 생겼습니다.
1) 이 작업을 수행했을 때 ls -l
일부 폴더의 소유자는 다음과 같습니다.myname
: admin
및 다른 폴더의 경우 root:admin
나는 이 컴퓨터의 유일한 사용자입니다.myname
사용자는 모든 루트 권한을 가지고 있어야 합니다. 난 이해가 안 돼요:
A. 할 때 왜 chmod
이렇게 해야 하나요 sudo chmod
?
B. 소유자가 다른 폴더가 있는 이유는 무엇입니까?
2) 이 문제를 해결하기 위해 모든 관련 파일과 디렉터리의 소유자를 무차별 대입으로 변경하고 root:root
해당 파일과 디렉터리의 권한을 으로 변경했습니다 0777
. 그러나 결국 소유자가 유지되고 유지되도록 프로덕션 서버로 이동해야 합니다. 권한은 현명하지 않습니다. 소유자/권한 설정을 최대한 그대로 유지하면서 문제를 해결하는 더 좋은 방법이 있습니까?
답변1
운영체제sudo
이는 보안상의 이유로 수행됩니다. 사용자가 실행하는 모든 명령이 관리자 권한으로 실행되기 때문에 2000년대의 많은 Windows 맬웨어는 시스템 수준에서 악의적인 작업을 수행할 수 있습니다.
특정 파일을 루트가 소유하는 이유에 대한 대답은 해당 파일이 어떤 특정 파일이고 어떻게 루트에 도달했는지에 따라 다릅니다. 하지만 내 생각엔:
- OS X에서 생성된 시스템 파일은 일반적으로 건드리면 안 되기 때문에 루트입니다.
- xampp 설치 프로그램이 생성하는 것은 아마도 루트로 설정된 권한을 가질 것입니다.
- 및/또는 루트로 설치 프로그램을 실행하고(sudo를 통해) 해당 사용자가 선택되고 소유권이 부여됩니다.
권한이 없는 사용자는 다른 사용자의 파일 및 디렉터리의 소유권을 변경할 수 없으므로 chown/chmod 명령과 함께 sudo를 사용해야 합니다. 그들이 할 수 있다고 상상해보세요! 나는 당신의 홈 디렉토리를 편집할 수 있습니다. 또는 /etc/passwd
!
777이 생산에 적합하지 않다고 판단하신 것은 맞습니다. xampp은 분명히 해당 용도로 설계되지 않았기 때문에 프로덕션 환경에서는 사용하지 않기를 바랍니다 /var/www
.
- 웹 서버에서 수정해야 하는 콘텐츠(예: 자동 채우기 캐시 디렉터리)는 그룹 쓰기가 가능합니다.
- 다른 모든 것은 소유자만 쓸 수 있어야 합니다.
- 모든 것은 www-data(또는 apache가 속한 그룹)에 속해야 합니다.
이렇게 하면 호스팅 스크립트 중 하나에서 취약점을 발견한 공격자가 많은 내용을 작성하는 것을 방지하면서도 사이트에 변경 사항을 쉽게 적용할 수 있습니다.