로컬 네트워크의 상자에 CentOS를 설정하고 httpd, PHP, Webmin(및 UserMin) 등을 설치했습니다. ProFTPd를 선택하고 FTP, Webmin 및 Apache용 포트를 열었습니다.
이제 로컬 네트워크를 통해 Webmin에 액세스하고 기본 Apache 테스트 페이지를 볼 수 있습니다. 내가 만든 사용자로 SFPT 연결을 만들 수도 있습니다. 그러나 FTP를 통해 /var/www/에 파일을 쓸 수 없습니다.
한 명 이상의 사용자가 관련 디렉토리에 액세스할 수 있게 하려면 어떻게 해야 합니까?
답변1
LDJames의 답변(더 이상 여기에 없음)으로 인해 전체 사용자 및 그룹 문제가 발생했지만 전적으로 도움이 되지는 않았습니다. 다행히도 Google을 참여시키기에 충분했습니다. 문제를 해결하기 위해 취한 단계는 다음과 같습니다.
폴더는 사용자를 추가하기에 좋은 그룹이 아닌 루트가 소유했습니다. 해결책은 특별한 그룹을 만드는 것이었습니다. 나는 그렇게 창의적이기 때문에 그것을 "www"라고 불렀습니다. 그런 다음 html 폴더를 해당 그룹으로 이동합니다.
<user>
내 시스템 사용자의 사용자 이름입니다
- su로 루트로 이동(또는 모든 줄에서 sudo 사용)
groupadd www
(그룹 만들기)usermod -a -G www <user>
(그룹에 사용자 추가)- /var/www/로 이동
chgrp www html
(폴더를 그룹으로 설정)chmod g+rwx html
(폴더에 대한 그룹 액세스 허용 - 다음 항목도 참조하세요.http://ss64.com/bash/chmod.html꽤 도움이 됐어요)
결과 이제 나는 파일을 업로드할 수 있고 원할 경우 다른 사용자도 그렇게 하도록 할 수 있습니다.
- 어떤 메시지가 표시되면 Apache가 www 그룹으로 실행되도록 설정했습니다.
이는 환경 변수(정확한 위치는 Linux 버전에 따라 다름)를 설정하여 수행됩니다.
다른 답변에도 불구하고 이를 수행하는 올바른 방법은 다음과 같습니다.
export APACHE_RUN_USER=www
export APACHE_RUN_GROUP=www
위의 내용은 www라는 사용자도 생성했다고 가정한 반면, 이것은 내 책상에 있는 개발 상자이기 때문에 지금은 Apache가 루트로 실행되는 것이 좋습니다.
다음을 통해 Apache의 사용자 및 그룹 설정에 대해 알아냈습니다.Apache와 PHP는 어떤 사용자로 실행되어야 합니까? /var/www 파일에는 어떤 권한이 있어야 합니까?