Y a-t-il une commande pour lister tous les utilisateurs? Aussi pour ajouter, supprimer, modifier des utilisateurs, dans le terminal?

J'ai besoin d'une commande pour lister tous les utilisateurs ainsi que des commandes pour ajouter, supprimer et modifier des utilisateurs à partir du terminal - toutes les commandes qui pourraient aider à administrer facilement les comptes d'utilisateurs par terminal.

Répertorier

Pour tout lister local utilisateurs que vous pouvez utiliser:

cut -d: -f1 /etc/passwd

Pour lister tous les utilisateurs capables de s'authentifier (d'une manière ou d'une autre), y compris les utilisateurs non locaux, voir cette réponse.

Quelques commandes de gestion des utilisateurs plus utiles (également limitées à local utilisateur):

Ajouter

Pour ajouter un nouvel utilisateur, vous pouvez utiliser:

sudo adduser nouveau_nom d'utilisateur

ou:

sudo useradd nouveau_nom d'utilisateur

Voir aussi: Quelle est la différence entre adduser et useradd?

Pour supprimer/supprimer

Pour supprimer / supprimer un utilisateur, vous pouvez d'abord utiliser:

sudo userdel utilisateur

Ensuite, vous souhaiterez peut-être supprimer le répertoire personnel du compte d'utilisateur supprimé :

sudo rm-r / accueil/utilisateur

Veuillez utiliser avec prudence la commande ci-dessus!

Modifier

Pour modifier le nom d'utilisateur d'un utilisateur:

usermod -l nouveau_nom d'utilisateur nom_utilisateur ancien

Pour modifier le mot de passe d'un utilisateur:

sudo passwd utilisateur

Pour changer le shell d'un utilisateur:

sudo chsh utilisateur

Pour modifier les détails d'un utilisateur (par exemple le nom réel):

sudo chfn utilisateur

Pour ajouter un utilisateur à la liste sudo groupe:

adduser utilisateur sudo

ou

usermod -aG sudo utilisateur

Et, bien sûr, voir aussi: man adduser, man useradd, man userdel... et ainsi de suite.

Appuyez simplement sur Ctrl+Alt+T sur votre clavier pour ouvrir le Terminal. Lorsqu'il s'ouvre, exécutez la ou les commandes ci-dessous:

cat /etc/passwd

OU

less /etc/passwdmore /etc/passwd

Vous pouvez également utiliser awk:awk

awk -F':' '{ print $1}' /etc/passwd

Le moyen le plus simple d'obtenir ce type d'informations est getent - voir page de manuel pour le getent commande Manpage icon. Alors que cette commande donne la même sortie que cat /etc/passwd il est utile de s'en souvenir car il vous donnera des listes de plusieurs éléments du système d'exploitation.

Pour obtenir une liste de tous les utilisateurs que vous tapez (car les utilisateurs sont répertoriés dans /etc/passwd)

getent passwd

Pour ajouter un utilisateur nouveau! au système que vous tapez

sudo adduser newuser

pour créer un utilisateur auquel tous les paramètres par défaut sont appliqués.

Bonus: Pour ajouter n'importe quel utilisateur (par exemple tout utilisateur) à un groupe (par exemple cdrom) type

sudo adduser anyuser cdrom

Vous supprimez un utilisateur (par exemple obsolète) avec

sudo deluser obsolete

Si vous voulez supprimer son répertoire personnel / mails ainsi que vous tapez

sudo deluser --remove-home obsolete

Et

sudo deluser --remove-all-files obsolete

supprimera l'utilisateur et tous les fichiers appartenant à cet utilisateur sur l'ensemble du système.

Vous pouvez utiliser compgen GNU bash intégré trop:

compgen -u

Will répertorie tous les utilisateurs.

Cela devrait obtenir, dans la plupart des situations normales, tous les utilisateurs normaux (non-système, pas bizarres, etc.) :

awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd

Cela fonctionne par:

  • lecture à partir de /etc/passwd
  • utiliser : comme délimiteur
  • si le troisième champ (le numéro d'identification de l'utilisateur) est supérieur à 1000 et non à 65534, le premier champ (le nom d'utilisateur de l'utilisateur) est imprimé.

C'est parce que sur de nombreux systèmes Linux, les noms d'utilisateur supérieurs à 1000 sont réservés aux utilisateurs non privilégiés (vous pourriez dire normaux). Quelques infos à ce sujet ici:

Un ID utilisateur (UID) est un entier positif unique attribué par un système d'exploitation de type Unix à chaque utilisateur. Chaque utilisateur est identifié au système par son UID, et les noms d'utilisateur ne sont généralement utilisés que comme interface pour les humains.

Les UID sont stockés, avec leurs noms d'utilisateur correspondants et d'autres informations spécifiques à l'utilisateur, dans le fichier /etc/passwd...

Le troisième champ contient l'UID et le quatrième champ contient l'ID de groupe( GID), qui par défaut est égal à l'UID pour tous les utilisateurs ordinaires.

Dans les noyaux Linux 2.4 et supérieurs, les UID sont des entiers 32 bits non signés qui peuvent représenter des valeurs allant de zéro à 4 294 967 296. Cependant, il est conseillé de n'utiliser que des valeurs allant jusqu'à 65 534 afin de maintenir la compatibilité avec les systèmes utilisant des noyaux plus anciens ou des systèmes de fichiers qui ne peuvent prendre en charge que les UID 16 bits.

