UID ändern?

  • Moin,


    ich habe da grad mal eine dienstliche Frage. Ich habe in einem Linux System den User A mit einer falschen UID angelegt. Diese UID wird für einen User B aber zwingend benötigt. Mit dem User A wurde aber bereits eine Applikation installiert. Der Applikationsverantwortliche meint, dass ich die UID nicht so einfach wechseln kann, da die Berechtigungen an der UID hängen. Er hätte da schon Probleme gehabt und rät davon ab.


    Meines Erachtens sollte das Problemlos gehen. Was meint ihr?


    Die gedachte Vorgehensweise wäre dann folgende:


    - Backup der passwd/shadow und der Datein/Verzeichnisse mit der alten UID machen
    - Applikation herunterfahren
    - Ein find mit der Suche nach der alten UID ausführen, auf die neue UID ändern
    - Applikation wieder hochfahren und testen
    - Im Zweifelsfall wiederherstellen


    Ich kann mir nur vorstellen, dass wenn die Applikation die UID verwendet es zu Problemen kommen kann.
    Habe ich etwas übersehen? Also könnten man das so machen?


    Danke und Gruß,


    machnetz

    “Hast du Glück, ist es gut. Hast du kein Glück, ist es auch gut. Hast du eben Pech gehabt. War vielleicht dein Glück.”

  • Hi,


    passt vielleicht nicht ganz, aber hier mal meine aufbereitete (auf einer yavdr-Lösung basierenden) bash-Lösung.



    ###############################################
    # uid gid vom VDR anpassen (Korrektur der Basispaketinstallation)
    ###############################################
    #
    #
    old_uid=`cat /etc/passwd | awk -F":" '/VDR user/ {print $3}'`
    old_gid=`cat /etc/passwd | awk -F":" '/VDR user/ {print $4}'`
    new_uid=4242
    new_gid=4242
    find_opts='/ -xdev -ignore_readdir_race'
    if [ "$new_uid" != "$old_uid" -o "$new_gid" != "$old_gid" ] ; then
    if [ "$new_uid" != "$old_uid" ] ; then
    echo "uid VDR anpassen: $old_uid->$new_uid..."
    usermod -u $new_uid vdr
    find $find_opts -uid $old_uid -exec chown -h vdr {} \;
    fi
    if [ "$new_gid" != "$old_gid" ] ; then
    echo "gid VDR anpassen: $old_gid->$new_gid..."
    # Remember files that have set setuid bit
    suid_files=`find $find_opts -gid $old_gid -perm -4000`
    groupmod -g $new_gid vdr
    find $find_opts -gid $old_gid -exec chgrp -h vdr {} \;
    # Restoring setuid bits
    for f in $suid_files; do
    echo "Adjusting setuid bit of $f"
    chmod 6750 $f
    done


    fi
    fi



    Gruß lopiuh

    update 03/2018: VDR: Asus P5KPL-E, 4 GB RAM single rank, Debian stretch+eTobi-Pakete

    GeForce GT 730
    4xDVBS2 (2 x Mystique SaTiX-S2) an SelfSAT (4x-Ausgang)
    2 x Hitachi HGST HMS5C4040ALE640 (RAID-0)
    Backup-System: storebackup.org (genial)

  • Hi,


    danke für das Script. Es scheint zu funktionieren, zumindest in meiner VM konnte ich das erfolgreich laufen lassen. Allerdings nur, wenn keine Dienste und Benutzer liefen und angemeldet waren. Ich muss sehen, dass ich die Maschine exclusiv für mich alleine habe, dann werde ich das dort laufen lassen.


    Gruß, machnetz

    “Hast du Glück, ist es gut. Hast du kein Glück, ist es auch gut. Hast du eben Pech gehabt. War vielleicht dein Glück.”

  • Hi,


    yep, jetzt wo Du es sagst, fällt es mir wieder ein. Usermod achtet darauf, dass der user, dessen uid Du ändern willst, nicht eingeloggt ist. Ist ja nett, das man da vor dem Risiko von Inkonsistenzen geschützt wird. Andernfalls würde während / kurz nach dem Script der laufende user mit seiner alten uid wieder files erzeugen können. Ggf wie Du schreibst, die Dienste beenden oder im entsprechenden runlevel starten, wenn man kein root hat, wirds natürlich schwierig.


    Ciao und viel Erfolg


    Lopiuh

    update 03/2018: VDR: Asus P5KPL-E, 4 GB RAM single rank, Debian stretch+eTobi-Pakete

    GeForce GT 730
    4xDVBS2 (2 x Mystique SaTiX-S2) an SelfSAT (4x-Ausgang)
    2 x Hitachi HGST HMS5C4040ALE640 (RAID-0)
    Backup-System: storebackup.org (genial)

  • Ohne root wird es sowieso schwierig, die uid zu ändern, deshalb können wir wohl davon ausgehen, dass das kein Problem ist.


    Ich hoffe, die Anwendung merkt sich nicht irgendwo die uid, mit der sie installiert wurde...


    Lars.

  • Hi mini,


    oh ja, die Sorge hatte ich auch bei mir. Hab mir dann aber gesagt, wer macht denn sowas, sind ja nicht bei Win hier :mua

    update 03/2018: VDR: Asus P5KPL-E, 4 GB RAM single rank, Debian stretch+eTobi-Pakete

    GeForce GT 730
    4xDVBS2 (2 x Mystique SaTiX-S2) an SelfSAT (4x-Ausgang)
    2 x Hitachi HGST HMS5C4040ALE640 (RAID-0)
    Backup-System: storebackup.org (genial)

  • Ach, ich hab schon eine Menge Mist programmiert, egal unter welchem System.
    Also gehe ich davon aus, dass auch andere Mist machen. :)


    Lars.

Jetzt mitmachen!

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