Linux 웹 서버에서 내 웹 사이트 파일 / 폴더에 어떤 권한이 있어야합니까? 서버의 파일 권한에

이것은 Linux 웹 서버의 파일 권한에 관한 정식 질문 입니다.

여러 웹 사이트를 호스팅하는 Apache2를 실행하는 Linux 웹 서버가 있습니다. 각 웹 사이트에는 / var / www /에 자체 폴더가 있습니다.

/var/www/contoso.com/
/var/www/contoso.net/
/var/www/fabrikam.com/

기본 디렉토리 / var / www /는 root : root가 소유합니다. Apache는 www-data : www-data로 실행 중입니다. Fabrikam 웹 사이트는 Alice와 Bob의 두 개발자가 관리합니다. 두 Contoso 웹 사이트는 한 명의 개발자 인 Eve가 관리합니다. 모든 웹 사이트에서는 사용자가 이미지를 업로드 할 수 있습니다. 웹 사이트가 손상되면 가능한 한 영향이 제한되어야합니다.

Apache가 콘텐츠를 제공하고 웹 사이트가 공격으로부터 보호되며 개발자가 여전히 변경할 수 있도록 권한을 설정하는 가장 좋은 방법을 알고 싶습니다. 웹 사이트 중 하나는 다음과 같이 구성됩니다.

/var/www/fabrikam.com
    /cache
    /modules
    /styles
    /uploads
    /index.php

이 디렉토리와 파일에 대한 권한을 어떻게 설정해야합니까? 웹 사이트에서 777 권한을 사용해서는 안되는 곳을 읽었지만 어떤 문제가 발생할 수 있는지 이해하지 못합니다. 사용량이 많은 기간 동안 웹 사이트는 자동으로 일부 페이지를 캐시하고 결과를 캐시 폴더에 저장합니다. 웹 사이트 방문자가 제출 한 모든 컨텐츠는 업로드 폴더에 저장됩니다.



답변

사용할 권한을 결정할 때는 사용자가 누구이며 필요한 것이 무엇인지 정확히 알아야합니다. 웹 서버는 두 가지 유형의 사용자와 상호 작용합니다.

인증 된 사용자는 서버에 사용자 계정이 있으며 특정 권한을 제공받을 수 있습니다. 일반적으로 시스템 관리자, 개발자 및 서비스 계정이 포함됩니다. 일반적으로 SSH 또는 SFTP를 사용하여 시스템을 변경합니다.

익명 사용자는 웹 사이트 방문자입니다. 파일에 직접 액세스 할 수있는 권한은 없지만 웹 페이지를 요청할 수 있으며 웹 서버가 대신 사용합니다. 웹 서버 프로세스의 권한에주의하여 익명 사용자의 액세스를 제한 할 수 있습니다. 많은 Linux 배포판에서 Apache는 www-data사용자 로 실행 되지만 다를 수 있습니다. 사용 ps aux | grep httpd또는 ps aux | grep apache아파치가 시스템에 사용하는 것을 사용자가 볼 수 있습니다.


리눅스 권한에 대한 참고 사항

Linux 및 기타 POSIX 호환 시스템은 전통적인 유닉스 권한을 사용합니다. Wikipedia에 대한 파일 시스템 권한 에 대한 훌륭한 기사가 있으므로 여기에서 모든 것을 반복하지는 않습니다. 그러나 알아야 할 것이 몇 가지 있습니다.

실행 비트
해석 된 스크립트 (예 : Ruby, PHP)는 실행 권한 없이도 제대로 작동합니다. 바이너리 및 셸 스크립트에만 실행 비트가 필요합니다. 디렉토리를 순회 (입력)하려면 해당 디렉토리에 대한 실행 권한이 있어야합니다. 웹 서버는 디렉토리를 나열하거나 그 안의 파일을 제공하려면이 권한이 필요합니다.

기본 새 파일 권한
파일을 만들 때 일반적으로 파일을 만든 사람의 그룹 ID를 상속합니다. 그러나 때로는 새 파일이 생성 된 폴더의 그룹 ID를 상속하기를 원하므로 부모 폴더에서 SGID 비트를 활성화해야합니다.

