#1 Le 28/04/2022, à 14:19
- pierrot10
Comment lister les comptes sans mots de passe
Bonjour,
J'ai un serveur de fichier dont le partage se fait via SAMBA.
Je crée des comptes Ubuntu sans mot de passe.
Puis, via l'interface system-samba-config, je crée des comptes Samba avec un mot de passe.
Pour ceux qui veulent accèder au serveur via SSH, j'active le compte en mettant un mot de passe.
J'aimerais pouvoir lister tous les utilisateurs qui accèdent le serveur avec SSH. Par conséquent, j'aimerais lister les comptes qui n'ont pas de mot de passe.
Comment puis-je faire cela?
sudo getent passwd m'affiche tous les comptes, mais j'aimerais n'afficher que les comptes que j'ai créé avec la commande
sudo useradd -m -s /bin/bash username
dont un mot de passe a été initié.
Merciii
Hors ligne
#2 Le 28/04/2022, à 22:34
- MicP
Re : Comment lister les comptes sans mots de passe
Bonjour
… j'aimerais n'afficher que les comptes que j'ai créé avec la commande
sudo useradd -m -s /bin/bash username
…
Si tu veux faire s'afficher les noms de compte utilisateur qui ont étés entrés
à la suite de toutes les lignes de commandes que tu as déjà (récemment*) entrées
et qui commencent par "sudo useradd -m -s /bin/bash "
alors, lance la ligne de commandes suivante :
awk '/^sudo useradd -m -s \/bin\/bash /{print $NF}' ~/.bash_history | sort -u
* Le fichier ~/.bash_history a une taille limitée
ce qui fait qu'il ne conserve que les XXXX dernières lignes de commandes entrées les plus récentes.
Voir la description des variables HISTSIZE et HISTFILESIZE
dans la page man de bash retournée par la ligne de commande suivante :
man --pager='less -p "^HISTORIQUE"' bash
Dernière modification par MicP (Le 29/04/2022, à 00:29)
Hors ligne
#3 Le 29/04/2022, à 07:17
- nany
Re : Comment lister les comptes sans mots de passe
Bonjour,
Puisque, comme l’indique lui-même MicP, l’exploration de l’historique est hasardeuse, je préconise de faire une recherche dans /etc/shadow :
sudo awk -F':' '{if ($2 == "" || $2 == "!" || $2 == "!!" || $2 == "*") print $1}' /etc/shadow
Cette commande affiche TOUS les utilisateurs sans mot de passe y compris les utilisateurs système.
On peut filtrer les utilisateurs d’id comprise entre 1000 et 59999 en regardant dans le fichier /etc/passwdavec une ligne de commandes plus complexe comme celle-ci :
users=$(awk -F':' '{if ($3 >= 1000 && $3 <= 59999) if(u != "") u = u "|" $1 ; else u = $1} ; END{print u}' /etc/passwd) && sudo awk -F':' "/$users/"'{if ($2 == "" || $2 == "!" || $2 == "!!" || $2 == "*") print $1}' /etc/shadow
Hors ligne