安装后 backuppc 缺少菜单项

安装后 backuppc 缺少菜单项

问题:backuppc 的 Web 界面缺少必要的菜单项。缺少“编辑主机”、“编辑配置”等项。

backuppc安装在 Ubuntu 14.04.4 LTS 上。我甚至完全删除了该backuppc应用程序(使用dpkg --purge backupppc),然后重新安装它(apt-get install backuppc)。菜单项仍然缺失。

截图链接

当在 CLI 中直接运行 /usr/lib/backuppc/cgi-bin/index.cgi 时,我确实得到了缺失的菜单项。index.cgi 的 HTML 输出包括:

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

我尝试以 root、backuppc 和 www-data 的身份在命令行上运行 de index.cgi,所有输出都相同。(我必须为 www-data 启用登录 shell)

backuppc但是,从浏览器的控制台访问管理员时缺少此功能。

文件 /etc/backuppc/config.pl 包含:

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

当我改为$Conf{CgiAdminUsers}'*'不是 时'backuppc',它可以工作,但我不想向所有用户授予管理员访问权限,因此这只能作为临时解决方法。

通过安装 backuppc 包,apache 的配置是默认的:

<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>

以上内容位于/etc/backuppc/apache.conf其中,符号链接自/etc/apache2/conf.d/backuppc.conf

为了分析问题,我添加了以下脚本/usr/lib/backuppc/cgi-bin/debug.cgi

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

error.log身份验证后,在 apache 中写入的输出为:

My userid is 33 (www-data)

因此,用户 ID 被错误地传递给了 BackupPc。传递的用户 ID 正是www-data我预期传递给 BackupPc 的经过身份验证的用户 ID,因为backuppc后者是我用来登录的。所以,这可能是 apache 配置问题。

我添加了第二个 cgi 脚本printenv.cgi,用于输出环境变量。该脚本包含:

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

输出内容如下:

REMOTE_USER="$REDIRECT_REMOTE_USER="

其中,backuppc 要求此环境变量REMOTE_USER包含经过身份验证的用户(backuppc在我的示例中)。结果发现,不正确的设置REMOTE_USER是导致问题的原因。

诊断脚本被放置在 中,/usr/lib/backuppc/cgi-bin/并从 进行符号链接/usr/share/backuppc/cgi-bin/。它们的所有权为backupc:www-data,并被授予 chmoda+xu+s权限。

答案1

根据 的输出,我在下面的配置脚本中REMOTE_USER="$REDIRECT_REMOTE_USER="执行了 grep 操作。我发现一个文件包含以下内容:REMOTE_USER/etc/apache2/conf-enabled.conf

SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER

.conf脚本与 backuppc 无关。在 REMOTE_USER 行前面加上#,然后重新启动服务

# apachtectl restart
# service backuppc restart

解决了这个问题。

相关内容