Hier ist der Skriptcode, den ich gerade verwende:
getent group $MYGROUP
if [ $? -ne 0 ] ; then
sudo su -c "groupadd $MYGROUP"
fi
sudo su -c "useradd mynewuser -p mypassword -m -g $PRIMARYGRP -G $MYGROUP"
Dieser Ansatz funktioniert gut unter openSuse. Da es jedoch einige Probleme mit dem Benutzerkonto gibt, das es unter Ubuntu erstellt, bitte ich um Hilfe.
- die Terminal-Eingabeaufforderung ist nicht gesetzt (
echo $PS1
gibt nichts zurück) - Die Pfeiltasten und die Tabulatortaste funktionieren im Terminal nicht richtig
- Das Passwort scheint nicht zu funktionieren (obwohl ich immer noch nicht genau weiß, um was es sich handelt)
- Die für diesen neuen Benutzer festgelegten / etc / sudoers-Rechte werden nicht berücksichtigt
Wenn ich stattdessen den Benutzer manuell mit adduser
(anstelle von useradd) erstelle, treten diese Probleme unter Ubuntu nicht auf. Aber ich kann nicht adduser
auf openSuse (afaik) verwenden. Daher benötige ich ein nicht-exklusives Debian-Skript oder eine Methode zum Hinzufügen von Benutzerkonten über mein Bash-Skript, das unter Ubuntu funktioniert (und nicht aufhört, an anderen Distributionen zu arbeiten).
Abschließend möchte ich die Unterschiede zwischen adduser
und verstehen useradd
. Zum Beispiel möchte ich wissen, welches Skeleton-Verzeichnis von verwendet wird, adduser
da dies möglicherweise der Grund dafür useradd
ist, dass es nicht wie erwartet funktioniert (weil ich gerade die Standardeinstellung akzeptiert habe).
Vielen Dank
man useradd
): useradd ist ein Hilfsprogramm auf niedriger Ebene zum Hinzufügen von Benutzern. Unter Debian sollten Administratoren stattdessen normalerweise adduser (8) verwenden.sudo su -c "cmd arg1 arg2"
ist gleichbedeutend mitsudo cmd arg1 arg2
.sudo su -c "cmd arg1 arg2"
damit es überall funktioniert, wo ich es zum Arbeiten brauche.adduser
Ist ein Perl- Skript mehr als 1000 Zeilen lang, so können Sie für die Unterschiede einen Blick auf das Skript werfen.adduser
aber ich kenne Perl nicht. Das ist also kein guter Ansatz für mich.Antworten:
Meine Lösung wurde hier bereitgestellt: /unix/82923/proper-way-to-add-a-user-account-via-bash-script von Ulrich Schwarz und Joseph R .. Das Wichtigste, was ich tun musste, war
-s /bin/bash
, meinen vorhandenenuseradd
Befehl zu ergänzen und zu entfernen,-p password
der ein verschlüsseltes Kennwort erwartet.Dann mach das:
quelle
echo mynewuser:password | sudo chpasswd
funktioniert auch.Das wird funktionieren.
quelle
Mein Skript, das automatisch ein Dienstkonto mit SSH-Schlüssel-Login und ohne Passwort erstellt
quelle
Ich nehme an, Sie können einfach eine Bedingung in Ihrem Skript verwenden, so etwas wie
(Kann nicht überprüfen, ob die Datei
/etc/issue
auf OpenSUSE vorhanden ist, andernfalls können Sie die Bedingung für das Vorhandensein einer solchen Datei festlegen.)quelle
adduser
mitif command -v adduser >/dev/null; then
oder dergleichen? Das ist das einzige, was zählt und nicht die zugrunde liegenden Verteilungen. Neben Debian / Ubuntu und OpenSUSE gibt es auch andere Distributionen.