traller
Goto Top

Benutzer mit Script unter Linux erstellen

Hallo,
könnt ihr mir kurz mit der Erstellung eines Scripts für die Erstellung von neuen Benutzern helfen? irgendwas ist hier falsch ...
das Script soll mir am liebsten mit adduser nur nach dem Benutzernamen und Passwort fragen und den User "im Stillen" hinzufügen ... Problem ist auch, er speichert nicht einmal die benötigte Variable $USERNAME und die ganzen Befehle müssten als root / sudo ausgeführt werden. Was müsste ich da ergänzen??? bin was Linux Shell-Scripts angeht, absolut neu ...

#!/bin/bash
read -p 'Username: ' USERNAME  
adduser $USERNAME --gid 100
touch /home/$USERNAME/.dovecot.sieve
chown $USERNAME '/home/$USERNAME/.dovecot.sieve'  
chmod 644 '/home/$USERNAME/.dovecot.sieve'  

Content-Key: 237776

Url: https://administrator.de/contentid/237776

Printed on: April 26, 2024 at 22:04 o'clock

Member: Lochkartenstanzer
Lochkartenstanzer May 12, 2014 at 07:37:58 (UTC)
Goto Top
Hallo traller,

zunächst ein Wort zu Deiner Unsitte, hier Beiträge zu erstellen udn dann gleich wieder zu löschen oder zu sperren:

Das macht keine guten Eindruck und hindert die Leute daran, Energie für einen Thread aufzuwenden, der vielleicht gleich wieder verschwindet. es ist ersichtlich, daß Du offensichtlich neu n dem gewerbe udn auch hier bistund da läßt man manchens als "Welpenschutz" durchgehen, aber auf die dauer solltest Du da etwas beständiger sein.

Nun zu Deinem Problem:

Die Frage ist Doch eher, was alles willst Du mit dem Benutzer anstellen und was soll alles eingestellt werden?
Warum legst Du einen dovecot.sieve an, ohne da regeln reinzuschreiben? Dann ist es doch unnötig.

default-einstellungen für die user kannst Du auch gleich in /etc/skel reinpacken. Dann werden die automatisch im Homeverzeichnis mit angelegt.

lks
Member: traller
traller May 13, 2014 at 16:00:15 (UTC)
Goto Top
Zitat von @Lochkartenstanzer:

Hallo traller,

zunächst ein Wort zu Deiner Unsitte, hier Beiträge zu erstellen udn dann gleich wieder zu löschen oder zu sperren:
Durch das Löschen wollte ich genau das verhindern, das jemand Energie aufwendet für etwas, was schon gelöst wurde.

default-einstellungen für die user kannst Du auch gleich in /etc/skel reinpacken. Dann werden die automatisch im
Homeverzeichnis mit angelegt.
Ist hier leider nicht möglich, da auch später ein "ln -s " angelegt werden muss.

Wie bekomme ich es hin, dass ich in diesem Script ein Chown machen kann, wenn sich der Nutzer logischerweise noch nicht angemeldet hat und somit die Gruppe des Nutzers noch nicht besteht ???? "chown $username:$username" schlägt fehl, weil die Gruppe noch nicht existiert. Kann man irgendwie den neuen Nutzer im Script anmelden und direkt wieder abmelden lassen?
#!/bin/bash 
read -p 'Username: ' username   
adduser $username --gid 100 
touch /home/$username/.dovecot.sieve 
chown $username:$username '/home/$USERNAME/.dovecot.sieve'   
chmod 644 '/home/$USERNAME/.dovecot.sieve'  
Member: Lochkartenstanzer
Solution Lochkartenstanzer May 13, 2014 updated at 21:53:45 (UTC)
Goto Top
Zitat von @traller:

> zunächst ein Wort zu Deiner Unsitte, hier Beiträge zu erstellen udn dann gleich wieder zu löschen oder zu
sperren:
Durch das Löschen wollte ich genau das verhindern, das jemand Energie aufwendet für etwas, was schon gelöst wurde.

Dann markier das Ganze als gelöst und gut ist. Dann weiß jeder, daß das Problem erledigt ist.


> default-einstellungen für die user kannst Du auch gleich in /etc/skel reinpacken. Dann werden die automatisch im
> Homeverzeichnis mit angelegt.
Ist hier leider nicht möglich, da auch später ein "ln -s " angelegt werden muss.

Wie bekomme ich es hin, dass ich in diesem Script ein Chown machen kann, wenn sich der Nutzer logischerweise noch nicht angemeldet
hat und somit die Gruppe des Nutzers noch nicht besteht ???? "chown $username:$username" schlägt fehl, weil die
Gruppe noch nicht existiert. Kann man irgendwie den neuen Nutzer im Script anmelden und direkt wieder abmelden lassen?

Ganz einafch: Weil Du Die gruppe nioch nciht eingerichtet hast. Du kannst entweder mit addgroup vorher die gruppe anlegen oder Du versuchst es mal mit useradd statt adduser. face-smile

lks
Member: traller
traller May 13, 2014 updated at 21:55:01 (UTC)
Goto Top
Ganz einafch: Weil Du Die gruppe nioch nciht eingerichtet hast. Du kannst entweder mit addgroup vorher die gruppe anlegen oder Du
versuchst es mal mit useradd statt adduser. face-smile

lks

das kann glaub ich eine Lösung sein, da ich mit -U die Gruppe erstellen kann und mit -p das Passwort festlegen kann- Nun habe ich aber ein Syntaxproblem. Wie schreibe ich das richtig? Das Passwort kann ja mit "perl -e "print crypt('$passwort','sa');"" erstellt werden. nur wie lege ich die Ausgabe des verschlüsselten Passwortes als eigenständige Variable passwort2 ab? Das hier funktioniert nicht:
passwort2=perl -e 'print crypt('$passwort','sa');'  

Edit:
So funktioniert es:
pass=$(perl -e 'print crypt('$passwort','sa');')  
useradd  -U -m -p $pass $benutzername