기본 권한 값은 umask에 따라 다릅니다. umask는 새로 작성된 파일에서 권한을 빼므로 공통 값 022는 755로 파일을 작성합니다. 그룹과 협업 할 때 umask를 002로 변경하여 작성하는 파일을 그룹 구성원이 수정할 수 있도록하는 것이 유용합니다. 그리고 업로드 된 파일의 권한을 사용자 정의하려면 파일을 업로드 한 후 아파치의 umask를 변경하거나 chmod를 실행해야합니다.


777의 문제

당신이 chmod 777당신의 웹 사이트를 할 때 , 당신은 보안이 전혀 없습니다. 시스템의 모든 사용자는 웹 사이트의 파일을 변경하거나 삭제할 수 있습니다. 그러나 더 진지하게, 웹 서버는 웹 사이트 방문자를 대신하여 작동하며 이제 웹 서버는 실행중인 파일과 동일한 파일을 변경할 수 있습니다. 웹 사이트에 프로그래밍 취약점이있는 경우이를 악용하여 웹 사이트를 손상 시키거나 피싱 공격을 삽입하거나 서버로부터 정보를 도용 할 수 있습니다.

또한 서버가 잘 알려진 포트 (루트를 사용하지 않는 사용자가 월드 액세스 가능한 리스닝 서비스를 생성하지 못하게해야 함) 에서 실행되는 경우 서버는 루트로 시작해야합니다. 포트가 바인드되면 권한이 적은 계정으로). 즉, 주 실행 파일이 버전 제어의 일부인 웹 서버를 실행하는 경우 (예 : CGI 앱) 사용자의 이름을 바꿀 수 있으므로 권한 (또는 그와 관련하여 포함 디렉토리의 권한)은 그대로 둡니다. 777의 실행 파일)은 모든 사용자가 모든 실행 파일을 루트 로 실행할 수 있도록 합니다 .


요구 사항 정의

  • 개발자는 웹 사이트를 업데이트 할 수 있도록 파일에 대한 읽기 / 쓰기 액세스 권한이 필요합니다
  • 개발자는 디렉토리에서 읽기 / 쓰기 / 실행이 필요하므로 탐색 할 수 있습니다.
  • Apache는 파일 및 해석 된 스크립트에 대한 읽기 액세스 권한이 필요합니다
  • Apache는 서비스 가능한 디렉토리에 대한 읽기 / 실행 액세스 권한이 필요합니다
  • Apache는 업로드 된 컨텐츠의 디렉토리에 대한 읽기 / 쓰기 / 실행 액세스 권한이 필요합니다

단일 사용자가 유지 관리

한 명의 사용자 만 사이트를 관리해야하는 경우 웹 사이트 디렉토리에서 사용자 소유자로 설정하고 사용자에게 전체 rwx 권한을 부여하십시오. Apache는 여전히 파일을 제공 할 수 있도록 액세스 권한이 필요하므로 www-data를 그룹 소유자로 설정하고 그룹 rx 권한을 부여하십시오.

귀하의 경우, 사용자 이름이 인 Eve eve는 다음을 유지 관리하는 유일한 사용자입니다 contoso.com.

chown -R eve contoso.com/
chgrp -R www-data contoso.com/
chmod -R 750 contoso.com/
chmod g+s contoso.com/
ls -l
drwxr-s--- 2 eve      www-data   4096 Feb  5 22:52 contoso.com

Apache에서 쓰기 가능해야하는 폴더가있는 경우 www-data가 쓰기 액세스 권한을 갖도록 그룹 소유자의 권한 값을 수정할 수 있습니다.

chmod g+w uploads
ls -l
drwxrws--- 2 eve      www-data   4096 Feb  5 22:52 uploads

이 구성의 장점은 사용자와 그룹 소유자 만 웹 사이트 디렉토리를 탐색 할 수 있기 때문에 시스템의 다른 사용자가 스누핑하기가 더 어려워 지지만 불가능하지는 않다는 것입니다. 구성 파일에 비밀 데이터가있는 경우 유용합니다. umask에주의하십시오! 여기에서 새 파일을 작성하면 권한 값의 기본값은 755가됩니다. umask 027새 파일의 기본값이 640 ( rw- r-- ---)이 되도록 실행할 수 있습니다 .


사용자 그룹에 의해 유지 관리

둘 이상의 사용자가 사이트 유지 관리를 담당하는 경우 권한 할당에 사용할 그룹을 만들어야합니다. 각 웹 사이트마다 별도의 그룹을 만들고 해당 웹 사이트 이름을 따서 그룹을 지정하는 것이 좋습니다.

