É um pouco estranho, mas o Sudo muda as variáveis de ambiente, então talvez o chef-solo seja descartado por isso.
Como root: env
e, em seguida, execute sudo env
Você verá que as variáveis são completamente diferentes.
Outros toughts
Aqui estão algumas informações da página man:
If sudo is run by root and the SUDO_USER environment variable is set, sudo will use this value to determine who the actual user is. This can be used by a user to log commands through sudo even when a root shell has been invoked. It also allows the -e flag to remain useful even when being run via a sudo-run script or program. Note however, that the sudoers lookup is still done for root, not the user specified by SUDO_USER.
O seu SUDO_USER está definido antes de você executar o sudo? Verifique com echo $SUDO_USER
.
A tabela sudoers ainda é consultada mesmo que você seja root, então verifique seu arquivo sudoers.