O script --client-connect é executado como o usuário OpenVPN não privilegiado especificado pelo parâmetro --user .
Você pode verificar isso adicionando essas linhas à parte superior do arquivo --client-connect e revisando a saída gravada em /tmp/ov.log após uma conexão bem-sucedida
#!/bin/bash
exec >>/tmp/ov.log 2>&1
chmod 666 /tmp/ov.log 2>/dev/null
echo
date
id
echo "PATH=$PATH"
# Payload
bgpctl reload
route add -net "$ifconfig_pool_remote_ip/30" -interface "$dev" -static
# All done
true
No meu sistema, usando as diretivas --user nobody e --group nogroup , recebo esta saída:
Tue Jun 9 15:00:45 BST 2015
uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup)
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
...
Como você os recebe como o grupo root e wheel , presumivelmente você não está usando a diretiva --user ou --group .
Também é importante verificar se PATH contém os diretórios necessários para os comandos que você deseja executar.