groupadd dev-fabrikam
usermod -a -G dev-fabrikam alice
usermod -a -G dev-fabrikam bob

이전 예에서는 그룹 소유자를 사용하여 Apache에 권한을 부여했지만 이제는 개발자 그룹에 사용됩니다. 사용자 소유자는 더 이상 우리에게 유용하지 않으므로 루트로 설정하면 권한이 유출되지 않는 간단한 방법입니다. 아파치는 여전히 액세스 권한을 필요로하므로 우리는 다른 세계에 대한 읽기 권한을 부여합니다.

chown -R root fabrikam.com
chgrp -R dev-fabrikam fabrikam.com
chmod -R 775 fabrikam.com
chmod g+s fabrikam.com
ls -l
drwxrwxr-x 2 root     dev-fabrikam   4096 Feb  5 22:52 fabrikam.com

Apache에서 쓰기 가능해야하는 폴더가있는 경우 Apache를 사용자 소유자 또는 그룹 소유자로 만들 수 있습니다. 어느 쪽이든, 필요한 모든 액세스 권한을 갖습니다. 개인적으로 개발자가 업로드 폴더의 내용을 탐색하고 수정할 수 있도록 사용자 소유자로 설정하는 것을 선호합니다.

chown -R www-data uploads
ls -l
drwxrwxr-x 2 www-data     dev-fabrikam   4096 Feb  5 22:52 uploads

이것이 일반적인 접근법이지만 단점이 있습니다. 시스템의 다른 모든 사용자는 웹 사이트에 대해 Apache와 동일한 권한을 가지므로 다른 사용자가 사이트를 탐색하고 구성 파일과 같은 비밀 데이터가 포함 된 파일을 쉽게 읽을 수 있습니다.

케이크를 먹고 먹을 수도 있습니다

이것은 더 향상 될 수 있습니다. 소유자는 그룹보다 적은 권한을 갖는 것이 합법적이므로 루트에 할당하여 사용자 소유자를 낭비하는 대신 Apache를 웹 사이트의 디렉토리 및 파일에서 사용자 소유자로 만들 수 있습니다. 이것은 단일 유지 관리자 시나리오의 반대이지만 동일하게 작동합니다.

chown -R www-data fabrikam.com
chgrp -R dev-fabrikam fabrikam.com
chmod -R 570 fabrikam.com
chmod g+s fabrikam.com
ls -l
dr-xrwx--- 2 www-data  dev-fabrikam   4096 Feb  5 22:52 fabrikam.com

Apache에서 쓰기 가능해야하는 폴더가있는 경우 www-data가 쓰기 액세스 권한을 갖도록 사용자 소유자의 권한 값을 수정할 수 있습니다.

chmod u+w uploads
ls -l
drwxrwx--- 2 www-data  dev-fabrikam   4096 Feb  5 22:52 fabrikam.com

이 솔루션에서주의해야 할 사항은 새 파일의 사용자 소유자가 www-data로 설정되지 않고 작성자와 일치한다는 것입니다. 따라서 생성 한 새 파일은 숨길 때까지 Apache에서 읽을 수 없습니다.


* 아파치 권한 분리

앞에서 언급 한 바에 따르면 사용중인 권한의 종류에 관계없이 다른 사용자가 웹 사이트를 스누핑 할 수 있습니다. 기본적으로 모든 Apache 프로세스는 동일한 www-data 사용자로 실행되므로 모든 Apache 프로세스는 동일한 서버에 구성된 다른 모든 웹 사이트에서 파일을 읽고 때로는 변경을 수행 할 수도 있습니다. Apache를 통해 스크립트를 실행할 수있는 모든 사용자는 Apache 자체와 동일한 액세스 권한을 얻을 수 있습니다.

이 문제를 해결하기 위해 Apache 에는 권한 분리 에 대한 다양한 접근 방식이 있습니다 . 그러나 각 방법에는 다양한 성능 및 보안 단점이 있습니다. 제 생각에는 보안 요구 사항이 더 높은 사이트는 공유 서버에서 VirtualHosts를 사용하는 대신 전용 서버에서 실행해야합니다.


추가 고려 사항

