이 폴더의 일부 웹사이트 파일을 업데이트할 수 있도록 데비안 전용 서버에 proftpd 서버를 설치하고 있습니다:
/var/www/website
새 사용자를 추가했습니다: my-ftp-user 이 사용자는 루트이지만 /var/www/website
소유자는 apache2(www-data)여야 합니다.
그래서 사용자 그룹을 변경했습니다.
usermod -a -G ftpuser my-ftp-user
usermod -a -G www-data my-ftp-user
/var/www/website
현재 폴더의 권한은 755입니다. 하위 폴더도 755 모드에 있지만 하위 파일은 644 모드에 있습니다.
내 말이 맞다면 이제 my-ftp-user는 에서 파일을 추가, 편집, 삭제할 수 있어야 합니다 /var/www/website
. 그렇지 않습니까?
$ su my-ftp-user
$ cd /var/www/website
$ ls -la
drwxr-xr-x 5 www-data www-data 4096 juil. 30 13:47 .
drwxr-xr-x 22 root www-data 4096 juil. 30 13:36 ..
-rw-r--r-- 1 www-data www-data 418 juil. 28 18:39 index.php
$ cat index.php // WORKS
$ touch test.txt // DOESN'T WORK : permission denied, why ?
답변1
EPERM
(권한 거부 오류)의 원인은 다음과 같습니다.
drwxr-xr-x 5 www-data www-data 4096 juil. 30 13:47 .
파일을 생성하려는 디렉터리(즉, 디렉터리 파일의 내용 변경)는 사용자만이 쓸 수 있으며 www-data
귀하는 쓸 수 없습니다.
디렉토리를 그룹 쓰기 가능으로 표시하고, 사용자를 변경하거나 www-data
(또는 소유자를 my-ftp-user로 변경), (아마도 가장 좋은 솔루션) 명령에서 확장 ACL을 사용하십시오 setfacl
.