Je ne pense pas qu'il existe un moyen fiable de le faire.
Les comptes pour les utilisateurs ordinaires ont généralement des uids supérieurs ou égaux à 1000, mais ce n'est qu'une convention. J'ai vu beaucoup de systèmes qui ne respectent pas cette convention, et beaucoup de comptes qui la violent, même sur des systèmes qui tentent de la suivre. Et le compte système nobody
a généralement un UID comme 65534.
De même, les comptes d'utilisateur ont généralement passé les répertoires sous /home
, mais il existe des violations de cette convention dans les deux sens.
Les systèmes UNIX et de type UNIX n'établissent aucune distinction entre les comptes utilisateur et système (autres que root
).
Le mieux que vous pouvez faire est d'examiner attentivement le fichier /etc/passwd
sur le système qui vous intéresse, et/ou de parler à la personne responsable de la création de comptes sur ce système, et essayer de tirer quelque ad hoc règles - et ne soyez pas surpris si un nouveau compte créé demain viole ces règles. Quelqu'un un compte non-utilisateur est créé qui agit délibérément comme un compte d'utilisateur, à des fins de test.
Vous pourriez envisager de reformuler vos exigences. Exactement quel problème essayez-vous de résoudre?
Encore une chose: les informations de compte ne sont pas toujours stockées dans /etc/passwd
. Certains systèmes utilisent d'autres mécanismes tels que NIS ou LDAP. La commande getent passwd
(si votre système l'a) devrait permettre cela.
Wicked. J'utilise ubuntu et seulement l'intention d'utiliser ubuntu gardent-ils des comptes système de plus de 1000? Merci pour votre réponse – Aiden
Je ne suis pas vraiment sûr de ce que les politiques UID d'Ubuntu sont. C'est assez typique, cependant. – larsks
Deuxième méthode est vraiment bonne, juste une question rapide quel est le but de la variable $ 3 comment pourriez-vous dire que c'est le 3ème paramètre dans une ligne? – Aiden