Wie kann ich einen neuen Systembenutzer erstellen, eine exakte Kopie eines anderen (mit denselben Gruppen, Berechtigungen, Privilegien und Einstellungen), aber mit unterschiedlichen Benutzernamen, Passwörtern und Heimatverzeichnissen?
13
Antworten:
Dieses Skript wird es tun:
Es werden die Gruppen des Quellbenutzers (ohne die Gruppe, die mit deren Login identisch ist) und die Shell abgerufen. Anschließend wird ein neuer Benutzer mit derselben Shell und denselben sekundären Gruppen erstellt.
Es gibt keine Fehlerprüfung, es ist nur ein schnelles und unsauberes Klonskript.
quelle
john
, ist eine der Gruppenjohnny
.SRC=john ; echo "$SRC group1 johnny group3" | sed "s/ ${SRC}//g" | sed "s/ /,/g"
john,group1ny,group3
SRC_GROUPS=$(id -Gn ${SRC} | sed "s/ /,/g" | sed -r 's/\<'${SRC}'\>\b,?//g')
wird der genaue Name der Benutzergruppe im Gegensatz zu einer Teilzeichenfolgenübereinstimmung ordnungsgemäß entfernt. Ex. Wenn die ID eines Benutzers "pi" ist und ein Benutzer Gruppen wie "pi", "gpio", "spi" usw. hat, wird nur "pi" entfernt, und die anderen Teilzeichenfolgen stimmen nicht überein.passwd newuser
um das Kennwort zu ändern.Beachten Sie, dass beide Benutzer in Bezug auf das System dieselbe UID haben, sodass einer in das Ausgangsverzeichnis des anderen wechseln und nach Belieben ändern kann.
quelle
useradd
. Nun, da ich darüber nachdenke, können Sie es anders herum machen, einen neuen Benutzer mit erstellenuseradd
und dann UID und GID ändern, um den ersten zu klonen.Für Linux Mint 18 Mate
Basierend auf dem Skript von Mike Anderson habe ich ein Skript erstellt, in dem Fragen zum neuen Benutzer, zum alten Benutzer und zum neuen Kennwort gestellt werden. Anschließend kopiere ich das Ausgangsverzeichnis des alten Benutzers und ersetze alle Instanzen des Namens des alten Benutzers im neuen Ausgangsverzeichnis durch das neue Name des Benutzers.
Der Hauptunterschied in meinem Skript bezüglich der useradd-Zeile besteht darin, dass das passwd in Linux Mint 18 fehlschlägt und durch chpasswd ersetzt wird. Damit das Passwort funktioniert, musste ich eine neue Zeile erstellen: echo $ newuser: $ newpassword | chpasswd.
Ein weiterer Unterschied ist, dass ich --create-home nicht zum Laufen bringen konnte, also habe ich stattdessen einfach mkdir in einer neuen Zeile verwendet.
Achten Sie darauf, ob Sie ein riesiges Benutzerverzeichnis haben.
Nehmen Sie, was Sie brauchen, und verlassen Sie den Rest. Sie sind für jeden Code verantwortlich, den Sie kopieren - machen Sie Backups!
Vielen Dank an alle auf der Welt, die mir mit diesem Skript geholfen haben. John in Oregon
quelle
olduser_GROUPS=$(id -Gn ${olduser} | sed "s/ /,/g" | sed -r 's/\<'${olduser}'\>\b,?//g')
wird der genaue Name der Benutzergruppe im Gegensatz zu einer teilweisen Zeichenfolgenübereinstimmung ordnungsgemäß entfernt. Ex. Wenn die ID eines Benutzers "pi" ist und ein Benutzer Gruppen wie "pi", "gpio", "spi" usw. hat, wird nur "pi" entfernt, und die anderen Teilzeichenfolgen stimmen nicht überein.Wie Sie wissen, werden Unix-Benutzer nicht als UIDs bezeichnet. Beispiel: Mohsen, bekannt als 1001, oder Group Mohsen, bekannt als 1001.
Sie müssen ein Skript schreiben und Schritt für Schritt die folgenden Schritte ausführen :
/etc/suduers
und geben Sie Ihren Benutzer an.scp
auf dein Ziel.HINWEIS: Verwenden Sie kein Skript und verwenden Sie die obigen Hinweise Schritt für Schritt. Auch das kannst du nach oben einfügen.
quelle
Versuchen Sie diesen Befehl
quelle