L'UID de 0 a un rôle particulier: c'est toujours le compte root (c'est-à-dire l'utilisateur administratif omnipotent). Bien que le nom d'utilisateur puisse être modifié sur ce compte et que des comptes supplémentaires puissent être créés avec le même UID, aucune des deux actions n'est judicieuse du point de vue de la sécurité.

L'UID 65534 est généralement réservé à personne, un utilisateur sans privilèges système, par opposition à un utilisateur ordinaire (c'est-à-dire non privilégié). Cet UID est souvent utilisé pour les personnes accédant au système à distance via FTP (protocole de transfert de fichiers) ou HTTP (protocole de transfert hypertexte).

Les UID 1 à 99 sont traditionnellement réservés aux utilisateurs spéciaux du système (parfois appelés pseudo-utilisateurs), tels que wheel, daemon, lp, operator, news, mail, etc. Ces utilisateurs sont des administrateurs qui n'ont pas besoin de pouvoirs root totaux, mais qui effectuent certaines tâches administratives et ont donc besoin de plus de privilèges que ceux accordés aux utilisateurs ordinaires.

Certaines distributions Linux (c'est-à-dire les versions) commencent les UID pour les utilisateurs non privilégiés à 100. D'autres, comme Red Hat, les commencent à 500, et d'autres encore, comme Debian, les commencent à 1000. En raison des différences entre les distributions, une intervention manuelle peut être nécessaire si plusieurs distributions sont utilisées dans un réseau d'une organisation.

En outre, il peut être pratique de réserver un bloc d'UID pour les utilisateurs locaux, tels que 1000 à 9999, et un autre bloc pour les utilisateurs distants (c'est-à-dire les utilisateurs ailleurs sur le réseau), tels que 10000 à 65534. L'important est de choisir un schéma et de le respecter.

Parmi les avantages de cette pratique consistant à réserver des blocs de nombres à des types particuliers d'utilisateurs, il est plus pratique de rechercher dans les journaux système des activités suspectes des utilisateurs.

Contrairement à la croyance populaire, il n'est pas nécessaire que chaque entrée dans le champ UID soit unique. Cependant, les UID non uniques peuvent causer des problèmes de sécurité et, par conséquent, les UID doivent rester uniques dans toute l'organisation. De même, le recyclage des UID d'anciens utilisateurs doit être évité aussi longtemps que possible.

liste de tous les utilisateurs qui peuvent se connecter (aucun utilisateur du système comme: bin,deamon, mail, sys, etc.)

awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow

ajouter nouvel utilisateur

sudo adduser new_username

ou

sudo useradd new_username

supprimer/ supprimer le nom d'utilisateur

sudo userdel username

Si vous souhaitez supprimer le répertoire personnel (par défaut le répertoire/home / username)

sudo deluser --remove-home username

ou

sudo rm -r /path/to/user_home_dir

Si vous souhaitez supprimer tous les fichiers du système de cet utilisateur (non seulement le répertoire d'accueil)

sudo deluser --remove-all-files

Ok, voici une astuce qui vous aidera à résoudre ce problème. Le terminal a une complétion automatique si vous tapez user et appuyez deux fois sur la touche Tab, il répertorie toutes les commandes qui existent avec user comme les 4 premiers caractères.

user (tab tab)

me donne comme options possibles useradd userdel usermod users users-admin
si vous voulez en savoir plus sur une commande, tapez-la sur Google ou tapez man man useraddgives useradd-créer un nouvel utilisateur ou mettre à jour les nouvelles informations utilisateur par défaut ... ...

pour lister les utilisateurs, vous devriez suivre ce que Mitch a dit.

J'espère que cela aide, j'aime la complétion des onglets dans bash, cela m'évite de me souvenir de choses.

Pour connaître les utilisateurs qui ont des répertoires personnels dans le dossier / home sur la machine, exécutez les commandes suivantes

cd /homels 

Vous pouvez alors voir les utilisateurs qui ont l'autorisation de se connecter au serveur. Si nous voulons examiner les fichiers de tous les utilisateurs, vous devez être l'utilisateur root.

La première réponse recommande:

cut -d: -f1 /etc/passwd

Mais en utilisant cela et en comptant le nombre d'utilisateurs, vous obtenez:

$ cut -d: -f1 /etc/passwd | wc -l46

46 utilisateurs pour un ordinateur portable, c'est beaucoup!. Alors utilisez ceci à la place:

$ cat /etc/passwd | grep -vE '(/bin/false|/sbin/nologin|/bin/sync)' | cut -d: -f1rootrickguest-atkb2qguest-u4sf2iguest-rmlbtgguest-mz53vp

Pour supprimer des comptes invités (qui n'ont de toute façon pas de fichiers enregistrés), utilisez:

$ cat /etc/passwd | grep -vE '(/bin/false|/sbin/nologin|/bin/sync|guest-)' | cut -d: -f1rootrick

Certains exemples d'utilisateurs supprimés de la liste sont:

systemd-timesync:x:100:102:systemd Time Synchronization,,,:/run/systemd:/bin/falsegnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologinsync:x:4:65534:sync:/bin:/bin/syncsync:x:4:65534:sync:/bin:/bin/syncguest-atkb2q:x:999:999:Guest:/tmp/guest-atkb2q:/bin/bash

Il s'avère que la plupart des utilisateurs d'un système mono-utilisateur sont en fait des programmes qui se sont configurés en tant qu'utilisateurs.

sed réponse sed ' s/:.* / / '/etc / mot de passe

liste des utilisateurs: ‘awk-F:’ { print 1 1 } ’ / etc / passwd `