As variáveis do shell são interpretadas pelo seu shell e nunca são vistas pelo sudo ou qualquer outro programa lançado com elas. Ou seja, ao fazer foo=bar; echo "$foo" , echo nunca sabe que os dados que foram passados vieram de uma variável chamada "foo", porque o shell o expande antes mesmo de echo ser executado. Por esse motivo, não é possível fazer com que as variáveis do shell funcionem de maneira transparente em seu arquivo sudoers.
Além disso, como $LOGNAME pode ser qualquer coisa, o que você deseja fazer é essencialmente equivalente a usar uma estrela depois de /home no seu sudoers , independentemente de você usá-lo ou não. Eu não recomendaria fazer isso, porque você pode essencialmente copiar qualquer coisa para qualquer lugar como root, o que é um enorme risco de segurança (já que $LOGNAME pode conter .. ). Por fim, você diz que não quer usar * , mas a ação que você está querendo tomar é igualmente perigosa.
A melhor opção é permitir o acesso de leitura para o que estiver em /home/$LOGNAME/file_source e o acesso de gravação para esses usuários a /var/www . Você pode ter um grupo www-logs que tenha leitura de grupo e gravação de grupo para esses caminhos, respectivamente.