backuppc possui itens de menu ausentes após a instalação

1

Problema: o backuppc está faltando itens de menu essenciais em sua interface da web. Itens "Edit Hosts", "Edit Config" etc estão faltando.

backuppc está instalado no Unbuntu 14.04.4 LTS. Eu mesmo removi completamente o aplicativo backuppc (usando dpkg --purge backupppc ), e o reinstalei (apt-get install backuppc). Itens de menu ainda estão faltando.

Aoexecutar/usr/lib/backuppc/cgi-bin/index.cgidiretamentenaCLI,receboositensdemenuausentes.AsaídaHTMLdeindex.cgiinclui:

<ahref="?action=editConfig">Edit Config</a>
<a href="?action=editConfig&amp;newMenu=hosts">Edit Hosts</a>

Eu tentei executar de index.cgi na linha de comando como root, backuppc e www-data, todos com a mesma saída. (Eu tive que habilitar um shell de login para www-data)

No entanto, isso está faltando ao acessar o backuppc admin do console no navegador.

O arquivo /etc/backuppc/config.pl contém:

$Conf{CgiAdminUserGroup} = 'backuppc';
$Conf{CgiAdminUsers}     = 'backuppc';

Quando altero $Conf{CgiAdminUsers} para '*' em vez de 'backuppc' , funciona, mas prefiro não conceder acesso de administrador a todos os usuários, de modo que isso só sirva temporariamente como solução alternativa.

a configuração do apache é padrão instalando o pacote backuppc:

<Directory /usr/share/backuppc/cgi-bin/>
        AllowOverride None
        Allow from all

        Options ExecCGI FollowSymlinks
        AddHandler cgi-script .cgi
        DirectoryIndex index.cgi

        AuthUserFile /etc/backuppc/htpasswd
        AuthType basic
        AuthName "BackupPC admin"
        require valid-user
</Directory>

O conteúdo acima está em /etc/backuppc/apache.conf , que está simbolicamente vinculado a partir de /etc/apache2/conf.d/backuppc.conf .

Para análise de problemas, incluí o seguinte script em /usr/lib/backuppc/cgi-bin/debug.cgi :

#!/usr/bin/perl
printf("My userid is $> (%s)\n", (getpwuid($>))[0]);

A saída, escrita no apache error.log , após a autenticação, foi:

My userid is 33 (www-data)

Assim, o ID do usuário é passado incorretamente para BackupPc. O ID do usuário passado é www-data , onde eu esperava que o ID do usuário autenticado, passado para o BackupPc, fosse backuppc , pois o último é o que eu usei para efetuar login. Então, provavelmente, esse é um problema de configuração do apache.

Eu adicionei um segundo script cgi printenv.cgi que gera as variáveis de ambiente. O script contém:

#!/usr/bin/perl
print "Content-type: text/plain\n\n";
foreach $var (sort(keys(%ENV))) {
    $val = $ENV{$var};
    $val =~ s|\n|\n|g;
    $val =~ s|"|\"|g;
    print "${var}=\"${val}\"\n";
}

A saída contida:

REMOTE_USER="$REDIRECT_REMOTE_USER="

em que backuppc exige que essa variável de ambiente REMOTE_USER contenha o usuário autenticado ( backuppc em meu exemplo). Acontece que um incorreto REMOTE_USER é a causa do problema.

Os scripts de diagnóstico foram colocados em /usr/lib/backuppc/cgi-bin/ e foram simbolicamente vinculados de /usr/share/backuppc/cgi-bin/ . Sua propriedade era backupc:www-data e eles receberam permissões chmod a+x e u+s .

    
por Stijn Haezebrouck 27.03.2016 / 13:29

1 resposta

0

Com a saída de REMOTE_USER="$REDIRECT_REMOTE_USER=" , fiz um grep em REMOTE_USER nos scripts de configuração abaixo de /etc/apache2/conf-enabled . Eu encontrei um arquivo .conf que continha:

SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER

O script .conf não estava relacionado ao backuppc. Prefixando a linha REMOTE_USER com # e, em seguida, reiniciando os serviços

# apachtectl restart
# service backuppc restart

resolveu o problema.

    
por Stijn Haezebrouck 27.03.2016 / 23:44