WordPress 디렉터리에서 공유 FTP 액세스에 대한 적절한 Unix 권한을 설정합니다.

WordPress 디렉터리에서 공유 FTP 액세스에 대한 적절한 Unix 권한을 설정합니다.

내 Ubuntu 서버에는 두 개의 사용자 계정이 있습니다. 하나는 sudo 그룹의 일부이고 다른 하나는 표준 사용자입니다. 데모 목적으로 다음 사용자 이름을 사용하겠습니다.

  • admin_user(sudo 그룹 권한)
  • Standard_user(관리자 권한 없음)

에 있는 WordPress를 호스팅하도록 서버를 설정하고 있습니다 /var/www/example.com. 서버에 대한 FTP 액세스를 허용하도록 VSFTPD 및 SFTP도 설정했으며 각 사용자는 현재 홈 디렉터리로 루트가 설정되어 있습니다. 이 가이드를 따른 후여기, WordPress에서는 FTP 액세스를 위해 별도의 계정을 사용하고 서버 프로세스 자체(NGINX 또는 Apache)를 실행하려면 다른 계정을 사용할 것을 권장합니다.

"일반적으로 모든 파일은 웹 서버의 사용자(ftp) 계정이 소유해야 하며 해당 계정에서 쓸 수 있어야 합니다. 공유 호스팅에서는 파일을 웹 서버 프로세스 자체가 소유해서는 안 됩니다(때로는 www 또는 apache임). 또는 사용자 없음) WordPress 쓰기 권한이 필요한 모든 파일은 WordPress에서 사용하는 사용자 계정이 소유해야 합니다(서버 계정과 다를 수 있음). 서버 자체에 FTP를 전송할 수 있습니다. 별도의 사용자(예: dhapache 또는 none)가 있는 별도의 사용자 그룹에서 실행될 수 있습니다. WordPress가 FTP 계정으로 실행되는 경우 해당 계정에는 쓰기 권한이 있어야 합니다. 즉, 파일 소유자여야 합니다. 후자의 경우 이는 권한이 기본값보다 더 느슨하게 설정됨을 의미합니다(예: 폴더의 경우 755, 폴더의 경우 664 대신 775).

다음 명령을 실행하면 sudo apachectl -SApache2가 실행되고 있음을 알 수 있습니다.

User: name="www-data" id=33
Group: name="www-data" id=33

sudo ps -aux | egrep apache2 '(httpd|apache2|apache)'이 역시 확인되었습니다.

이를 염두에 두고 다음 명령을 실행하여 웹 루트의 소유자와 그룹을 변경했습니다.

sudo chown -R admin_user:www-data /var/www/example.com

WordPress 강화 가이드에서 "파일 권한 변경"을 알아보세요.여기다음 명령을 실행했습니다.

find /var/www/example.com/ -type d -exec chmod 755 {} \;
find /var/www/example.com/ -type f -exec chmod 644 {} \;

FTP/SFTP를 통해 관리자로 로그인하면 삭제, 새 파일 생성, 권한 변경이 가능합니다. 파일/디렉토리의 소유자만이 권한을 변경할 수 있습니다. 이것이 Unix 권한이 작동하는 방식입니다. 이제 일반적인 상황에서는 FTP를 통해 서버를 관리하는 사용자가 단 한 명뿐이며 이는 완벽하게 작동합니다. 그러나 표준 사용자도 웹 루트의 파일/디렉터리를 삭제하고 쓸 수 있기를 바랍니다. www-data 그룹(apache2 프로세스가 실행되는 것과 동일한 그룹)에 Standard_user를 추가하고 해당 그룹에 더 개방적인 권한 집합을 부여하는 것이 안전하고 충분하다고 가정합니까?

sudo usermod -a -G www-data standard_user
find /var/www/example.com/ -type d -exec chmod 775 {} \;
find /var/www/example.com/ -type f -exec chmod 664 {} \;

그런 다음 특정 파일에 대한 권한을 설정합니다.

sudo chmod 440 /var/www/example.com/wp-config.php
sudo chmod 664 /var/www/example.com/.htaccess

부가적인 질문으로, 웹 루트의 소유자를 root사용자 계정으로 설정하고 그룹 옆에 admin_user추가 계정을 추가하는 것이 안전한 것으로 간주 됩니까?www-datastandard_user

sudo usermod -a -G www-data admin_user
sudo chown -R root:www-data /var/www/example.com

업데이트 1

위와 같이 설정된 권한으로 웹브라우저를 통해 워드프레스 테마 업로드를 시도했지만, 워드프레스가 바로 FTP 접속을 요청해 권한 문제가 나타났습니다. 인터넷에서 좀 읽어보니 아래와 같이 소유자와 그룹을 설정하고 파일 에 www-data삽입하라는 안내가 있는 것 같습니다.define('FS_METHOD', 'direct');wp-config.php이것가이드 같은. 그러나 이것이 안전한 것으로 간주됩니까?

관련 정보