[BASH]Hacer shutdown sin contraseña

Imagen de NathanD
0 puntos

Hola.

Estoy programando una especie de "shell" bajo BASH.
Una de las funcionalidades que tiene, es que el usuario, introduciendo el comando "apagar", pueda apagar la PC sin que se le pida su contraseña.

El usuario que realiza ésta operación no puede tener privilegios de root.

Sé que se podría hacer con el sudoers, pero me pregunto si hay alguna forma más elegante o sencilla de hacerlo, ya que éste método dejaría un hueco de seguridad que hay que tapar a cada rato.

Saludos.

Imagen de Alcruz
+1
0
-1

No le veo problemas en usar sudoers, lo puedes especificar para cada usuario y con el hostname del equipo, yo lo tengo mediante init de la siguiente manera
sudo su
echo 'usuario hostname=NOPASSWD: /sbin/init' >> /etc/sudoers
Si te quedan dudas hostname lo puedes sacar desde
gedit /etc/hostname
Luego, cada usuario autorizado podrá apagar sin que se le pida contraseña mediante
sudo init 0
también podrá reiniciar mediante
sudo init 6
Si en vez de init quieres usar shutdown puedesponer
sudo su
echo 'usuario hostname=NOPASSWD: /sbin/shutdown' >> /etc/sudoers
Luego podrán ejecitar
sudo shutdown

+1
0
-1
Imagen de Goyo
+1
0
-1

El problema es que de ese modo ya no es una funcionalidad del software sino de un administrador del sistema.

+1
0
-1
Imagen de cousteau
+1
0
-1

Hay una opción en chmod para que "al ejecutar un programa, se ejecute como el propietario de dicho programa" (bandera SETUID: chmod u+s programa). Creo que con esto se pueden hacer programas que usan sudo sin ser sudo. Pero ten cuidado: si el programa se puede modificar para que haga algo más, cualquiera que lo ejecute podría usarlo como puerta trasera para hacer eso. Es decir, para que sea más seguro tendría que ser un programa pequeño al que llama el programa principal, no todo el programa principal el que tenga este modo.
Me parece que esta opción no está muy recomendada.

Googleando salen estos resultados:
http://how-to.wikia.com/wiki/How_to_allow_non-super_users_to_shutdown_co...
http://www.spencerstirling.com/computergeek/shutdown.html
que parecen algo antiguos pero probablemente sepan mejor lo que están haciendo que yo.

En cuanto a cómo lo hace el ordenador para dejarte apagar sin permisos de sudo cuando le das al menú de apagar, ni idea, pero creo que es una característica de Gnome o el entorno de escritorio.

+1
0
-1

«E: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem» significa que dpkg se ha interrumpido y que tienes que ejecutar "sudo dpkg --configure -a" para corregir el problema.
Imagen de Alcruz
+1
0
-1

Recuerdo haber leído que si se ejecuta un script en donde se hace referencia a un ejecutable que cuyos permisos fueron nodificados con setuid, simplemente no lo toma en cuenta, esta restricción está definida por el kernel, por lo que no se puede alterar y todo esto es justamente por motivos de seguridad , esta es una de las muchas razones por las que recomiendan configurar yadecuadamente el sudoers, además si modificas el setuid, va a durar hasta que se actualice el ejecutable , por eso uso el método de configurar el sudoers y nunca tuve nir problemas.
Te recomiendo leer referente al uso avanzado de sudo, es una gran herramienta, pero como tosdo, es necesario saber usarla.

+1
0
-1