Comment puis-je créer un nouvel utilisateur système, une copie exacte d'un autre (ayant les mêmes groupes, autorisations, privilèges et paramètres), mais avec un nom d'utilisateur, un mot de passe et un répertoire personnel différents?
13
Réponses:
Ce script le fera:
Il obtient les groupes de l'utilisateur source (sans inclure le groupe identique à leur connexion) et le shell, puis crée un nouvel utilisateur avec le même shell et les mêmes groupes secondaires.
Il n'y a pas de vérification d'erreur, c'est juste un script de clonage rapide et sale.
la source
john
, l'un des groupes l'estjohnny
. Voici ce qui se passe:SRC=john ; echo "$SRC group1 johnny group3" | sed "s/ ${SRC}//g" | sed "s/ /,/g"
Sortie:john,group1ny,group3
SRC_GROUPS=$(id -Gn ${SRC} | sed "s/ /,/g" | sed -r 's/\<'${SRC}'\>\b,?//g')
qui supprimera correctement le nom exact du groupe d'utilisateurs par opposition à une correspondance de chaîne partielle. Ex. Si l'ID d'un utilisateur est «pi» et qu'un utilisateur a des groupes comprenant «pi, gpio, spi, etc.», il supprimera uniquement «pi» et non les autres correspondances de chaînes partielles.passwd newuser
pour modifier le mot de passe.Sachez que, du point de vue du système, les deux utilisateurs sont les mêmes (même UID), donc l'un pourra entrer dans le répertoire personnel de l'autre et le modifier à volonté.
la source
useradd
. Maintenant que j'y pense, vous pouvez le faire dans l'autre sens, créer un nouvel utilisateur avecuseradd
puis modifier l'UID et le GID pour cloner le premier.Pour Linux Mint 18 Mate
Sur la base du script de Mike Anderson, j'en ai créé un qui pose des questions sur le nouvel utilisateur, l'ancien utilisateur, le nouveau mot de passe, puis copie le répertoire personnel de l'ancien utilisateur et remplace toutes les instances du nom de l'ancien utilisateur dans le nouveau répertoire personnel par le nouveau nom d'utilisateur.
La principale différence dans mon script concernant la ligne useradd est que le mot de passe échoue dans Linux Mint 18, remplacé par chpasswd. Pour que le mot de passe fonctionne, j'ai dû créer une nouvelle ligne: echo $ newuser: $ newpassword | chpasswd.
Une autre différence est que je ne pouvais pas faire fonctionner --create-home donc j'ai juste utilisé mkdir dans une nouvelle ligne à la place.
Attention si vous avez un énorme répertoire personnel d'un ancien utilisateur.
Prenez ce dont vous avez besoin et laissez le reste. Vous êtes responsable de tout code que vous copiez - faites des sauvegardes!
Merci à tous dans le monde qui m'ont aidé avec ce script. John dans l'Oregon
la source
olduser_GROUPS=$(id -Gn ${olduser} | sed "s/ /,/g" | sed -r 's/\<'${olduser}'\>\b,?//g')
qui supprimera correctement le nom exact du groupe d'utilisateurs par opposition à une correspondance de chaîne partielle. Ex. Si l'ID d'un utilisateur est «pi» et qu'un utilisateur a des groupes comprenant «pi, gpio, spi, etc.», il supprimera uniquement «pi» et non les autres correspondances de chaînes partielles.Comme vous le savez, les utilisateurs Unix en tant qu'UID ne se nomment pas, par exemple: mohsen appelé 1001 ou groupe mohsen appelé 1001.
Vous devez écrire un script et suivre pas à pas les étapes suivantes:
/etc/suduers
et état de votre utilisateur.scp
sur votre cible.REMARQUE: N'utilisez pas de script et utilisez les notes ci-dessus étape par étape. Même vous pouvez insérer ci-dessus.
la source
Essayez cette commande
la source