¿Cómo puedo hacer sudo en 2 pestañas y pedir la contraseña solo una vez?

0

Tengo un script para automatizar el inicio de algunos servidores en el terminal. Estos son procesos de servidor del software que estoy desarrollando. Se pueden volver a compilar y cambiar varias veces al día. Los binarios pueden vivir en diferentes lugares (copias de trabajo).

Mi script usa

 set sudo to do shell script "sudo -v "

para solicitar 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 funcionó bien en El Capitán, pero no en High Sierra.

Si la contraseña sudo no se almacena en la caché, sudo -v solicita mi contraseña y luego continúa --- como se esperaba. Si ejecuté sudo antes y la contraseña se almacena en la caché, sudo -v no solicita una contraseña, nuevamente, como se esperaba. Pero en ambos casos, cada uno de los siguientes sudo s en la nueva ventana me pide mi contraseña, lo que hace que todo sea inconveniente.

Cuando agrego with administrator privileges al sudo inicial, solicita mi contraseña en un cuadro de diálogo emergente, pero las siguientes llamadas a sudo con write text aún piden la contraseña en el shell. (Yo uso write text y el terminal para controlar las salidas de estos servidores).

Puedo ejecutar los comandos regulares de sudo muy bien y almacena la contraseña.

¿Cómo puedo usar sudo en Applescript en una nueva ventana de iTerm2 y pedirle que solicite la contraseña solo una vez?

EDIT : parece que esto no está relacionado con Applescript sino con iterm y High Sierra. Cuando abro una ventana de terminal con 2 pestañas, debo ingresar mi contraseña en ambas cuando ejecuto, por ejemplo, sudo ls . Después de que ambas pestañas tengan la contraseña de sudo en caché, pero ejecutar sudo en una pestaña no hace que la otra pestaña use la contraseña de sudo en caché.

Entonces, la verdadera pregunta es: ¿cómo puedo hacer que iTerm2 almacene en caché la contraseña de sudo y la comparta entre pestañas y ventanas?

    
pregunta Robert 24.01.2018 - 17:47

1 respuesta

1

Intenta agregar:

Defaults !tty_tickets

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

Desde la página del manual:

  

Si está configurado, los usuarios deben autenticarse por tty. Con esta bandera   habilitado, sudo usará un registro separado en el archivo de marca de tiempo para   cada tty Si está deshabilitado, se utiliza un único registro para todos los datos de inicio de sesión.   sesiones Esta bandera está activada de forma predeterminada.

    
respondido por el Brian Deterling 20.12.2018 - 18:23

Lea otras preguntas en las etiquetas