Si no te importa hacer un poco de shell scripting, y has encontrado un script que puedes ejecutar desde la Terminal que cambiará a Windows, puedes crear un script que contenga ese comando (y quizás un reboot
que le sigue). Llamémoslo winreboot.sh
por el bien del argumento. Entonces cambie el propietario de ese script por root
marque como ejecutable y colóquelo en una ubicación útil (como /usr/local/bin/
). Si lo ejecutas así:
sudo /usr/local/bin/winreboot.sh
Te pedirá la contraseña de administrador, y luego debería hacer lo suyo, ya que el script se ejecuta entonces como Root. Sin embargo, sudo
mantiene una lista de reglas sobre qué usuarios pueden ejecutar qué comandos utilizando 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 debes editar el archivo directamente, sino que debes usar
sudo visudo
en su lugar, que comprueba su sintaxis al guardar. Tenga en cuenta que esto utiliza vim para la edición, que es posible que desee leer antes de ejecutarlo - puede ser muy confuso si usted no está acostumbrado. (para salir sin guardar, pulse <ESC>
y escriba :q!
seguido por el <ENTER>
Si no puedes hacerlo con vim, edita una copia de sudoers con tu editor favorito y comprueba la sintaxis con visudo -f /path/to/sudoers-copy
. Si está bien, cópialo sobre el original.
Volviendo al punto, la regla que quieres añadir a sudoers es que quieres que los usuarios en el admin
para poder ejecutar su script como Root sin contraseña. Eso se ve así:
%admin localhost=(ALL) NOPASSWD: /usr/local/bin/winreboot.sh
Añádelo como la última línea de sudoers. Si ahora intenta ejecutar su script con sudo
(debe hacerlo con la ruta absoluta), NO pedirá una contraseña y simplemente lo ejecutará en su lugar. Envuelva el comando sudo en otro shell script, enlace a él desde el escritorio o donde sea, y su hijo de 6 años debería poder cambiar a Windows en cualquier momento.
Espero que esto ayude, hazme saber si algo no está claro.