2011-11-13 12 views

Respuesta

8

En definitiva, si no le importa hacer ese comando en particular 'libre para su uso' para ese usuario en particular:

Ver básicamente mi otra respuesta aquí: Shell script - Sudo-permissions lost over time

Lo más sencillo es que puede funcionar

myuser = NOPASSWD: /sbin/ifconfig 

Además, usted podría sudo un comando arbitrario en el mismo terminal (TTY/vty), y sudo depositará la autenticación por un tiempo (o hasta que sudo -k), por lo que puede iniciar el script y 'recordará' las credenciales de su invocación anterior sudo. A veces hago esto al componer las tuberías con sudo (sólo les precedido con sudo true)

+0

¿Quiso decir algo como nombre de usuario ALL = NOPASSWD:/sbin/ifconfig en el archivo sudoers ??? Lo intenté pero no funciona –

+1

Sí. ¿Incluyó (1) los espacios (2) usa 'sudoedit' (o' visudo')? Además, NO recomiendo totalmente el uso de ALL para las subvenciones sin contraseña.** ADVERTENCIA ** Cualquier otra cosa que no sean las herramientas "bendecidas" (como 'visudo') * HARÁ * que su sistema no se pueda usar cuando arruine el archivo sudoers (a menos que tenga la contraseña de root para arreglar las cosas de nuevo) – sehe

+0

@sehe Acepto , usar ALL es bastante peligroso. – Tilo

1

Usted necesita una línea de configuración sudo que permite que el comando sea ejecutado por el usuario sin necesidad de solicitud de contraseña.

Puede desactivar la solicitud de contraseña para todo un usuario (más peligroso, pero quizás bien si es el único usuario en el escritorio - NO hacer esto en un servidor):

yourusername ALL=(ALL) NOPASSWD: ALL 

o más restrictiva , que sólo permite el comando ifconfig:

yourusername ALL= NOPASSWD: /sbin/ifconfig 

Ver: man sudoers, man sudo

http://ubuntuforums.org/showthread.php?t=1132821

http://www.linuxhelp.net/guides/sudo/

+0

Lo intenté, y parece que me he quedado atascado con un nuevo error sudo: error de parse en/etc/sudoers cerca de la línea 18 sudo: no se encontraron fuentes de sudoers válidas, saliendo mientras intentaba editar el archivo sudoers. ¿cómo lo hago ahora? –

+0

lo que significa que tiene un error de sintaxis en la línea 18 de su archivo/etc/sudoers - necesita corregirlo o comentarlo – Tilo

+0

¿puede agregar la línea de su archivo/etc/sudoers a su pregunta? También: verifique el enlace que mencioné en los foros de Ubuntu – Tilo

3
echo "password" | sudo -S ifconfig eth0 hw ether 00:99:99:00:00:00 
+0

Si bien esto funcionará, es increíblemente inseguro. Antes que nada, pueden leer la contraseña del script que contiene el comando. En segundo lugar, la contraseña se almacenará en lugares como historiales de shell. Como regla general, nunca coloque una contraseña en una línea de comando. Deje que el programa lo solicite. Para su caso de uso específico, la mejor opción es editar el archivo de temblores para no requerir una contraseña al ejecutar el comando ifconfig. –

0

Una forma más segura de hacerlo sería:

sudo visudo -f sudoers 

continuación, agregue

myuser ALL=NOPASSWD:/sbin/ifconfig 

a la ventana de edición que apareció. Una vez que haya terminado, utilice :x dejar de fumar

0

Aquí es un cuadro de diálogo Zenity que hace algo similar al comentario de Tman,
pesar de que la contraseña no se almacena en la historia ... Esto puede ser una buena alternativa

#!/bin/bash 
ENTRY=`zenity --password` 
case $? in 
0) 
pw=$(echo $ENTRY | cut -d'|' -f1) 
;; 
1) 
echo "Stop login.";; 
-1) 
echo "An unexpected error has occurred.";; 
esac 
TMP=$(echo "${pw}" | sudo -Sv) 
TMP=0 
Cuestiones relacionadas