Это зависит от программы, которую вы используете для отправки пакетов wake-on-lan. Некоторые программы используют необработанные пакеты, и поэтому требуют root. Другие программы встраивают волшебную последовательность пробуждения в стандартный пакет UDP, и поэтому не требуют root.
Теоретически не должно иметь значения, какой пакет вы используете, если внутри него есть волшебная последовательность пробуждения по локальной сети. На практике я помню, что мой старый рабочий стол отказывался просыпаться, когда я использовал скрипт Python, который отправлял UDP-пакеты, но работал нормально, если я использовал программу на C, которая использовала необработанные пакеты.