이전에 언급하지는 않았지만 일반적으로 개발자가 웹 사이트를 직접 편집하도록하는 것은 좋지 않습니다. 더 큰 사이트의 경우 버전 제어 시스템의 컨텐츠에서 웹 서버를 업데이트하는 일종의 릴리스 시스템을 사용하는 것이 훨씬 좋습니다. 단일 유지 관리 방법이 이상적 일 수 있지만 자동화 된 소프트웨어를 사용하는 사람이 아닙니다.

웹 사이트에서 업로드 할 필요가없는 업로드를 허용하는 경우 해당 업로드는 웹 루트 외부에 저장해야합니다. 그렇지 않으면 사람들이 비밀로 만든 파일을 다운로드하고 있음을 알 수 있습니다. 예를 들어, 학생들이 과제를 제출할 수있게하려면 Apache가 제공하지 않는 디렉토리에 과제를 저장해야합니다. 이것은 또한 비밀을 포함하는 구성 파일에 대한 좋은 접근 방법입니다.

보다 복잡한 요구 사항이있는 웹 사이트의 경우 액세스 제어 목록 사용을 살펴볼 수 있습니다 . 이를 통해 훨씬 더 정교한 권한 제어가 가능합니다.

웹 사이트에 복잡한 요구 사항이있는 경우 모든 권한을 설정하는 스크립트를 작성할 수 있습니다. 철저히 테스트 한 다음 안전하게 보관하십시오. 어떤 이유로 든 웹 사이트를 다시 만들어야하는 경우 금의 가치가 있습니다.


답변

왜 많은 사람들이 아파치 (및 / 또는 PHP)를 할 수 있는지 제어하기 위해 리눅스 권한의 “기타”(o) 부분을 사용 (또는 권장)하는 이유가 궁금합니다. 이 올바른 부분을 “0”이외의 다른 것으로 설정하면 전 세계가 파일 / 디렉토리에서 무언가를 수행 할 수 있습니다.

내 접근 방식은 다음과 같습니다.

  • 두 명의 분리 된 사용자를 만듭니다. 하나는 SSH / SFTP 액세스 (필요한 경우)이며, 모든 파일을 소유하고 PHP FastCGI 사용자 (웹 사이트를 실행할 사용자)를위한 것입니다. 이 사용자들을 각각 bobbob-www 라고합시다 .
  • bob 은 전체 웹 사이트를 읽고 편집 할 수 있는 모든 권한 ( 폴더의 rwx , 파일의 rw- on) 을 갖 습니다.
  • PHP FastCGI 프로세스 에는 “쓰기”권한이 필요한 or 와 같은 매우 특정한 폴더를 제외하고 폴더에 대한 rx 권한과 파일에 대한 r- 권한이 필요합니다. PHP를 FastCGI를이 기능을 제공하기 위해서는으로 실행됩니다 밥-WWW , 그리고 밥-WWW는 자동으로 생성 된 추가됩니다 그룹.cache/uploads/
  • 이제 모든 디렉토리와 파일의 소유자와 그룹이 bob bob 인지 확인합니다 .
  • 심지어 우리가 FastCGI를 사용하지만 아파치는 여전히 정적 콘텐츠, 또는이 경우 읽으려고합니다 .htaccess 파일에 대해 읽기 액세스를 필요로 : 뭔가가 누락 AllowOverride보다는 다른 것으로 설정되어 있습니다 None. 사용하지 않는 것이 권리의 일부를, 내가 추가 www가 데이터 받는 사용자를 그룹.

지금:

  • 개발자가 수행 할 수있는 작업을 제어하려면, 우리는 함께 플레이 할 수 U의 권리의 일부 (그러나 아래이 노트).
  • 아파치와 PHP가 할 수있는 작업을 제어하기 위해, 우리는 함께 플레이 할 수 g의 권리의 일부.
  • O를 서버에 아무도 읽거나 웹 사이트를 편집 할 수 있도록 부분은 항상 0으로 설정됩니다.
  • bob 사용자는 자동으로 주 그룹 ( bob )에 속하므로 새 파일을 작성할 때 문제가 없습니다 .

