수년간 호스팅만 사용해 오다가

웅돌프님의 https://koreanvlog.com 글들을 보면서 오라클 클라우그 서버에 대해서 하나씩 배워 나가고 있습니다.

 

글을 차례대로 따라하면서 시행착오도 생기고 문의를 하면서 하나씩 해결해 나가니 드디어 홈피가 접속이 되네요.

Nginx 서버 설치, php설치, MariaDB 설치, Let's Encrypt SSL의 자동 인증서설치, 편집기(EditPlus) SSL접속, 라이믹스설치등등,

아직 아무 것도 없는 맹탕이라 홈피를 공개하기는 그렇구요... 

 

그런데 설치를 하고 이리저리 만지고 테스트하다 보니 files폴더안의 하위폴더들 안의 파일들이 삭제가 되지를 않습니다.

 

'rm -f -r "config.php"' 명령
다음과 같은 사유로 실패하였습니다. 반환코드 1
오류 메시지
rm: cannot remove 'config.php': Permission denied.

 

이런 메세지가 뜹니다.

권한이 잘못되었다는 메세지 인 것 같은데, 호스팅으로 운영중인 사이트에서는 잘 삭제되고 생성되고 하는데

왜 이런 오류 메시지가 나타날까요?

 

참고로 files폴더 777, 하위폴더들 755, 파일들은 666 입니다.

 

sudo rm -rf files 명령으로 강제 삭제는 했습니다만 sftp에서도 삭제가 가능하게 하고 싶습니다.

 

[서버환경]

[Basic Information]
rhymix_version : 1.9.9.9
date : 2020-10-14 11:40:46 +0900 (2020-10-14 02:40:46 UTC)
php : 7.2.34-1+ubuntu18.04.1+deb.sury.org+1 (64-bit)
server : nginx/1.14.0
os : Linux 5.4.0-1025-oracle
sapi : fpm-fcgi
baseurl : https://도메인/
basedir : /var/www/html/
owner : ubuntu (1001:1001)
user : www-data (33:33)
ssl : always

 

[config폴더 삭제시]

/var/www/html/files$ rm -r config/
rm: cannot remove 'config/ftp.config.php': Permission denied
rm: cannot remove 'config/config.php': Permission denied
rm: cannot remove 'config/db.config.php': Permission denied

 

[config.php 권한변경시] 

/var/www/html/files/config$ ls -al
total 20
drwxr-xr-x  2 www-data www-data 4096 Oct 13 17:20 .
drwx---rwx 10 ubuntu   ubuntu   4096 Oct 14 00:22 ..
-rw-rw-rw-  1 www-data www-data 3097 Oct 14 00:15 config.php
-rw-rw-rw-  1 www-data www-data 1189 Oct 13 17:20 db.config.php
-rw-rw-rw-  1 www-data www-data  290 Oct 13 17:20 ftp.config.php
/var/www/html/files/config$ chmod 644 ./config.php
chmod: changing permissions of './config.php': Operation not permitted

  • profile

    1. 내용을 보니 777, 755, 707 등 온갖 퍼미션이 뒤섞여 있는 것 같네요. 특히 755가 의심스럽습니다. 안되면 그냥 다 777이 답입니다. 또한 개인서버에서 707은 아무 의미가 없습니다.

     

    2. 어느 정도까지는 퍼미션으로 커버할 수 있지만, 호스팅과 근본적으로 다른 것은 파일 소유권의 문제입니다. 카페24 같은 경우에는 프로그램이 생성한 파일들도 모두 해당고객의 (S)FTP 계정과 소유권이 동일하게 설정됩니다. 이 시스템이 도입되기도 전에 만들어진 아주 오래된 계정이 아니라면, 수정/삭제가 안 되는 파일은 애당초 생겨날 수 없는 구조이지요. 직접 운영하시는 서버에서는 PHP-FPM의 유저/그룹 설정 등을 별도로 만져주지 않으면 nobody, apache, www-data 등 엉뚱한 계정들이 파일을 소유하게 되어서 (S)FTP 이용에 애로사항이 많습니다.

  • profile profile
    owner : ubuntu (1001:1001)
    user : www-data (33:33)

    이게 문제가 있어 보이네요. 저도 비슷한 설치가이드를 보고 서버를 설치했더니 이렇게 되어있네요. 따로 별도계정을 생성하지 않아서(db는 이전을해야해서 별도로 생성했지만..) 이런 것 같습니다.
  • profile profile
    네.. owner와 user가 같아야 하고, 둘 중 어느 쪽도 nobody, apache, nginx, www-data 등 O/S에서 자동 생성되는 계정이어서는 안됩니다. (데몬 전용 계정이라 로그인이 불가능하므로...)

    안타깝게도 대부분의 서버 설치가이드는 이 부분에 신경을 써주지 않습니다. 처음에 잘 작동하는 것처럼 보이기만 하면 되지, 나중에 관리하면서 불편이 생기는 것은 신경 안쓰겠다는 심보...
  • profile ?
    혹시 owner 와 user를 ubuntu로 일괄 변경하는 명령어는 없나요?
  • ? profile
    owner는 chown -R 명령으로 변경할 수 있지만, user는 서버 세팅 문제입니다.
  • profile ?
    염치 없지만 서버 세팅시 올바른 길을 알려줄 참고할만한 페이지나 문서는 없을까요.
    서버에 대해서 워낙 초보라 어렵네요ㅠㅠ
  • profile
    저도 비슷하게 서버 설치했는데 저랑 다르네요??

    files 폴더 권한 주실때 하위 폴더,파일까지 모두 체크하고 주셨나요?

    저는 files 777 하위폴더 777 하위폴더의 파일 644 로 되어있습니다.
  • profile

    기진곰님 말씀 처럼
    owner : ubuntu (1001:1001)
    user : www-data (33:33)

    ubuntu로 변경하는 법은 저도 찾지를 못하겠네요 ㅠ_ㅠ

    단순히 files 하위 파일까지 퍼미션 777로 변경 후 삭제를 하여 라이믹스를 재설치 하기 위함이라면

     

    sudo chown -R ubuntu /var/www/html/files
    sudo chgrp -R ubuntu /var/www/html/files

     

    위 명령어 입력 후 SFTP로 files 퍼미션을 하위폴더까지 777로 변경하시면 됩니다.

  • profile ?
    이 정도만 되어도 좋네요^.^