Depende do programa que você usa para enviar pacotes wake-on-lan. Alguns programas usam pacotes brutos e, portanto, requerem raiz. Outros programas incorporam a sequência de ativação mágica em um pacote UDP padrão e, portanto, não requerem raiz.
Em teoria, não importa o tipo de pacote que você usa, desde que haja a sequência mágica de wake-on-lan em algum lugar dentro dele. Na prática, pareço lembrar que minha antiga área de trabalho se recusou a ativar quando eu usei um script Python que enviou pacotes UDP, mas funcionou bem se eu usasse um programa em C que usasse pacotes brutos.