0 votos

¿Cómo puedo hacer que sudo en 2 pestañas pida la contraseña sólo una vez?

Tengo un script para automatizar el arranque de unos cuantos servidores en el terminal. Son procesos de servidores del software que estoy desarrollando. Pueden ser recompilados y cambiados varias veces al día. Los binarios pueden vivir en diferentes lugares (copias de trabajo).

Mi script utiliza

 set sudo to do shell script "sudo -v "

para pedir la contraseña de Root una vez, luego crea una nueva ventana de terminal iterm2 (y algunas pestañas) e intenta iniciar los servidores con sudo:

#!/usr/bin/osascript
on run args
    set sudo to do shell script "sudo -v " -- to ask for password once only
    tell application "iTerm"
        create window with default profile
        tell current window
            tell current session
                write text "sudo /some/server"
            end tell
            -- more tabs and more sudos go here
        end tell
    end tell
end run

Todo funcionaba bien en El Capitán, pero no en High Sierra.

Si el sudo no se almacena en caché, el sudo -v me pide mi contraseña y luego procede --- como se esperaba. Si ejecutara sudo antes y la contraseña se almacena en caché, el sudo -v no pide una contraseña, de nuevo, como se esperaba. Pero en ambos casos cada uno de los siguientes sudo s en la nueva ventana sí me pide la contraseña, lo que hace que todo sea un inconveniente.

Cuando añado with administrator privileges a la inicial sudo me pide la contraseña en un cuadro de diálogo emergente, pero lo siguiente sudo llamadas con write text sigue pidiendo la contraseña en el shell. (Yo uso write text y el terminal para vigilar las salidas de estos servidores).

Puedo ejecutar los comandos normales de sudo sin problemas y sí guarda la contraseña en la memoria.

¿Cómo puedo utilizar sudo en Applescript en una nueva ventana de iTerm2 y que pida la contraseña sólo una vez?

EDITAR : Parece que esto no está relacionado con Applescript sino con iterm y High Sierra. Cuando abro una ventana de terminal con 2 pestañas, necesito introducir mi contraseña en ambas cuando ejecuto, por ejemplo, sudo ls . Después de eso, ambas pestañas tienen la contraseña de sudo en la caché, pero ejecutar sudo en una pestaña no hace que la otra pestaña utilice la contraseña de sudo en la caché.

Así que la verdadera pregunta es probablemente: ¿cómo consigo que iTerm2 guarde en caché la contraseña de sudo y la comparta entre las pestañas y Windows?

1 votos

¿Ha pensado en configurar estos ejecutables para que se ejecuten como Root sin contraseña, en la carpeta sudoers ¿Fichero? Consulte la página del manual de sudoers .

0 votos

Set thePassword to "Password" as string do shell script <<TuComando>> ¬ password thePassword with administrator privileges

2 votos

@Gio Valerio, Personalmente yo configuraría los ejecutables para que se ejecuten como Root sin contraseña, en el archivo sudoers antes de utilizar password con administrator privileges como el contraseña se guarda en texto sin formato dentro del archivo AppleScript.

1voto

George Katsanos Puntos 124

Intenta añadir:

Defaults !tty_tickets

a /etc/sudoers. Probado en 10.13.6 (High Sierra).

De la página man:

Si se establece, los usuarios deben autenticarse en base a cada tty. Con esta bandera activada, sudo utilizará un registro separado en el archivo de marcas de tiempo para cada tty. Si se desactiva, se utilizará un único registro para todas las sesiones de inicio de sesión. Esta bandera está activada por defecto.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X