Alterando o caminho suEXEC / CentOS 6

2

Eu instalei recentemente o httpd em um servidor Centos 6. Pelo que vejo, o suEXEC foi compilado com os valores abaixo;

 -D AP_DOC_ROOT="/var/www"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="apache"
 -D AP_LOG_EXEC="/var/log/httpd/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=500
 -D AP_USERDIR_SUFFIX="public_html"

Eu queria saber se existe uma maneira de alterar esses valores sem compilar o Apache do zero?

    
por compixtr 14.06.2013 / 18:08

1 resposta

1

Não é possível aumentar as opções que uma ferramenta foi cumprida, então você pode recompila-la se precisar de mais opções adicionadas. Com um pacote como o httpd (Apache) em uma distro baseada no RedHat, isso não é t muito ruim.

Você basicamente precisará de três coisas para fazer isso:

  1. dependências instaladas para httpd
  2. versão RPM de origem do httpd
  3. uma área de rpmbuild

dependências

Você pode usar a ferramenta yum-builddep para ajudar no esforço. Esta ferramenta fará o download de todos os pacotes necessários para criar o & instalar um determinado RPM. Então você precisa obter uma versão do httpd RPM. Mas certifique-se de obter sua versão de origem normalmente chamada de arquivos src.rpm. Por exemplo:

mypackage-1.0.0-1.src.rpm

RPM de origem

Para o CentOS 6.2, você pode fazer o download desse RPM de origem: - link

construir ambiente

Eu normalmente uso uma ferramenta para configurar isso para mim, rpmdev-setuptree .

$ yum install rpmdevtools
$ rpmdev-setuptree

Agora altere os diretórios para a área recém-construída do rpmbuild e instale o RPM de origem para que possamos começar a modificar como ele é construído:

$ cd ~/rpm
$ rpm -ivh httpd-2.2.15-15.el6.centos.src.rpm

Como precisamos editar o arquivo httpd.spec . Este é o arquivo que detalha como o eventual RPM binário deve ser construído:

$ nano SPEC/httpd.spec

Você precisará encontrar uma seção neste arquivo onde o configure está sendo chamado. Eu costumo procurar pela string --prefix . Esta próxima etapa é onde você pode adicionar suas modificações, o que mudará a forma como suexec get foi criado.

excerto da sub-rotina de configuração de httpd.spec

../configure \
        --prefix=%{_sysconfdir}/httpd \
        --exec-prefix=%{_prefix} \
        --bindir=%{_bindir} \
        --sbindir=%{_sbindir} \
        --mandir=%{_mandir} \
        --libdir=%{_libdir} \
        --sysconfdir=%{_sysconfdir}/httpd/conf \
        --includedir=%{_includedir}/httpd \
        --libexecdir=%{_libdir}/httpd/modules \
        --datadir=%{contentdir} \
        --with-installbuilddir=%{_libdir}/httpd/build \
        --with-mpm=$mpm \
        --with-apr=%{_prefix} --with-apr-util=%{_prefix} \
        --enable-suexec --with-suexec \
        --with-suexec-caller=%{suexec_caller} \
        --with-suexec-docroot=%{contentdir} \
        --with-suexec-logfile=%{_localstatedir}/log/httpd/suexec.log \
        --with-suexec-bin=%{_sbindir}/suexec \
        --with-suexec-uidmin=500 --with-suexec-gidmin=100 \
        --enable-pie \
        --with-pcre \
        $*

Salve o arquivo e agora você está pronto para criar sua versão do httpd.

RPM de origem do edifício

O comando a seguir criará seu RPM:

$ rpmbuild -ba SPEC/httpd.spec

Se tudo der certo, você deve ficar com uma nova versão do RPM no diretório RPM aqui: RPM/httpd-2.2.15-15.el6.centos.x86_64.rpm .

Agora você pode instalá-lo como qualquer outro RPM normal.

Referências

por 14.06.2013 / 21:41