eigenes shell-script zum erstellen von benutzern

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von bernie, 29.12.2005.

  1. bernie

    bernie Jungspund

    Dabei seit:
    29.12.2005
    Beiträge:
    15
    Zustimmungen:
    0
    hallo zusammen,

    Ich möchte ein eigenes Script erstellen, welches einen Benutzer anlegt und für diesen noch zusätzlich in dessen Home-Verzeichnis ein Mail-Verzeichnis erstellt, damit seine Mails vom Mailserver gelesen werden können.

    Sämtliche Home-Verzeichnisse befinden sich im Ordner siismails und die Benutzer werden der Gruppe siismailer zugewiesen.

    Wenn ich die ganzen Befehle händisch hintereinaner eingebe, sieht das Ganze so aus:

    "username" und "passwort" solltem dem script per parameter mitgegeben werden

    Code:
    useradd -d /siismails/username -m -G siismailer username
    passwd username 
    passwort
    su username
    passwort
    cd ~
    maildirmake Maildir
    
    ich habe das ganze schon als textdatei ausprobiert
    funktioniert, bis auf die befehle, passwd und su, vermutlich weil danach nicht gleich der nächste befehl kommt

    und aus den man-pages werd ich auch nicht wirklich schlau. :hilfe2:

    schöne grüße. bernie
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. niLs

    niLs òle òle

    Dabei seit:
    10.06.2004
    Beiträge:
    153
    Zustimmungen:
    0
    Ort:
    Hannover
    Ich will mal nicht so sein :)

    Code:
    #!/bin/bash
    read -p "Username: " USERNAME
    read -p "Passwort: " PASSWORT
    useradd -d /siismails/$USERNAME -m -G siismailer $USERNAME
    echo $USERNAME:$PASSWORT |chpasswd
    cd /siismails/$USERNAME
    su -c $USERNAME `maildirmake Maildir`
    
    kp obs so funzt, is ausser hand geschrieben, nicht getestet :)


    //edit:
    das ganze natuerlich in ne datei packen, chmod u+x <dateiname>, schon kannste das script ausführen
     
  4. Brack

    Brack Mitglied

    Dabei seit:
    28.01.2005
    Beiträge:
    45
    Zustimmungen:
    0
    Ich bin mir sehr sicher, dass die letzte Zeile so lauten muss:

    Code:
    su $USERNAME -c 'maildirmake Maildir'
    
    Also die Reihenfolge der Parameter leicht anders und normale Anfuehrungszeichen statt Backticks.
     
  5. bernie

    bernie Jungspund

    Dabei seit:
    29.12.2005
    Beiträge:
    15
    Zustimmungen:
    0
    danke erstmals

    das ganze funktionier bis zum ändern des passworts
    da es deiner angabe nach nicht funktioniert hab ich es mal so probiert:
    Code:
    echo $PASSWORT & echo $PASSWORT | passwd $USERNAME
    nur das funktioniert auch nicht.
    falls es dir weiterhilft verwende ich suse 9.1
    man muss beim befehl passwd das passwort ja 2mal angeben, die erste eingabe schein er anzunehmen, nur die 2te nicht

    lg bernie
     
  6. Brack

    Brack Mitglied

    Dabei seit:
    28.01.2005
    Beiträge:
    45
    Zustimmungen:
    0
    Sein Beispiel mit chpasswd funktioniert bei mir prima (auch SUSE 9.1)...


    Du kannst die eine Zeile aber auch so abaendern und dann das Setzen des Passworts durch ein separates Kommando weglassen:

    Code:
    useradd -d /siismails/$USERNAME -m -G siismailer -p `mkpasswd $PASSWORT` $USERNAME
    
     
  7. niLs

    niLs òle òle

    Dabei seit:
    10.06.2004
    Beiträge:
    153
    Zustimmungen:
    0
    Ort:
    Hannover
    Was kommt denn bei dir für eine Fehlermeldung mit dem PW?

    Bei mir funktioniert das schon ewigkeiten und immer ohne Probleme, fehlt dir vielleicht chpasswd [1]?


    [1] http://chpasswd.sourceforge.net/ (auf gut glück :D)
     
  8. bernie

    bernie Jungspund

    Dabei seit:
    29.12.2005
    Beiträge:
    15
    Zustimmungen:
    0
    jetzt funktionierts, danke

    ich depp, chpasswd geht doch

    ich hab das ganze jetzt mit parametern gelöst
    als wenn ich in der shell ". scriptname.sh username passwort" eingebe, dann haut das ganze hin

    Code:
    useradd -d /siismails/$1 -m -G siismailer $1
    echo $1:$2 |chpasswd
    cd /siismails/$1
    su $1 -c 'maildirmake Maildir'
    
    das skript soll im endeffekt vom apache aufgerufen werden, besser gesagt im php mittels
    PHP:
    shell_exec(". scriptname.sh username passwort");
    nur der apache-benutzer wwwrun darf natürlich keine benutzer hinzufügen, muss ich jetzt im skript mittels "su" zum root welchsen?

    lg bernie
     
  9. oenone

    oenone Freier Programmierer[Mod]

    Dabei seit:
    22.08.2002
    Beiträge:
    599
    Zustimmungen:
    0
    Ort:
    Mannheim
    du willst sudo(8) :)

    auf bald
    oenone
     
  10. bernie

    bernie Jungspund

    Dabei seit:
    29.12.2005
    Beiträge:
    15
    Zustimmungen:
    0
    sudo bringt fehler bei "cd"-befehl

    danke, sudo bringt aber noch einen fehler
    Code:
    sudo: cd: command not found
    wenn ich es richtig verstanden habe ist der "cd"-befehl ein bash-builtin, deshalb habe ich in der sudoers-datei bei den befehlen "/bin/bash" eingetragen. funktioniert aber scheinbar nicht

    schöne grüße,
    bernie
     
  11. oenone

    oenone Freier Programmierer[Mod]

    Dabei seit:
    22.08.2002
    Beiträge:
    599
    Zustimmungen:
    0
    Ort:
    Mannheim
    was willst du mit cd bei sudo?

    auf bald
    oenone
     
  12. bernie

    bernie Jungspund

    Dabei seit:
    29.12.2005
    Beiträge:
    15
    Zustimmungen:
    0
    das ganze script sieht derzeit folgendermaßen aus:
    Code:
    sudo useradd -d /siismails/$1 -m -G siismailer $1
    echo $1:$2 | sudo chpasswd
    cd /siismails/$1
    su $1 -c 'maildirmake Maildir'
    wie bereits gesagt, wird das ganze vom wwwrund ausgeführt,
    das problem ist meiner meinung nach bei der zeile "cd /siismails/$1", denn der wwwrun kommt nicht in das benutzerverzeichnis eines anderen benutzers rein.

    lg bernie
     
  13. #12 Wolfgang, 08.01.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Die Zugriffsrechte werden nicht mit cd gesteuert.
    Siehe auch man chmod.
    Was du brauchst ist eventuell einen ganz anderen Lösungsansatz, oder die Auseinandersetzung mit chmod resp. s-Bit.
    Normalerweise sollten solche Dinge nicht vom Apache selbst ausgeführt werden.
    Du kannst ein normales Shellscript/Perlscript schreiben, welches dann vom Apache aus aufgerufen wird, und mit Rootrechten (siehe chmod) seine Aufgaben erledigt.
    Das Ergebnis kannst du ja dann im Apache ausgeben oder was auch immer.

    Gruß Wolfgang
     
  14. Brack

    Brack Mitglied

    Dabei seit:
    28.01.2005
    Beiträge:
    45
    Zustimmungen:
    0
    Moment! Das ganze Skript muesste doch eher per sudo gestartet werden, oder?

    Und das s-Bit wird fuer Skripte IIRC eh ignoriert, da zu grosses Sicherheitsrisiko.
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. bernie

    bernie Jungspund

    Dabei seit:
    29.12.2005
    Beiträge:
    15
    Zustimmungen:
    0
    die idee hat ich auch mal kurz, zum das skript
    einfach so aufzurufen:
    PHP:
    shell_exec("sudo . scriptname.sh username passwort");
    was muss ich denn da in die sudoers-datei reinschreiben?

    lg bernie
     
  17. Brack

    Brack Mitglied

    Dabei seit:
    28.01.2005
    Beiträge:
    45
    Zustimmungen:
    0
    Wozu ist eigentlich der Punkt in dem Kommando? Der macht in meinen Augen gar keinen Sinn. Ich wuerde das eher so machen:

    Code:
    shell_exec("sudo  /voller/pfad/zu/scriptname.sh username passwort"); 
    
    In die sudoers muesste dann sowas rein wie

    Code:
    wwwrun    localhost=NOPASSWD:/voller/pfad/zu/scriptname.sh
    
    Statt wwwrun halt der Benutzername, unter dem der Apache laeuft. Und den richtigen Pfad zu Deinem Skript natuerlich anpassen.
     
