ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 일반계정으로 Apache 80포트 기동
    IT/WEBWAS 2020. 7. 6. 13:17
    반응형

    일반적으로 root 계정이 아닌 계정으로 80포트를 사용한 WEB 기동시 다음과 같은 메시지가 확인된다.

    -------------------------------------------------------------------------------------------------------------------

    (13)Permission denied: AH00072: make_sock: could not bind to address 127.0.0.1:80 no listening sockets available, shutting down AH00015: Unable to open logs

    -------------------------------------------------------------------------------------------------------------------

    ( * 참고 :  1024 이하의 포트는 root권한으로만 사용가능하다.)

     

    Apache HTTP Server 사용시 다음과 같은 방법으로 root외 계정으로 기동가능하다.

     

    특정 계정(여기서는 apaadm) 외 다른 계정으로는 기동되지 않도록 할 수 있는 방법은 다음과 같다.(Linux)

    =====================================================================

    1. httpd.conf 수정 : User 및 Group 을 기동할 계정으로 변경한다. 여기서는 apaadm 계정으로 기동하는 경우이다.

    --------------------------------

    User apaadm

    Group apaadm

    --------------------------------

    (* User/Group을 Default 값인 nobody로 설정시는 문제없음)

     

    2. httpd 파일 권한자 변경 : 

    1) ps -ef | grep httpd 명령어 수행을 통해 httpd 파일의 경로로 이동

      * 여기서는 /engn/apache2.4/bin으로 확인되었을 때의 경우임.

    2) chown 명령어를 통해 httpd 파일에 대한 소유자 root 그룹 apaadm 으로 변경한다.

     root: /engn/apache2.4/bin/ > chown root:apaadm httpd

     

     ** 만약 엔진 디렉토리의 권한을 root:root로 설정해 놓은 상태라면, 엔진 전체에 대해 권한 변경이 우선되어야 한다.

      ex. root: /engn/apache2.4/bin/ > chown -R apaadm:apaadm /engn/apache2.4 

     

    3. 특수권한 부여 : chmod +s 파일명 형태(SetUID/SetGID 권한 부여) 로 권한 부여한다.

    root: /engn/apache2.4/bin/ > chmod +s httpd

     

    4. 기타 파일 수정 : root로 기동된 apache 중지 후 log 디렉토리 하위의 root:root로 생성된 파일들의 권한을 apaadm 소유로 변경한다.

    =====================================================================

     

    apaadm 으로 기동시 80포트로 기동가능하며, 기동 후 netstat -an | grep 80 으로 확인가능하다.

    프로세스의 경우, ps -ef | grep httpd 로 확인시 부모 프로세스는 root로/나머지는 apaadm 계정으로 기동되어 있음을 확인가능하다.

    반응형
Designed by Tistory.