0 votes

Comment faire pour que sudo dans 2 onglets ne demande le mot de passe qu'une seule fois ?

J'ai un script pour automatiser le démarrage de quelques serveurs sur le terminal. Il s'agit de processus serveur du logiciel que je suis en train de développer. Ils peuvent être recompilés et modifiés plusieurs fois par jour. Les binaires peuvent se trouver à différents endroits (copies de travail).

Mon script utilise

 set sudo to do shell script "sudo -v "

demande une fois le mot de passe Root, puis crée une nouvelle fenêtre de terminal iterm2 (et quelques onglets) et tente de démarrer les serveurs avec 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

Tout fonctionnait bien sur El Capitan, mais pas sur High Sierra.

Si le sudo n'est pas mis en cache, le mot de passe sudo -v me demande mon mot de passe et procède ensuite --- comme prévu. Si je lance sudo avant et que le mot de passe est mis en cache, le sudo -v ne demande pas de mot de passe, comme prévu. Mais dans les deux cas, chaque sudo dans la nouvelle fenêtre me demande mon mot de passe, ce qui rend l'ensemble peu pratique.

Lorsque j'ajoute with administrator privileges à la valeur initiale de la sudo il me demande mon mot de passe dans une fenêtre de dialogue, mais le message suivant s'affiche sudo appelle avec write text demande toujours le mot de passe sur le shell. (J'utilise write text et le terminal pour surveiller les sorties de ces serveurs).

Je peux exécuter des commandes sudo normales sans problème et le mot de passe est mis en cache.

Comment puis-je utiliser sudo en Applescript dans une nouvelle fenêtre iTerm2 et qu'il ne demande le mot de passe qu'une seule fois ?

EDITAR : Il semble que ce ne soit pas lié à Applescript mais à iterm et à High Sierra. Lorsque j'ouvre une fenêtre de terminal avec 2 onglets, je dois entrer mon mot de passe dans les deux lorsque j'exécute par exemple, sudo ls . Après cela, les deux onglets ont le mot de passe sudo en cache, mais l'exécution de sudo dans un onglet ne fait pas en sorte que l'autre onglet utilise le mot de passe sudo en cache.

La vraie question est donc probablement : comment faire pour qu'iTerm2 mette en cache le mot de passe sudo et le partage entre tabs et Windows ?

1voto

Sully Points 91

Essayez d'ajouter :

Defaults !tty_tickets

dans le fichier /etc/sudoers. Testé sur 10.13.6 (High Sierra).

Extrait de la page de manuel :

Si cette option est activée, les utilisateurs doivent s'authentifier pour chaque poste de travail. Avec cet indicateur activée, sudo utilisera un enregistrement distinct dans le fichier d'horodatage pour pour chaque poste de travail. S'il est désactivé, un seul enregistrement est utilisé pour toutes les de connexion. Cette option est activée par défaut.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X