>

여러 사람이 웹 사이트를 호스팅하는 아파치 웹 서버가 있는데 주로 PHP 기반 웹 사이트입니다.

문제는이 사람들이 자신의 웹 사이트 파일을 업로드 할 때 모든 사람에게 읽기 권한이있어서 매우 위험 할 수있는 데이터베이스 사용자 데이터가 포함 된 파일을 포함하여 모든 사람의 파일을 읽을 수 있다는 것입니다.

서버로 ssh하고 다른 사람의 파일을 'cat'하지만 SSH를 비활성화해도 문제가 해결되지는 않습니다. PHP 코드를 이와 같이 수행 할 수 있기 때문입니다.

echo file_get_contents( '/home/someotheruser/public_html/config.php' );

이 문제를 해결하는 가장 좋은 방법은 무엇입니까?

  • 답변 # 1

    아파치가 X 개의 사용자 콘텐츠를 볼 수 있도록이 위치를 설정할 수있는 유일한 두 가지 방법이지만, 동일한 사용자는 서로의 콘텐츠에 대해 눈을 멀게합니다. 사용자는 Apache가 ACL을 통해 또는 그 구성원임을 알 수 있습니다.

    방법 # 1-그룹 사용

    각 사용자를 고유 한 그룹 (group1, group2 등)에 넣으십시오. 그런 다음 각 그룹에 Apache를 추가하십시오. 이것은 chgrp 를 사용하여 수행 할 수 있습니다  그리고 chmod  디렉토리와 파일에 적절한 그룹 + 권한을 부여합니다. 추가 된 새 파일에 적절한 그룹이 자동으로 할당되도록 이러한 디렉토리에서도 GUID 비트를 설정하고 싶을 것입니다.

    참고 :이 방법은 사용자가 파일을 더 이상 아파치에서 볼 수 없도록 상당히 쉽게 끊어지지 않고 끊어 질 수 있습니다. 디렉토리를 유지 관리하는 데 도움이되는 몇 가지 별칭 또는 스크립트를 제공하는 것이 좋습니다.

    방법 # 2-ACL 사용

    Apache의 그룹 ID를 각 사용자의 컨텐츠 디렉토리에 추가 할 수 있습니다.

    $ whoami
    saml
    $ groups
    saml wheel wireshark
    
    

    perms + 소유권으로 디렉토리 설정

    $ sudo mkdir --mode=u+rwx,g+rs,g-w,o-rwx somedir
    $ sudo chown saml.apache somedir
    $ ll -d somedir/
    drwxr-s---. 2 saml apache 4096 Feb 17 20:10 somedir/
    
    

    이전

    $ ll -d somedir
    drwxr-s---. 2 saml apache 4096 Feb 17 20:46 somedir
    
    

    권한 설정

    $ sudo setfacl -Rdm g:apache:rx somedir
    $ ll -d somedir/
    drwxr-s---+ 2 saml apache 4096 Feb 17 20:46 somedir/
    
    

    와이즈 비즈주의 사항  결국이 디렉토리에는 ACL이 적용되었다는 의미입니다.

    +
    
    

    이후

    $ getfacl somedir
    # file: somedir
    # owner: saml
    # group: apache
    # flags: -s-
    user::rwx
    group::r-x
    other::---
    default:user::rwx
    default:group::r-x
    default:group:apache:r-x
    default:mask::r-x
    default:other::---
    
    

    기본 권한이있는 알림 ( $ touch somedir/afile $ ll somedir/afile -rw-r-----+ 1 saml apache 0 Feb 17 21:27 somedir/afile $ ) 권한이 ( setfacl -Rdm )가되도록 설정 ) 기본적으로 ( r-x ). 이것은 모든 새 파일에 g:apache:rx 만 갖도록합니다.  비트 사용.

    r

  • 이전 text processing - 로그를 스캔하고 특정 데이터를 가져 와서 출력 디렉토리를 생성하는 스크립트
  • 다음 linux - sda1을 더 크게 만드는 방법/sdb1에서 기본 다운로드 파일 사용