40 User auf Linux und SAMBA mit Skript umbenennen, einzeln zu aufwändig

  • Hallo zusammen,

    ich habe bei der Erstellung von Linux- und SAMBA-Usern nicht nachgedacht und müsste diese nun umbenennen.

    Die User heißen alle vorname-nachname und sollen sowohl in Linux (Ubuntu Server) als auch in SAMBA in vornamenachname umbenannt werden.

    Könnte ich hier ein Skript basteln, welches alle User erfasst, und diese umbenennt?

    Danke für Tipps

    LG

  • Sorry Samba ist nicht meine Welt.

    Nur ich denke alleine mit dem Usernamen ist es ja nicht getan, gleichzeitig wirst du das Passwort angleichen müssen oder ?

    Ob das gleichzeitig geht wage ich zu bezweifeln aber da wissen andere mit Sicherheit mehr.

    samba-tool

  • Geht natürlich.

    Über wie viele User reden wir denn? Ein Script zu erstellen und zu testen nimmt ja auch Zeit in Anspruch.

    Brauchst du das Passwort da nicht zu ändern ?

  • Probiere es aus...habe gerade keine VM zum Testen. :D

    Bei mir läuft kein Samba ?

    Aber OK das reicht.

    Ich dachte immer da müssten auch das andere Spiel mit geändert werden.

    Wieder was gelernt.

  • Bei mir läuft kein Samba ?

    Aber OK das reicht.

    Ich dachte immer da müssten auch das andere Spiel mit geändert werden.

    Wieder was gelernt.

    Lieber (noch) nicht daraus lernen. ;)

    Habe keine Ahnung, wie sich das auf die Homeverzeichnisse und Samba auswirkt. Müsste man an einem Testuser ausprobieren.

  • Die Option -l lässt wohl das Homeverzeichnis unangetastet, müsste dann noch manuell verschoben werden.

    Code
    man usermod
    
    -l, --login NEW_LOGIN
    The name of the user will be changed from LOGIN to NEW_LOGIN. Nothing else is changed. In particular, the user's home directory or mail spool should probably be renamed manually to reflect the new login name.
    
    -m, --move-home
    Move the content of the user's home directory to the new location. If the current home directory does not exist the new home directory will not be created.This option is only valid in combination with the -d (or --home) option.usermod will try to adapt the ownership of the files and to copy the modes, ACL and extended attributes, but manual changes might be needed afterwards.
  • Danke dir es wird Zeit das ich mich da auch mal etwas einarbeite. :thumbup:

    Als Rentner hat man Glücklicherweise mehr davon. ;)

  • So könnte das Script anfangen.

    Statt echo müssten dann die Anweisungen mit usermod erfolgen

    Bash
    #!/bin/bash
    
    # Alle Nutzer mit Homeverzeichnis 
    grep /home /etc/passwd | cut -d: -f1  |
    
    while read -r line;
      do
       echo "$line"
      done
  • Danke Danke Danke

    Ich habe noch ein kleines Problem mit der Syntax - mit echo klappt das Ganze und die Usernamen werden ohne Bindestrich ausgegeben, aber wenn ich das ganze umbaue und in einer Variable $newname speichern will, kommt der Fehler "./userrename.sh: line 13: =: command not found".

    Fehler "./userrename.sh: line 13: =: command not found" hier:


    EDIT: Hab's! Hier die Lösung erstmal.

    Einmal editiert, zuletzt von Keyboardnudel (10. Februar 2022 um 17:17)

  • Danke Danke Danke

    Ich habe noch ein kleines Problem mit der Syntax - mit echo klappt das Ganze und die Usernamen werden ohne Bindestrich ausgegeben, aber wenn ich das ganze umbaue und in einer Variable $newname speichern will, kommt der Fehler "./userrename.sh: line 13: =: command not found".

    Fehler "./userrename.sh: line 13: =: command not found" hier:


    EDIT: Hab's! Hier die Lösung erstmal.

    Super, fast am Ziel. :thumbup:

    Hinweis: Du kannst deinen eigenen User aber nicht abändern, solange du selber angemeldet bist. Da müsstest du auf root wechseln und das Script ausführen.

    2 Mal editiert, zuletzt von Sojan (10. Februar 2022 um 17:35)

  • Es scheitert aktuell noch daran, das Passwort für den neu angelegten SAMBA-User per Skript zu ändern.

    Derzeit wird automatisch gemacht:

    - User in Linux ändern, Bindestriche im Namen entfernen

    Passwort setzen per bash klappt aber nicht, hier wird nur die Syntax ausgegeben von "smbpasswd" statt irgendwas zu machen

    Homeverzeichnisse werden ebenfalls nicht umbenannt

    Und da wären ja auch noch die gruppen, die so heißen wie die usernamen, diese müssen ebenfalls noch geändert werden, sehe ich gerade, oh je.....


    Hier das aktuelle Skript, was bis auf die automatische SAMBA-Passwort-Änderung schonmal funktioniert:

  • smbpasswd muss als root laufen. Es kann auch sein, dass der Nutzer umbenannt werden muss bevor das smbpasswd was macht.

    Hast du die smbpasswd-Commands schon getestet?

    Mastodon: @zocker@queer.party

    PC: Gentoo GNU/Linux @ linux-6.2.9 | zsh-5.9

    Lenovo IdeaPad L340: Arch GNU/Linux @ linux-6.0.8-hardened | zsh-5.9

    Lenovo ThinkPad T530: Void GNU/Linux @ linux-6.2.8| zsh-5.9

  • Und da wären ja auch noch die gruppen, die so heißen wie die usernamen, diese müssen ebenfalls noch geändert werden, sehe ich gerade, oh je.....

    Die Gruppe im Script zu ändern sollte kein Problem darstellen.

    Code
    usermod -g GRUPPE NUTZERNAME 

    Das kleine "g" ist wichtig

    Code
    usermod --help
      
    -g, --gid GRUPPE              Erzwinge GRUPPE als neue primäre Gruppe
    -G, --groups GRUPPEN          Neue Liste zusätzlicher GRUPPEN

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!