web-dev-qa-db-fra.com

backuppc a des éléments de menu manquants après l'installation

Problème: backuppc manque des éléments de menu essentiels dans son interface Web. Les éléments "Modifier les hôtes", "Modifier la configuration", etc. sont manquants.

backuppc est installé sur Ubuntu 14.04.4 LTS. J'ai même complètement supprimé l'application backuppc (en utilisant dpkg --purge backupppc), Et l'ai réinstallée (apt-get install backuppc). Les éléments du menu sont toujours manquants.

link-to-screenshot

Lorsque vous exécutez /usr/lib/backuppc/cgi-bin/index.cgi directement dans la CLI, j'obtiens les éléments de menu manquants. La sortie HTML de index.cgi comprend:

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

J'ai essayé d'exécuter de index.cgi sur la ligne de commande en tant que root, backuppc et www-data, tous ayant la même sortie. (J'ai dû activer un shell de connexion pour www-data)

Cependant, cela manque lors de l'accès à l'administrateur backuppc à partir de la console dans le navigateur.

Le fichier /etc/backuppc/config.pl contient:

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

Lorsque je change $Conf{CgiAdminUsers} En '*' Au lieu de 'backuppc', Cela fonctionne, mais je préfère ne pas donner l'accès administrateur à tous les utilisateurs, donc cela ne peut servir que de solution temporaire.

La configuration d'Apache est par défaut en installant le package 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>

Le contenu ci-dessus est dans /etc/backuppc/Apache.conf Qui est symboliquement lié à /etc/Apache2/conf.d/backuppc.conf.

Pour l'analyse des problèmes, j'ai ajouté le script suivant à /usr/lib/backuppc/cgi-bin/debug.cgi:

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

Le résultat, écrit dans Apache error.log, Après authentification, était:

My userid is 33 (www-data)

L'ID utilisateur est donc incorrectement transmis à BackupPc. L'ID utilisateur transmis est www-data Où je m'attendais à ce que l'ID utilisateur authentifié, transmis à BackupPc soit backuppc car ce dernier est celui avec lequel je me connectais. Il s'agit donc probablement d'un problème de configuration d'Apache.

J'ai ajouté un deuxième script cgi printenv.cgi Qui produit les variables d'environnement. Le script contient:

#!/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";
}

La sortie contenait:

REMOTE_USER="$REDIRECT_REMOTE_USER="

où backuppc requiert que cette variable d'environnement REMOTE_USER contienne l'utilisateur authentifié (backuppc dans mon exemple). Il s'avère qu'un REMOTE_USER Incorrect est la cause du problème.

Les scripts de diagnostic ont été placés dans /usr/lib/backuppc/cgi-bin/ Et ont été liés symboliquement à partir de /usr/share/backuppc/cgi-bin/. Leur propriété était backupc:www-data Et ils ont reçu les autorisations chmod a+x Et u+s.

1
Stijn Haezebrouck

Avec la sortie de REMOTE_USER="$REDIRECT_REMOTE_USER=", J'ai fait un grep sur REMOTE_USER dans les scripts de configuration ci-dessous /etc/Apache2/conf-enabled. J'ai trouvé un .conf fichier contenant:

SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER

Le .conf le script n'était pas lié à backuppc. Préfixer la ligne REMOTE_USER avec #, puis redémarrage des services

# apachtectl restart
# service backuppc restart

résolu le problème.

0
Stijn Haezebrouck