D'une manière ou d'une autre, j'ai réussi à définir un mot de passe pour mon utilisateur _postgres sur mon système d'exploitation au lieu de le définir sur le rôle postgres que j'ai en tant que superutilisateur / racine. Quoi qu'il en soit depuis cela, j'ai du mal à voir cet utilisateur apparaître dans la section compte et l'écran de connexion, ce que j'aimerais vraiment éviter. J'ai lu quelques documents à ce sujet, et la définition du mot de passe *
devrait suffire à résoudre ce problème. Mais après plusieurs tentatives en vain avec et sans dscl, je suis arrivé à un point où je ne sais plus quoi faire.
Je ne pensais pas que ce serait encore plus difficile à faire, mais il me manque clairement quelque chose, alors comment faites-vous cela?
macos
osx-snow-leopard
passwords
user-accounts
login-screen
googletorp
la source
la source
Réponses:
La méthode la plus simple pour masquer les utilisateurs du système (si leur ID utilisateur est <500) dans la fenêtre de connexion consiste à exécuter la commande suivante:
Vous pouvez également masquer manuellement uniquement le nom d'utilisateur en exécutant
Pour masquer l'élément «Autres ...» de la fenêtre de connexion si nécessaire:
la source
Cela crée un utilisateur visible dans sysprefs / Comptes.
Cela masque l'utilisateur. Assurez-vous de citer le "*" sinon cela ne fonctionnera pas.
EDIT : J'ai accidentellement réussi à recréer la situation de googletorp de ne pas pouvoir cacher un utilisateur en définissant son mot de passe sur "*", et j'ai découvert comment le corriger. Cette fois, j'avais créé un utilisateur en utilisant dsimport, comme ceci:
Mais dans cette commande, le * est pris pour représenter un mot de passe à un caractère littéral de
*
, et donc dsimport crée une propriété AuthenticationAuthority pour l'utilisateur et définit la propriété de mot de passe sur le hachage fantôme de*
(qui apparaît comme********
dans dscl, comme pour tous mots de passe). Après cela, essayer de définir le mot de passe sur "*" en utilisant dscl ne fait que définir le mot de passe sur un littéral*
, au lieu de désactiver le mot de passe. La solution consiste à supprimer la propriété indésirable, puis à désactiver le mot de passe:Cela masque l'utilisateur.
la source
dscl . -create /Users/test Password \*
Juste au cas où vous n'auriez pas trouvé de solution viable (ou au cas où quelqu'un d'autre trouverait cette question de Google), paramétrer le shell de l'utilisateur pour l'
/usr/bin/false
empêcher de se connecter et le cacher de l'écran de connexion et des préférences système. Pour ce faire, utilisez la ligne de commande suivante:Et pour inverser le changement:
Où
[username]
est le nom de l'utilisateur que vous souhaitez masquer (_postgres
dans votre cas, je suppose). Je ne sais pas pourquoidscl
veut d'abord l'ancienne valeur, mais c'est ce que dit la page de manuel, et cela fonctionne assez bien.la source
sudo -s -u _postgres
partir d'un compte administrateur pour obtenir un shell en tant que_postgres
; cela fonctionnera même si le sienUserShell
est réglé sur/usr/bin/false
. De plus, le fait de définir son mot de passe sur "pas de mot de passe", comme vous avez essayé de le faire, ne désactive pas également le compte?