Wie kann ich meine eigene Benutzer-ID ändern?

49

Es gibt nur einen Benutzer auf meinem System. Wie kann ich die Benutzer-ID von der Standardeinstellung 1000 ändern?

Wenn zusätzliche Schritte erforderlich sind, um den Anmeldevorgang bei einer typischen Desktop-Installation nicht zu unterbrechen, sollten diese als Teil der Antwort eingeschlossen werden.

ændrük
quelle
5
Was sind aus Neugier die Gründe für die Änderung einer Benutzer-ID?
Olivier Lalonde
14
Wenn Sie normalerweise Daten mit anderen Systemen über NFS austauschen oder nur eine Kopiermethode verwenden, bei der die UID erhalten bleibt, ist es hilfreich, wenn Sie systemübergreifend dieselbe UID für denselben Benutzernamen verwenden.
João Pinto
João hat es richtig gemacht. Insbesondere hoffe ich, UIDs mit Benutzern in Mac OS X abzugleichen, damit ein freigegebenes Dateisystem die beabsichtigten Berechtigungen für alle Betriebssysteme enthält.
ændrük
1
Die aktuelle Version von Nethack (3.6.0) speichert Spiele einschließlich der aktuellen UID im Dateinamen. Wenn Sie ein gespeichertes Spiel zwischen Computern synchronisieren möchten, müssen Sie die UIDs abgleichen. (Verwendung eines Symlinks ist nicht praktikabel)
Jonathan Hartley

Antworten:

27

Das Problem ist, dass Sie, wie Sie bereits erwähnt haben, die UID Ihres Benutzers nicht ändern können, wenn dieser in einer Sitzung angemeldet ist. Sie müssen ein anderes Benutzerkonto verwenden, um fortzufahren.

Sie müssen jedoch kein neues Benutzerkonto erstellen, es zum Administrator hochstufen, sich abmelden, sich beim neuen Administratorkonto anmelden, die UID Ihres primären Kontos ändern, sich abmelden, sich bei Ihrem primären Konto anmelden und dann den neuen Administratorbenutzer löschen Ändern Sie einfach Ihre UID. ;)

Sie können in den Wiederherstellungsmodus booten (diese Option wird angezeigt, wenn Sie Ihren Computer starten oder die Umschalttaste unmittelbar nach Abschluss der BIOS-Meldungen gedrückt halten. Verwenden Sie diese Option ESCauf Dell-Computern, auf denen OEM-Ubuntu ausgeführt wird.). Dadurch werden Sie in einer Stammsitzung angemeldet. Wenn Sie als Root angemeldet sind und nicht Ihr gewöhnliches Benutzerkonto , können Sie Ihre UID ändern.

Da der Wiederherstellungsmodus nur in der Befehlszeilenschnittstelle funktioniert, müssen Sie nach der Anmeldung in einer Stammsitzung Folgendes tun:

  1. Verwenden BubbaJ Anweisungen des Root - Dateisystem in Schreib-Lese-Modus zu mounten : mount -o remount,rw /.

  2. Verwenden Luis Alvarado Befehl : usermod -u NEW_UID your_username.

  3. Befolgen Sie die Anweisungen von ddeimeke , um die Dateiberechtigungen zu aktualisieren.
  4. rebootStarten Sie anschließend Ihren Computer neu ( ), damit Sie im normalen Modus starten können.
Alexandre P.
quelle
1
Funktioniert nicht für Ubuntu 14.04. Nach dem Ausführen von usermod -u NEW_UID your_usernameund find / -uid 1000 -exec chown -h 5000 '{}' \+führt ein Neustart zu einer GUI-Anmeldung, bei der nur die Sitzung erraten wird.
Kay
Vielleicht werden versteckte Dateien in der Heimat nicht richtig geändert? Verwenden Sie Verschlüsselung für Ihr Zuhause?
Mathe
Möglicherweise möchten Sie Ihre /etc/login.defsund /etc/adduser.conf-Dateien überprüfen , wenn Sie Ihre Benutzer-ID außerhalb der in diesen Konfigurationsdateien bereitgestellten Richtlinien geändert haben. Benutzer außerhalb der Richtlinienbeschränkungen werden in der Anmeldeschleife nicht angezeigt, aber Sie können die Richtlinie ändern. Siehe diese Antwort
K Markey
usermod: user user_name is currently used by process 1118 @Alexandre P.
alper
54

