세인드의 블로그

FTP서비스를 사용하지 않는 서버에서 워드프레스 대쉬보드를 이용해 코어 버전을 업데이트하거나 플러그인을 관리하고자 할 때 FTP 정보를 입력하기 위해서 번거롭게 FTP를 설치해야하는 경우가 있습니다. 이는 워드프레스를 실행하고 있는 아파치 서버의 실행자가 www-data이기때문에 이용자에게 소유권이 있는 wordpress 디렉토리에 접근하지 못해서 발생하는 현상입니다. 


sudo ps -ef | grep 'apache2\|www-data'
# ...
# www-data 33920 33916 0 513 ? 00:00:02 /usr/sbin/apache2 -k start
# www-data 33921 33916 0 513 ? 00:00:03 /usr/sbin/apache2 -k start
# www-data 33922 33916 0 513 ? 00:00:01 /usr/sbin/apache2 -k start
# ...

그렇기에 간단하게 wordpress 디렉토리의 소유권을 www-data로 변경하시면 FTP설치 없이 간단히 대쉬보드를 이용해 워드프레스를 관리할 수 있게 됩니다.


※ 우분투를 기준으로 아파치를 실행하는 사용자는 www-data이며, 리눅스 버전에 따라 다를 수 있습니다.



권한 수정하기


sudo chown -R www-data:www-data wordpress
# drwxr-xr-x 5 www-data www-data 4096 5 12 16:13 wordpress

워드프레스가 설치된 경로에서 wordpress 디렉토리의 소유권을 아파치 서비스의 소유자인 www-data로 변경한다.


이후 워드프레스 관리자페이지에서 손쉽게 워드프레스 코어와 플러그인을 관리할 수 있습니다.


하지만 이러한 방식을 사용할 경우 로컬에 있는 파일들조차 www-data에게 소유권이 귀속되기 때문이 사용자는 로컬에서 혹은 외부에서 로컬파일로 접근해 워드프레스 소스 파일을 수정할 수 없게 됩니다.


이를 해결하기 위해 워드프레스 플러그인 및 코어를 관리한 이후 다시 소유권을 사용자에게 넘겨줘야합니다.



권한 되돌리기


sudo chown -R userid:userid wordpress

사용자에게 소유권을 부여합니다.


sudo chown -R www-data:www-data wordpress/wp-content/uploads/

uploads 폴더는 www-data가 직접 접근할 수 있어야 웹상에서 정상적으로 파일을 업로드할 수 있습니다.


이렇게 하시면 FTP설치 없이 워드프레스를 관리할 수 있지만 매번 권한을 변경해야하는 번거로움이 있습니다.

모든 소유권을 www-data에게 주고 퍼미션을 적절하게 변경해주거나 새로운 그룹을 만들고 소유권과 퍼미션을 주는 방법도 있지만 보안상 취약점이 생기기 때문에 권장하지 않습니다.