script erstellen fuer automatische user und homeverzeichnis

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
luj
Beiträge: 44
Registriert: 19.01.2007 16:07:15

script erstellen fuer automatische user und homeverzeichnis

Beitrag von luj » 05.02.2007 19:35:06

Hallo,

als erstes vielen dank schon mal fuer die hilfe.
bin ein anfaenger und brauche eure hilfe.

ich habe folgenden befehl:

useradd -u 2006 -s /bin/false -d /home/name_homeverzeichnis -c "beschreibung" -g name_gruppe -s /bin/false name_user -m

ist es moeglich dafuer ein script erstellen.
also ich meine man fuehrt es aus und dann kommt:
bitte user id eingeben, bitte homeverzeichnis eingeben, die beschreibung, gruppen_namen und user name
dann enter druecken und das script mit den daten wird ausgefuehrt.

vielleicht ist es auch moeglich dass die user id automatisch erhoeht wird. sonst muss ich ja immer schauen welche als letztes vergeben worden ist.

danke, danke, danke schon mal.

gruß

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: script erstellen fuer automatische user und homeverzeichnis

Beitrag von gms » 05.02.2007 21:10:14

luj hat geschrieben:vielleicht ist es auch moeglich dass die user id automatisch erhoeht wird. sonst muss ich ja immer schauen welche als letztes vergeben worden ist.
wenns nur darum geht, laß doch die userid einfach weg :wink:

Code: Alles auswählen

root@gms1:~# useradd -s /bin/false -d /home/test -c "test" -g users -m test
Gruß
gms

luj
Beiträge: 44
Registriert: 19.01.2007 16:07:15

Beitrag von luj » 05.02.2007 21:28:09

Hallo,

spielt es keine rolle welche id da vergeben wird.
kann dabei etwas schief gehen wenn das system die id erstellt?

also das script waere nach wie vor super!!!!
dann aber ohne id wenn es nicht sein muss.

danke

gruß

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 05.02.2007 22:06:49

luj hat geschrieben:spielt es keine rolle welche id da vergeben wird.
kann dabei etwas schief gehen wenn das system die id erstellt?
Spielt es eine Rolle, welche ID du vergibst ? Die ID's sind nur wichtig, wenn du diese zwischen mehreren Systemen synchronisieren möchtest, oder wenn du ein System, welches nur teilweise gesichert wurde, wieder herstellen möchtest. In diesen Fällen solltest du aber auch die Gruppen ( ID und Name ) synchronisieren.
luj hat geschrieben: also das script waere nach wie vor super!!!!
für ein einzeiliges Kommando ein Script zu schreiben ist schon ziemlich fad. Ich habe es daher nicht einmal auf Syntaxfehler überprüft.
Aber bitte sehr:

Code: Alles auswählen

#!/bin/bash
if [ -n "$1" ]; then
  USERNAME=$1
else
  echo "`usage error: basename $0 username [groupname [usershell [homedir [comment]]]]" >&2
  exit 1
fi
if [ -n "$2" ]; then
  GROUPNAME=-g $2
fi
if [ -n "$3" ]; then
  USERSHELL="-s $3"
fi
if [ -n "$4" ]; then
  HOMEDIR="-d $4"
fi
if [ -n "$5" ]; then
  COMMENT="-c $5"
fi

eval useradd $USERSHELL $HOMEDIR $COMMENT $GROUPNAME -m "$USERNAME"
Gruß
gms

luj
Beiträge: 44
Registriert: 19.01.2007 16:07:15

Beitrag von luj » 06.02.2007 10:14:59

Hallo,

super. danke.

bekomme hier die meldung:

line 4: unexpected EOF while looking for matching ``'
line 21: syntax error: unexpected end of file

danke

gruß

luj
Beiträge: 44
Registriert: 19.01.2007 16:07:15

Beitrag von luj » 06.02.2007 10:40:44

Hallo,

kann man noch diesen befehl da auch noc einbauen:

quotatool -u testuser -b -q “5 Mb” -l "7 Mb" /

also noch die punkte: soft limit eingeben und hard limit eingebe.

mehr will ich nicht. :oops:

danke, danke, danke

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 06.02.2007 10:42:52

Bisschen selber denken ist schon erlaubt :)

Code: Alles auswählen

else
  echo "`usage error: basename $0 username [groupname [usershell [homedir [comment]]]]" >&2 
Sollte wohl eher so aussehen:

Code: Alles auswählen

else
  echo "usage error: $(basename $0) username [groupname [usershell [homedir [comment]]]]" >&2 

luj
Beiträge: 44
Registriert: 19.01.2007 16:07:15

Beitrag von luj » 06.02.2007 10:56:50

sorry, ich bin da nicht so fit.

bekomme jetzt.
./useranlegen
usage error: useranlegen username [groupname [usershell [homedir [comment]]]]

hmm.

nepos ich moechte dich bitte auch mal kurz meine frage im dateiserver forum zu beantworten.

danke

gruß

Benutzeravatar
raina
Beiträge: 206
Registriert: 10.02.2004 18:29:42
Wohnort: Berlin

Beitrag von raina » 06.02.2007 11:02:28

Warum benutzt Du nicht

Code: Alles auswählen

 # adduser
ich finde useradd genauso bequem, wie passwd usw. von Hand zu bearbeiten.
Debian kaputt?
http://www.debianforum.de
Windows kaputt?
Hotline: 0180 5 67 23 30 (Support-Anfragen werden mit 75,00 € + MwSt. pro Anfrage berechnet)

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 06.02.2007 11:11:38

versuchs einmal mit dieser Version des Scripts:

Code: Alles auswählen

#!/bin/bash 
if [ -n "$1" ]; then 
  USERNAME=$1 
else 
  echo "usage error: `basename $0` username [groupname [usershell [homedir [comment]]]]" >&2 
  echo "ohne Usernamen lege ich keinen User an !!!">&2
  exit 1 
fi 
if [ -n "$2" ]; then 
  GROUPNAME=-g $2 
fi 
if [ -n "$3" ]; then 
  USERSHELL="-s $3" 
fi 
if [ -n "$4" ]; then 
  HOMEDIR="-d $4" 
fi 
if [ -n "$5" ]; then 
  COMMENT="-c $5" 
fi 

eval useradd $USERSHELL $HOMEDIR $COMMENT $GROUPNAME -m "$USERNAME"
Gruß
gms

luj
Beiträge: 44
Registriert: 19.01.2007 16:07:15

Beitrag von luj » 06.02.2007 11:24:16

hi,
klasse danke funktioniert.

meine letzte frage.

wie kann ich es ein wenig aufpeppeln:
ich meine, beim ausfuehren des scripts soll er mich fragen z.b. bitte geben sie den usernamen an -> en ter und dann weiter fragen z.b. bitte geben sie den namen fuer das homeshare.....

wenn der aufwand zu groß ist, dann vergessen wir es einfach. hast mir schon sehr geholfen.

danke

Antworten