Sie können es ändern in /etc/passwd, /etc/groupund /etc/shadowoder Sie verwenden eine der bevorzugten possibilties oben. Am wichtigsten ist jedoch, dass Sie den Eigentümer aller Dateien ändern, die dem Benutzer gehören.

Wenn zum Beispiel die alte Benutzer-ID 1000 und die neue 5000 ist:

find / -uid 1000 -exec chown -h 5000 {} +

Dasselbe gilt für die Gruppen-ID (falls Sie diese ebenfalls ändern).

find / -gid 1000 -exec chgrp -h 5000 {} +
ddeimeke
quelle
8
Dies ist ein wirklich wichtiger Punkt. Viele Dinge brechen ab, wenn Sie den in den anderen Antworten angegebenen Techniken folgen, ohne dies ebenfalls zu tun.
Poolie
4
Ich habe gerade gelernt, dass man es besser nutzen sollte sudo find / -xdev -uid 1000 -exec chown 5000 '{}' \+, sonst würde man gemountete Daten (in /mnt, was möglicherweise unerwünscht ist) und Dateien einschließen , mit denen man sich besser nicht anlegen sollte /procund /dev. Siehe diesen Beitrag
Sebastian
2
Das ist keine gute Idee. In dem Fall, dass sich / home auf einem anderen Dateisystem befindet, ändern Sie nicht einmal den Besitz Ihrer eigenen Dateien.
Dienstag,
Bei dieser Antwort sollten Sie die Gruppen- und UID-Berechtigungen ändern, bevor Sie die Dateien in / etc bearbeiten, oder?
MrDaniel
Es ist egal, was Sie zuerst tun.
Ddeimeke
25

Komplettlösung basierend auf @AlexandreP. und @ddeimeke + offizielle Dokumentation. Kein Neustart erforderlich.

Die Debian / Ubuntu-Richtlinie besagt, dass es, wenn es einen Benutzer jimmit Benutzer-ID 1001gibt, auch eine Gruppe jimmit Gruppen-ID gibt 1001. Diese Lösung aktualisiert auch diese Gruppen-IDs.

  1. Aktivieren Sie das Root-Konto :

    sudo passwd root
    
  2. Wenn der Benutzer angemeldet ist, melden Sie sich ab (auch auf virtuellen Terminals)
  3. Gehe zu VT1: Ctrl-Alt-F1
  4. Melden Sie sich als root an und führen Sie dies mit dem angegebenen Benutzernamen und der alten / neuen UID aus:

    # put the information we need in variables
    username=...
    old_uid=`id -u $username`  # looks up current (old) uid
    new_uid=...
    
    # update the user ID and group ID for $username
    usermod -u $new_uid $username
    groupmod -g $new_uid $username
    
    # update the file ownerships
    # NB: you cannot combine the next two chowns, or files where 
    # only the uid xor the gid matches won't be updated  
    chown -Rhc --from=$old_uid $new_uid /    # change the user IDs
    chown -Rhc --from=:$old_uid :$new_uid /  # change the group IDs
    
  5. Ausloggen
  6. Anmelden als $username
  7. Deaktivieren Sie das Root-Konto :

    sudo passwd -dl root
    
l0b0
quelle
Das Aktivieren des Root-Kontos sollte nicht erforderlich sein. Verwenden Sie einfach den Wiederherstellungsmodus .
ændrük
2
Dies sollte schneller als ein Neustart sein, weshalb ich es gepostet habe.
l0b0
3
In Ubuntu 14.04 und 14.10 müssen Sie auch die erweiterten ACL-Berechtigungen in / media korrigieren. Andernfalls bricht die automatische Bereitstellung (in Nautilus / Nemo) ab, da die alte UID erhalten bleibt. sudo setfacl -m "u:<NEWUID>:r-x" /media/<USERNAME> sudo setfacl -x "u:<OLDUID>" /media/<USERNAME>
richud.com
Dies wirkte wie ein Zauber für mich. Musste aber nur die UID wechseln.
chmike
Das Aktivieren des Root-Kontos klingt für mich einfacher (und weniger beängstigend) als die Verwendung des Wiederherstellungsmodus.
Jonathan Hartley
7

