2012-05-15 33 views

Respuesta

24

Engendrando una sesión expect dentro de su secuencia de comandos bash es típicamente cómo automatizar las indicaciones interactivas.

p. Ej.

expect -c " 
spawn sudo setpci -s 00:02.0 F4.B=00 
expect -nocase \"password:\" {send \"$PASS\r\"; interact} 
" 

Tenga en cuenta que este no es el enfoque que se recomienda en este caso, ya que es un enorme agujero de seguridad para almacenar la contraseña de root en una escritura del golpe.

La solución correcta sería editar su /etc/sudoers/ para que no le pida una contraseña para ese binario.

#in /etc/sudoers 
neohexane ALL=(ALL) NOPASSWD : /usr/bin/setpci 
+1

¿Hay alguna razón por la que no puede utilizar el enfoque '/ etc/sudoers /'. Esa sería mi recomendación. – cmh

+3

"no se recomienda" parece una subestimación. Quitaría la solución esperada por completo. A menos que sea su propia caja personal, no debería dejar la contraseña de root en un archivo de texto sin formato. – chepner

+2

Creo que vale la pena mantener como un ejemplo de cómo usarlo. Voy a enfatizar cómo no es recomendado. – cmh

Cuestiones relacionadas