sudo
peut le faire pour vous :)
Il faut cependant un peu de configuration, mais une fois que c'est fait, vous n'avez plus qu'à faire ça :
sudo -u user2 -s
Et vous seriez connecté en tant que user2 sans entrer de mot de passe.
Configuration
Pour configurer sudo, vous devez modifier son fichier de configuration via : visudo
. Remarque : cette commande ouvrira la configuration à l'aide de la commande vi
Si vous n'êtes pas à l'aise avec cet éditeur de texte, vous devez définir un autre éditeur (en utilisant la fonction export EDITOR=<command>
) avant d'exécuter la ligne suivante. Un autre éditeur de ligne de commande parfois considéré comme plus facile est nano
donc vous feriez export EDITOR=/usr/bin/nano
. Vous avez généralement besoin du privilège de super utilisateur pour visudo
:
sudo visudo
Ce fichier est structuré en différentes sections, les alias, puis les valeurs par défaut et enfin à la fin vous avez les règles. C'est ici que vous devez ajouter la nouvelle ligne. Donc vous naviguez à la fin du fichier et ajoutez ceci :
user1 ALL=(user2) NOPASSWD: /bin/bash
Vous pouvez également remplacer /bin/bash
par ALL
et vous pourrez alors lancer n'importe quelle commande en tant qu'utilisateur2 sans mot de passe : sudo -u user2 <command>
.
Si vous voulez être capable de passer à n'importe quel utilisateur, utilisez simplement
user1 ALL=(ALL) NOPASSWD: /bin/bash
Mise à jour
Je viens de voir votre commentaire concernant Skype. Vous pourriez envisager d'ajouter Skype directement dans le fichier de configuration de la sudo. Je suppose que vous avez installé Skype dans votre Applications dossier :
user1 ALL=(user2) NOPASSWD: /Applications/Skype.app/Contents/MacOS/Skype
Ensuite, vous appelleriez depuis le terminal :
sudo -u user2 /Applications/Skype.app/Contents/MacOS/Skype
0 votes
Demandez le mot de passe à l'autre utilisateur. Au moins, l'autre utilisateur sait ce qui a été fait sous son identité.
1 votes
Cela n'a rien à voir avec un autre utilisateur physique. Les deux identifiants sont les miens. Je connais le mot de passe puisque j'ai créé le compte. Je ne veux simplement pas avoir à taper le mot de passe à chaque fois.
0 votes
Serait-il possible de se connecter à n'importe quel utilisateur ou devez-vous hériter d'un shell en particulier et avoir besoin de su pour fonctionner ?
0 votes
@bmike Je veux faire cela parce que je veux exécuter deux copies de skype selon les instructions ici ; apple.stackexchange.com/questions/903/ - Cela fonctionne bien mais je voudrais l'automatiser davantage en utilisant un script qui deviendra automatiquement un autre utilisateur et lancera skype.
1 votes
@zio Excellent cas d'utilisation. Est-ce que
open -na Skype
ne fonctionne pas pour vous ?0 votes
@bmike cela provoque un conflit et des erreurs avec "Vous avez une autre copie de skype en cours d'exécution". L'utilisation d'un compte utilisateur différent pour la deuxième copie permet de l'exécuter. (Voir le lien ci-dessus pour plus d'informations)
1 votes
Vous pouvez également essayer copier le paquet d'applications et changer CFBundleIdentifier .