내 폴더에는 /var/www/storage/app/uploads/public
내 웹사이트 CMS와 원격 서버의 sftpupload 스크립트에 의해 생성된 많은 하위 디렉터리가 있습니다.
이제 내가 직면한 문제는 SFTP 업로드로 생성된 디렉토리로 인해 발생합니다.
소유자는 sftpuser이고 내 www-data 사용자는 이 디렉터리에 하위 디렉터리를 생성할 수 있는 쓰기 권한이 없습니다.
이로 인해 내 www-data 사용자 PHP 스크립트가 분출되었습니다.
/var/www/install-master/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php 336의 "mkdir(): 권한 거부됨"에서 역추적:
상위 디렉토리를 처음 그룹 쓰기 가능으로 만들었을 때부터 상위 디렉토리의 acl 권한을 확인하면 최상위 디렉토리에 올바른 acl 권한이 있습니다.
하지만 sftp에 의해 생성된 두 번째 레이어에는 이러한 기능이 없습니다.
내가 찾은이 문제, 그러나 SFTP가 ACL을 무시하는 것 외에는 실제로 유용한 답변은 아닙니다.
/etc/ssh/sshd_config에서 sftp의 umask 비트를 설정해 보았습니다.
하지만 그렇더라도 새로 생성된 디렉터리에는 아무런 영향을 미치지 않습니다. 아직 그룹에 쓸 수 없습니다.
소유자 및 그룹에게 sftp를 사용하여 새로 생성된 폴더에 대한 하위 디렉터리 찾아보기 및 생성 권한을 부여하고 소유자 및 그룹에게 읽기 및 쓰기 권한은 부여하지만 해당 하위 디렉터리의 파일에 대한 실행 권한은 부여하지 않으려면 어떻게 해야 합니까?
아니면 다른 접근법을 사용해야 합니까? 내가 이해한 바에 따르면 sftp에는 원격 측에서 파일 권한을 변경하는 옵션이 제한되어 있으며 acl은 openssh sftp에서 분명히 무시됩니다.
그렇다면 우분투 18.04에서 올바른 실행 권한을 얻기 위해 sftpuser를 어떻게 사용합니까?
답변1
binfs에서 해결책을 찾았습니다. 이를 통해 업로드된 폴더를 올바른 권한으로 내 대상 폴더에 복사할 수 있습니다.
나는 이 튜토리얼을 따랐다.https://www.talkerland.com/2018/08/20/howard/how-to-install-bindfs-on-ubuntu-18-04/
root@talkerland $ apt 업데이트
root@talkerland $ apt -y install binfs
root@talkerland $ mkdir -p /home/gatekeeper/www/html
root@talkerland $ chown -Rf 게이트웨이키퍼:gatekeeper /home/gatekeeper/www root@talkerland
$ chmod -Rf 770 /home/gatekeeper/www
root@talkerland $ nano /etc/fstab
그런 다음 /etc/fstab 줄에
bindfs#/var/www/html /home/gatekeeper/www/html fuse force-user=gatekeeper,force-group=gatekeeper,create-for-user=www-data,create-for-group=www-data,create-with-perms=god=rx:ud=rwx:gof=r:uf=rw,chgrp-ignore,chown-ignore,chmod-ignore 0 0
god
binfs를 시작하고 실행하기 위해 fstab 항목에서 몇 가지 사항을 변경하여 원하는 권한을 얻었습니다 . 또한 그룹 쓰기가 가능한 od
and 로 변경했습니다 . 여기에서는 을 의미합니다 , 의미합니다 , 의미합니다 , 의미합니다 , 의미합니다 .ud
gud
o
other
g
group
u
user
f
file
d
directory
bindfs#/var/www/html /sftp/sftpuser/app fuse force-user=sftpuser,force-group=sftpuser,create-for-user=www-data,create-for-group=www-data,create-with-perms=od=rx:gud=rwx:of=r:ugf=rw,chgrp-ignore,chown-ignore,chmod-ignore 0 0
이를 통해 이제 적절한 권한을 사용하여 이러한 원격 파일을 업로드하는 매우 세부적인 방법을 갖게 되었습니다. 유일하게 아쉬운 점은 콘텐츠가 중복된다는 점인데, 이는 적절한 권한 제어를 통해 견딜 수 있는 단점입니다.