Si no le importa hacer un poco de shell shell y ha encontrado un script que puede ejecutar desde la Terminal que cambiará a Windows, puede crear un script que contenga ese comando (y tal vez un reboot
comando que lo sigue). Llamémoslo winreboot.sh
por el bien del argumento. Luego, cambie el propietario de ese script a root
, márquelo como ejecutable y colóquelo en una ubicación útil (como /usr/local/bin/
). Si lo ejecutas así:
sudo /usr/local/bin/winreboot.sh
Le pedirá la contraseña de administrador, y luego hará su trabajo, ya que el script se ejecuta como root. Sin embargo, sudo
mantiene una lista de reglas sobre las cuales los usuarios pueden ejecutar los comandos que usan sudo
, y si se requiere o no una contraseña. Este conjunto de reglas se almacena en /etc/sudoers
; desafortunadamente, la sintaxis es muy confusa, por lo que se supone que no debe editar el archivo directamente, sino que debe usar
sudo visudo
en su lugar, que comprueba su sintaxis al guardar. Tenga en cuenta que esto utiliza vim para la edición, que tal vez quiera leer antes de ejecutarlo, puede ser muy confuso si no está acostumbrado. (para salir de él sin guardar, presione <ESC>
y escriba :q!
seguido de la tecla <ENTER>
) Si no puede continuar con vim, edite una copia de sudoers con su editor favorito y verifique la sintaxis con visudo -f /path/to/sudoers-copy
. Si está bien, vuelve a copiarlo sobre el original.
Volviendo al punto, la regla que desea agregar a los sudoers es que desea que los usuarios del grupo admin
puedan ejecutar su script como root sin una contraseña. Eso se ve así:
%admin localhost=(ALL) NOPASSWD: /usr/local/bin/winreboot.sh
Agrégalo como la última línea de sudoers. Si ahora intenta ejecutar su script con sudo
(debe hacerlo con una ruta absoluta), NO le pedirá una contraseña y solo la ejecutará. Envuelva el comando sudo en otro script de shell, haga un enlace desde el escritorio o desde cualquier lugar, y su hijo de 6 años debería poder cambiar a Windows en cualquier momento.
Espero que eso ayude, avíseme si algo no está claro.