O problema é como você coloca o comando no Icinga2.
Quando você escreve:
command = [ "sudo", "-u backuppc", PluginContribDir + "/check_backuppc" ]
Isto dá ao sistema uma lista de argumentos, que coloca
"-u backuppc"
como um argumento único . Agora o sudo tenta encontrar o usuário "backuppc", com 2 espaços.
Você deve escrever: (2 argumentos)
"-u", "backuppc"
Ou: (argumento único sem espaço)
"-ubackuppc"
Geralmente os espaços são destinados a separar argumentos, mas apenas quando analisados por um shell (como o bash).
Icinga2 tenta executar o comando de forma segura, para que a injeção do código shell não aconteça.