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

  • 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. ;)

  • Jetzt müsste man nur noch wissen, welcher Befehl einem alle verfügbaren Linux- und Samba-User auflistet und diese dann z. B. in ein Array packt, damit man dieses dann mit usermod und smbpasswd abarbeiten kann

  • 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.

    Edited once, last by Keyboardnudel (February 10, 2022 at 5:17 PM).

  • 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.

    Edited 2 times, last by Sojan (February 10, 2022 at 5:35 PM).

  • 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

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!