Wenn Sie zur Konsole gehen und Folgendes eingeben: Es usermod --helpwird einer der folgenden Parameter angezeigt:

-u, --uid UID neue UID für das Benutzerkonto

Wenn Sie also die UID für den Benutzer cyrex ändern möchten, gehen Sie wie folgt vor:

usermod -u 1000 cyrex

das würde die uid für cyrex von ihrem vorigen wert auf 1000 ändern

Wenn Sie es visuell machen wollen, dann machen Sie dies:

Gehe zu

SYSTEM -> ADMINISTRATION -> BENUTZER UND GRUPPEN

Wählen Sie sich aus der Liste aus und klicken Sie auf ERWEITERTE EINSTELLUNGEN

Die UID befindet sich am Ende dieses Fensters.

Luis Alvarado
quelle
1
Ich habe die von Ihnen vorgeschlagene grafische Methode ausprobiert, es wird jedoch die Meldung angezeigt, dass Sie die Benutzer-ID nicht ändern können, während der Benutzer angemeldet ist. Haben Sie diese Methode getestet?
ændrük
2
Hehe gut das ist wahr. Ich habe es mit einem anderen Konto versucht. Sie müssen sich über root oder ein anderes Administratorkonto anmelden. Dann mach den grafischen Weg. Das tut mir leid.
Luis Alvarado
2
  • Gehe zu System >> Administration >> Benutzer und Gruppen

Alt-Text

  • Klicken Sie auf Erweiterte Einstellungen und gehen Sie zur Registerkarte Erweitert. Dort unten sehen Sie Ihre Benutzer-ID.
  • Ändern Sie es und klicken Sie auf OK.
    Alt-Text
karthick87
quelle
1
Sollte ich die Warnung in Ihrem Screenshot einfach ignorieren, "Sie können die Benutzer-ID nicht ändern, während der Benutzer angemeldet ist."?
ændrük
Sie müssen es von einem anderen Benutzerkonto ändern, um diese Warnung zu entfernen.
karthick87
7
Meine Frage lautet "Wie kann ich meine eigene Benutzer-ID ändern ?". Wenn Sie beabsichtigen, dass ich einen neuen Benutzer erstelle, um diesen Wert zu bearbeiten, sollten Sie Ihre Antwort so bearbeiten, dass dies angezeigt wird.
ændrük
0

Mit KDE: Im Menü "Erweiterte Benutzereinstellungen ändern":

Das Wechseln von einem anderen Benutzer funktioniert nicht für 1000. Dies ist der Standardbenutzer.

das muss man manuell machen - meine erfahrung

Skidzo
quelle
0

Zuerst müssen Sie sich zumindest für eine Weile als root anmelden. Lassen Sie uns dies ermöglichen:

sudo passwd root

Starten Sie neu, drücken Sie Strg + Alt + F1, um zur Konsole zu wechseln, melden Sie sich als root an, und führen Sie die folgenden Schritte aus (der Besitz im Home-Verzeichnis wird automatisch erledigt):

groupmod --gid NEWGID username
usermod  --uid NEWUID username 

Für Ihre Dateien an anderen Orten als Ihrem Heimatverzeichnis:

sudo chown -R username:username /path/to/files

Löschen und sperren Sie das Passwort von root, wenn Sie möchten. (Ich neige dazu, es zu behalten):

passwd -dl root
qed
quelle
0

Ich habe die Anweisungen von ddeimeke mit den folgenden Änderungen befolgt :

  1. Ich habe mich nicht abgemeldet und stattdessen sudo su
  2. Ich habe nicht berührt /etc/shadow

Ich habe es in den anderen Antworten erwähnt gesehen, dass Sie entweder zur Wiederherstellung booten oder sich als einloggen sollten root. Meins war eine neue Ubuntu 14-Installation, also war ich bereit zu testen, ob es funktionieren würde, ohne mich als einzuloggen root. Auch ich habe dies auf einer EC2-Instanz über SSH gemacht.

KalenGi
quelle