source
é um shell embutido, portanto, não pode ser executado sem o shell. No entanto, por padrão, sudo
não executa o shell. De sudo
Process model
When sudo runs a command, it calls fork(2), sets up the execution environment as described above, and calls the execve system call in the child process
Se você deseja executar explicitamente o shell, use -s
option:
# sudo -s source /etc/environment
Que ainda é inútil porque depois que o shell é encerrado, as mudanças no ambiente são perdidas.