Se você usar sessões do D-Bus e ConsoleKit (que é um componente padrão da maioria dos sistemas desktop modernos, então você pode já tê-lo instalado), uma abordagem poweroff do sistema que é ligeiramente mais limpo que sudo shutdown
e que não requer nenhum tipo de privilégio de root é:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" \
/org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
Da mesma forma, um sistema restart pode ser realizado com
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" \
/org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
Você pode colocar esses em scripts e adicionar atalhos ou entradas de menu para chamá-los.