sftp 후에 www-data 그룹 쓰기?

sftp 후에 www-data 그룹 쓰기?

내 Apache 사용자가 파일을 읽고 쓸 수 있게 하고 싶습니다. 내 SFTP 사용자가 다른 SFTP 사용자와 Apache 모두에게 사용할 수 있는(rwX) 파일을 업로드할 수 있도록 하고 싶습니다. 그리고 다른 모든 사람은 읽은 것이 좋습니다. .

pst: I know this question comes up a lot, and I've been reading answers and trying many many things for two days now and am now thoroughly confused. 또한내 사이트에 대한 www-data 쓰기 액세스를 허용하는 것과 관련된 보안 위험을 알고 있지만 여기서 논의하려는 문제는 아닙니다.

내 단계는 다음과 같습니다.

usermod -aG www-data tim
mkdir -p /var/www/mysite/public_html

# now upload/untar the site, etc. not shown here #

chown -R www-data:www-data /var/www/mysite
chmod -R u+rwX,go+rwX,g+s,o-w /var/www/mysite

# now make the apache virtual host and so on .. not shown here #

내부 파일은 public_html다음과 같이 설정됩니다. 그룹은 다음을 작성했습니다.

-rw-rwSr-- 1 www-data www-data favicon.ico

이제 sftp를 사용하여 "tim" 계정으로 로그온하고 public_html 폴더에 새 파일을 업로드한 다음 해당 권한을 확인합니다.

-rw-r--r-- 1 tim      wwww-data COPYING.txt

그래서 나는잃어버린g+sgroup WRITE, 비록 그룹을 상속받을 수 있도록 상위 폴더에 추가했다고 생각했지만 .

분명히 이것이 /mask/ 그룹도 상속한다는 의미는 아닙니다. SFTP가 umask를 존중하지 않는다는 내용을 어딘가에서 읽었습니다. 권한이 손실되는 곳인 것 같은데 해결 방법을 모르겠습니다.

편집하다 umask 참조를 찾아서 시도해 보았습니다.http://john.parnefjord.se/node/62- 로그인 시 파일이 실행되고 있음을 볼 수 있지만 업로드 후 여전히 마스크가 g+w로 설정되지 않았습니다.

답변1

많이 확인하지는 않았지만 로컬 서버에서 다른 그룹 권한으로 2~3번 시도했습니다.

내가 여기서 얻는 것은 로컬 시스템의 파일에 부여된 권한이 무엇인지입니다.정확히 동일한 권한원격 서버의 파일에서 가져왔습니다.

답변2

프로세스가 Unix에서 파일을 생성할 때 프로세스는 파일에 할당되는 권한을 제어합니다. 프로세스는 파일 생성 시스템 호출에서 일반적으로 0666 또는 0777의 권한 집합을 지정합니다. 권한은 프로세스의 umask에 의해 수정되어 파일에 대한 실제 권한을 생성합니다. 상위 디렉터리의 특수 플래그는 이 프로세스의 일부가 아닙니다. 프로세스는 이라는 다른 시스템 호출을 통해 기존 파일에 대한 권한을 변경할 수도 있습니다 chmod().

SFTP는 실제로 원격 파일 시스템 프로토콜입니다. 클라이언트가 서버에 파일을 만들 때 클라이언트는 새 파일에 부여할 권한을 서버에 정확하게 알려줄 수 있습니다. 클라이언트는 chmod()원격으로 호출하여 기존 파일에 대한 권한을 변경할 수도 있습니다. OpenSSH SFTP 서버는 내가 알고 있는 것처럼 서버 관리자가 이를 제한할 수 있는 수단을 제공하지 않습니다.

아마도 내가 할 일은 폴더를 검색하고 파일 권한을 수정하는 쉘 스크립트를 작성하는 것입니다. cron몇 분 마다 스크립트를 실행할 수 있습니다 . 다음과 같은 내용을 시작하면 됩니다.

#!/bin/sh
cd /var/www/mysite || exit 1
find . -type f ! -perm 0664 -exec chmod 0664 '{}' ';'

관련 정보