특정 디렉터리에 대한 Apache 쓰기 액세스를 허용하도록 서버를 변환하면 이 솔루션이 올바르게 보입니까?

특정 디렉터리에 대한 Apache 쓰기 액세스를 허용하도록 서버를 변환하면 이 솔루션이 올바르게 보입니까?

하루 종일 이 작업을 했고 마침내 알아낸 것 같지만 프로덕션에 적용하기 전에 확인하고 싶었습니다.

apache:apache사용자가 여러 디렉토리에 대한 쓰기 액세스를 허용하도록 서버를 변경하고 있습니다 . 나는 jeff:jeff서버의 유일한 사용자입니다.

내 디렉터리 구조는 다음과 같습니다.

/home/jeff/www/                       0755 jeff:jeff
/home/jeff/www/example1.com/          0755 jeff:jeff
/home/jeff/www/example2.com/          0755 jeff:jeff
/home/jeff/www/example2.com/uploads/  0755 apache:apache

문제는 다음과 같습니다

chmod apache:apache uploads/쓰기 액세스를 허용하기 위해 실행합니다 apache.

sftp를 통해 파일을 편집하고 싶을 때마다 해당 파일로 돌아가서 완료되면 되돌려 uploads/야 합니다 .chownjeff:jeff

내 초기 솔루션은 다음과 같습니다.

  • apachejeff그룹 에 사용자 추가
  • jeff그룹에 디렉터리에 대한 쓰기 권한을 수동으로 부여하여uploads/chmod 775
  • 사용자가 새 파일 + 폴더 + 하위 폴더를 .requires 디렉터리 apache로 생성하도록 강제합니다 .apache:jeffsetgid 2775uploads/
  • 사용자가 =를 통해 apache새 파일 + 폴더 + 하위 폴더를 생성하도록 강제umask 002775체계

나는 내가 일을 제대로 하고 있다고 확신할 수 있는 시간이 약 50%에 불과합니다.

괜찮은 것 같나요? 더 좋은 방법이 있나요? 내가 뭐 놓친 거 없니?

Jim의 도움으로 이것이 제가 사용한 최종 솔루션입니다.

참고로.

# usermod --append --groups apache jeff

> Relogin all sessions

# chown -R apache:apache www/example.com/uploads/
# find www/example.com/uploads/ -type d -exec chmod 775 {} \;
# find www/example.com/uploads/ -type f -exec chmod 664 {} \;

# systemctl edit --full php.service

-----------
[Service]
UMask=0002
-----------

# systemctl daemon-reload
# systemctl restart php

WordPress 사용자는 wp-config.php에 다음을 추가해야 합니다.

define('FS_CHMOD_DIR', 0775);
define('FS_CHMOD_FILE', 0664);

답변1

예, 이것이 일반적인 생각이고 거의 비슷하지만 사용자를 apache그룹에 추가하는 대신 jeff더 안전하고 편리할 수 있습니다(중요한 경우 확장 가능). 설명:

  1. apache그룹에서 꺼내세요 jeff.

  2. 대신 그룹 jeff에 추가하세요. apache우선, 이는 apache모든 그룹 파일에 대한 읽기 액세스를 차단합니다 jeff.

  3. chownuploads/그룹의 모든 사람이 파일을 생성/삭제할 수 있는 디렉토리 입니다.apache:apachechmod 775apache

  4. 생성된 모든 항목이 그룹 쓰기 가능 하도록 apache파일 생성을 사용하세요 .umask 2apache

이 방법:

chownA) 파일을 편집하기 전에 더 이상 파일을 생성할 필요가 없습니다 . 모든 upload파일은 그룹에 속하고 apache그룹 쓰기가 가능하며 이미 그룹에 속해 있습니다 apache.

B) 다른 사용자를 apache그룹에 쉽게 추가할 수 있으며 업로드된 파일도 편집할 수 있습니다.

관련 정보