이것은 요약하지만이 상황에서 bob 은 SSH로 허용됩니다. 웹 사이트를 수정할 수있는 사용자가 안 경우 (예. 고객은 단지 CMS 관리자 패널을 통해 웹 사이트를 수정하고 리눅스에 대한 지식이없는), 어쨌든 두 명의 사용자를 만들 수 있지만, 제공 /bin/false에 대한 셸 도하고, 로그인을 비활성화하십시오.

    adduser --home /var/www/bobwebsite --shell /bin/bash bob
    adduser --no-create-home --shell /bin/false --disabled-login --ingroup bob bob-www
    adduser www-data bob
    cd /var/www/bobwebsite
    chown -R bob:bob .
    find -type d -exec chmod 750 {} \;
    find -type f -exec chmod 640 {} \;

참고 : 사람들은 파일 소유자가 명령을 실행할 수 있기 때문에 u (소유자) 권한 을 제한하는 것이 쓸모없고 안전하지 않다는 것을 잊는 경향이 있습니다 chmod.

100 % 확실하지 않기 때문에 내 접근 방식에 보안 문제가 있는지 알려주십시오.

이 구성에는 문제가 있다고 생각합니다 .PHP / Apache가 새 파일 (예 : 업로드)을 만들면 bob-www : bob 에 속하고 bob 은 읽을 수만 있습니다. 디렉토리의 setuid가 문제를 해결할 수 있습니다.


답변

위의 우수한 답변에서 Google 순위를 감안할 때 주목해야 할 것이 하나 있다고 생각하며 답변 후에 메모를 남길 수 없습니다.

이 예를 계속하여 디렉토리 (또는 파일)에 대한 570 권한을 가진 소유자로 www-data를 사용하고 dev-fabrikam을 그룹으로 사용하려는 경우 Linux는 무시 setuid 하므로 모든 새 파일은 그들을 만든 사용자. 이것은 새로운 디렉토리와 파일을 만든 후에 다음과 비슷한 것을 사용해야한다는 것을 의미합니다.

chown -R www-data /newdirectory/
chmod -R 570 /newdirectory/

Rackspace OpenStack의 Ubuntu 12.04에서 서버를 재부팅 할 때까지 권한 570을 사용할 수없는 이상한 문제가 발생하여 마술로 문제가 해결되었습니다. 겉보기에는 단순한 문제에 비해 머리카락이 점점 빠릅니다 ….


답변

이 구성으로갑니다.

  1. 하나를 제외한 모든 디렉토리는 소유자 root및 그룹 root에 권한 세트를 업로드 합니다 0755.
  2. 모든 파일은 소유자 root및 그룹으로 root, 권한이 설정되었습니다 0644.
  3. 소유자 root, 그룹 www-data, 권한으로 설정된 디렉토리를에 업로드 합니다 1770. 스티키 비트는 그룹 소유자가 디렉토리 및 파일을 제거하거나 이름을 바꿀 수 없습니다.
  4. Inside uploads 폴더에는 www-data소유자 사용자 및 그룹이 있는 새 디렉토리와 파일을 업로드 0700하는 각 www-data사용자에 대한 권한이 있습니다.
  5. 아파치 설정 :

Apache가 파일을 읽지 않고 Apache 사용자가 업로드 폴더의 컨텐츠를 색인화 할 수 없도록 업로드 디렉토리를 거부 AllowOverride하고 삽입하십시오 .Index.htaccess

<Directory /siteDir>
   Options -Indexes
</Directory>

<Directory /siteDir/uploadDir>
   AllowOverride none
</Directory>

6. php.ini구성 :

open_basedir = /siteDir:/tmp:/usr/share/phpmyadmin
post_max_size = 5M
file_uploads = On
upload_max_filesize = 3M
max_file_uploads = 20

이 구성을 사용하면 www-data사용자가 siteDir/ /tmp및 이외의 디렉토리에 들어갈 수 없습니다 /usr/share/phpmyadmin. 또한 동일한 요청으로 업로드 할 최대 파일 크기, 최대 게시물 크기 및 최대 파일을 제어 할 수 있습니다.


답변

“leo”라는 FTP 사용자가 example.com 웹 디렉토리에 파일을 업로드해야하고 “apache”사용자가 캐시 디렉토리에 uploa-files / sessions / cache 파일을 작성할 수 있어야하는 경우 다음과 같이하십시오.

이 명령은 leo를 소유자로, 그룹을 example.com에 아파치로 지정합니다. 아파치 사용자는 그룹 아파치의 일부이므로 아파치 그룹의 권한을 상속합니다.

chown -R leo : apache example.com

올바른 권한을 보장하고 보안 문제를 충족시키는 또 다른 명령.

