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/passwdPour 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'utilisateurou:
sudo useradd nouveau_nom d'utilisateurVoir 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 utilisateurEnsuite, 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 ancienPour modifier le mot de passe d'un utilisateur:
sudo passwd utilisateurPour changer le shell d'un utilisateur:
sudo chsh utilisateurPour modifier les détails d'un utilisateur (par exemple le nom réel):
sudo chfn utilisateurPour ajouter un utilisateur à la liste sudo groupe:
adduser utilisateur sudoou
usermod -aG sudo utilisateurEt, 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/passwdOU
less /etc/passwdmore /etc/passwdVous 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
. 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 passwdPour ajouter un utilisateur nouveau! au système que vous tapez
sudo adduser newuserpour 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 cdromVous supprimez un utilisateur (par exemple obsolète) avec
sudo deluser obsoleteSi vous voulez supprimer son répertoire personnel / mails ainsi que vous tapez
sudo deluser --remove-home obsoleteEt
sudo deluser --remove-all-files obsoletesupprimera l'utilisateur et tous les fichiers appartenant à cet utilisateur sur l'ensemble du système.
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/passwdCela 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/shadowajouter nouvel utilisateur
sudo adduser new_usernameou
sudo useradd new_usernamesupprimer/ supprimer le nom d'utilisateur
sudo userdel usernameSi vous souhaitez supprimer le répertoire personnel (par défaut le répertoire/home / username)
sudo deluser --remove-home usernameou
sudo rm -r /path/to/user_home_dirSi 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/passwdMais en utilisant cela et en comptant le nombre d'utilisateurs, vous obtenez:
$ cut -d: -f1 /etc/passwd | wc -l4646 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-mz53vpPour 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: -f1rootrickCertains 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/bashIl 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 `