Comment puis-je suspendre temporairement certains utilisateurs en les masquant de l'écran de connexion?

9

Je dois gérer une station de travail OSX partagée qui est utilisée par une distribution rotative de personnages tout au long de l'année. L'écran de connexion devient rapidement encombrant lorsque les utilisateurs qui ne sont même pas là pendant un certain temps sont répertoriés et encombrent le défilement horizontal maladroit.

Comment puis-je nettoyer l'écran de connexion sans nuquer les comptes qui devraient être recréés ultérieurement?

De plus, lorsque quelqu'un est parti pour une longue période, je voudrais que son compte soit verrouillé afin qu'il ne puisse pas être utilisé localement ou à distance, mais je ne veux pas nuke les mots de passe des utilisateurs, quand ils reviennent, une action d'administration rapide devrait obtenir les remettre dans le système?

Caleb
la source

Réponses:

17

Cela peut être accompli en utilisant une fonctionnalité du système de connexion basé sur Unix qui attribue un programme à exécuter lors d'une connexion réussie. Normalement, les utilisateurs d'OSX ont leur shell défini comme /bin/bash. La fenêtre de connexion au système d'exploitation s'assurera que les utilisateurs disposent d'un shell utilisable avant de les afficher sur l'écran de connexion.

Vous pouvez désactiver un utilisateur - révoquant à la fois sa capacité à se connecter et son apparence dans la liste des utilisateurs de la fenêtre de connexion - en changeant le shell en /usr/bin/false.

Les paramètres se trouvent dans Préférences Système -> Utilisateurs et groupes -> (Déverrouillez les paramètres si nécessaire) -> Cliquez avec le bouton droit sur un utilisateur -> Options avancées -> Shell de connexion .

Réactiver l'utilisateur est aussi simple que de le redéfinir /bin/bash.

Addendum: dans les versions ultérieures d'OS-X, la restauration des utilisateurs désactivés comme celui-ci devient légèrement plus compliquée.

  • Depuis la version 10.7, les utilisateurs n'apparaissent pas non plus dans le panneau d'administration par défaut. Vous pouvez les restaurer manuellement en utilisant le paramétrage de leur shell à l'aide de la chshcommande Unix standard dans un terminal:

    sudo chsh <username> /bin/bash
  • À partir de la version 10.9, l' chshutilitaire n'est également pas disponible, mais vous pouvez définir le shell à l'aide de l'utilitaire spécial OSX dans le terminal:

    sudo chpass -s /bin/bash <username>
Caleb
la source
Comment puis-je remettre cela sur / bin / bash? L'utilisateur désactivé n'est plus affiché dans la liste des utilisateurs de la fenêtre de connexion.
Will Sargent
@WillSargent Bien sûr, ils ne s'affichent pas dans la fenêtre de connexion - c'est ce que vous avez désactivé - mais ils devraient toujours s'afficher sous le widget utilisateurs de l'administrateur système.
Caleb
J'ai utilisé "sudo chsh <username>" à partir de la ligne de commande. :-)
Will Sargent
J'ai essayé ce processus et l'utilisateur n'est plus sur la liste d'administration des utilisateurs. Comment puis-je réactiver l'utilisateur ?? Cela fait simplement disparaître l'utilisateur de l'écran de connexion et de l'écran d'administration. Il s'agit d'une solution extrêmement médiocre et non gérable avec les informations fournies ci-dessus. Je reviens à fournir simplement une bascule "Désactiver l'utilisateur" sur les écrans d'administration des utilisateurs. N'ESSAYEZ PAS CECI sur OSX 10.7
1
Essayez sudo chsh <username> /bin/bashou postez une question de votre propre demandant ce qui s'est passé dans 10.7 à ce sujet (bien que je pense que c'est la même chose).
Caleb
2

La réponse de Caleb est correcte et masque ces utilisateurs dans la fenêtre de connexion.

Cependant, au moins sur mon installation d'OSX 10.9 Mavericks, ces utilisateurs disparaissent également du panneau d'administration système, ce qui rend impossible de les cliquer à nouveau. De plus, l'utilisation chshcomme solution de contournement n'aide pas non plus, car elle n'est pas disponible sur 10.9.

J'ai pu les ramener en utilisant:

sudo chpass -s /bin/bash <username>

sur la ligne de commande.

Holger
la source