Thema: eigenes shell-script zum erstellen von benutzern
Besucher kamen mit folgenden Suchen
  1. ubuntu über einem scrihpt einen benutzer anlegen

    ,
  2. bash script Benutzer anlegen

    ,
  3. ubuntu über einem scripht benutzer anlegen

Die Seite wird geladen...

eigenes shell-script zum erstellen von benutzern - Ähnliche Themen

  1. Raspberry Pi bekommt eigenes Touchdisplay

    Raspberry Pi bekommt eigenes Touchdisplay: Das offizielle Zubehör rund um den Minirechner »Raspberry Pi« wurde um einen Touchscreen ergänzt. Die 7 Zoll große Erweiterung bietet eine...
  2. Linux Foundation kündigt eigenes Zertifizierungsprogramm an

    Linux Foundation kündigt eigenes Zertifizierungsprogramm an: Neben dem in diesem Jahr erweiterten Schulungsprogramm und dem kostenlosen »Massive Open Online Course« (MOOC) bietet die Linux Foundation jetzt...
  3. Eigenes Repository Lokal

    Eigenes Repository Lokal: Hallo Zusammen Ich möchte gerne Lokal im eigenen Netzwerk ein Repository betreiben, für Software die nicht in den offiziellen Repositorys von...
  4. Gnome-Entwickler planen eigenes App-Format

    Gnome-Entwickler planen eigenes App-Format: Die Gnome-Entwickler planen ein eigenes App-Format, welches Entwicklern das Integrieren ihrer Software und Nutzern das Installieren erleichtern...
  5. B2G: Mozilla kündigt eigenes Betriebssystem an

    B2G: Mozilla kündigt eigenes Betriebssystem an: Die vor allem durch Firefox und Thunderbird bekannte Organisation Mozilla will nun auch ein mobiles Betriebssystem entwickeln, das vorrangig für...