chmod -R 2774 example.com

여기서 첫 번째 숫자 2는 디렉토리이며 생성 된 각 새 파일이 동일한 그룹 및 소유자 권한으로 유지되도록합니다. 77은 소유자 및 그룹 용이며 모든 권한을 갖습니다. 4는 다른 사람들을 위해 물마루 만 읽을 수 있음을 의미합니다.

다음은 허가 번호를 이해하는 데 도움이됩니다.

Number  Octal Permission Representation
0   No permission
1   Execute permission
2   Write permission
3   Execute and write permission: 1 (execute) + 2 (write) = 3
4   Read permission
5   Read and execute permission: 4 (read) + 1 (execute) = 5
6   Read and write permission: 4 (read) + 2 (write) = 6
7   All permissions: 4 (read) + 2 (write) + 1 (execute) = 7

답변

IMO는 다음을 고려해야합니다.

  • 파일을 읽는 프로세스를 신뢰하십니까? 예. PHP?

사용자가 ‘테스트’하는 다양한 데이터가있는 서버가 있다고 가정 해 봅시다.

‘테스트’사용자에게는 다음이 있습니다.

  • 그의 데이터 $HOMEDIR
  • 그의 메일 $MAIL
  • 웹에 대한 그의 데이터 /var/www/test

이제 생각 해보자 :

  • 웹 앱은 test사용자 (PHP-FPM) 에서 실행되며 그의 파일을 삭제할 수 있습니다!
  • 웹 응용 프로그램은 test그룹 (PHP-FPM) 에서 실행됩니다 . 디렉토리에 그룹에 대해 ‘w’가있는 파일을 삭제하고 그룹에 대해 ‘r’이있는 파일을 수정할 수 있습니다. 그리고 여전히 읽을 수 있습니다-예를 들어 ssh 키!

PHP가 버그가 있다고 가정 해 보자 open_basedir. 당신 chroot은 PHP 프로세스입니까? 무엇을하지 않습니까, 모든 파일 시스템을 크롤링하기를 원하십니까?

귀하의 웹앱 프로세스, 예 : PHP-FPM은 다음과 같아야합니다.

  • 통해 특정 경로로 제한 chroot
  • 데이터 소유자의 기본 사용자 또는 기본 그룹 권한으로 실행해서는 안됩니다

따라서 당신은 할 수 있습니다 :

  • 테스트 사용자는 다음과 같습니다. test:test
  • 테스트 사용자가 보조 그룹에 있습니다 (예 : test-www
  • 웹 앱 (PHP-FPM)은 test-www:test-www
  • 웹 앱이 파일을 읽을 수있게하려면 사용자를 테스트하십시오.
    chmod u=rwX,g=rX,o= /var/www/test/public
  • 웹 응용 프로그램이 자신의 웹 데이터 경로에 쓸 수 있기를 원하는 경우 테스트 사용자 :
    chmod u=rwX,g=rwXs,o= /var/www/test/public/upload
    (따라서 응용 프로그램은 다음과 같이 새 파일을 만듭니다 test-www:test-www.

따라서 웹 응용 프로그램 프로세스가 허위 일 경우 그룹 읽기가 필요한 특정 파일 만 읽으며 uploaddir에만 쓸 수 있습니다 . 나는 강하게 가지고 추천 할 것 upload와 파일 시스템에 디렉토리 noexec,nodev,nosuid mount옵션을 해당 디렉토리에 새로운 희한 파일에 대한 지속적인 모니터링이 플러스도에서 새로운 프로세스 모니터링 test-wwwUID를.

Linux에서는 ACL을 사용하여 권한을 더 잘 조정할 수 있습니다. 둘 이상의 사람이 웹 데이터를 업로드해야하는 경우 웹 데이터 파일을 업로드하는 데 사용 된 계정과 사람 계정을 분리하는 것이 좋습니다. 예를 들어 새 계정을 만들려면 test-upload테스트 사용자는 ssh 키를 관리하여 어떤 사람이 ssh / sftp를 사용할 수 있는지 제한합니다. 옵션을 sshd_config알고 ExposeAuthInfo있으므로 데이터를 업로드하는 데 사용 된 ssh 키를 기록하도록 구성 할 수 있습니다.

나는 대부분의 웹 호스팅 서비스가 권한 분리에 대해 신경 쓰지 않는다는 것을 의심합니다.