2013-10-27 14 views
14

Wenn Sie die Cygwin-Shell zum ersten Mal starten, sind Sie als Benutzer unter Windows angemeldet. Wie änderst du nur den Benutzernamen dieses Benutzers und lässt die bestehende Cygwin-Verbindung des Cygwin-Benutzers mit dem Windows-Benutzer? (d. h. ohne ein ganz neues Windows-Konto zu erstellen)cygwin-Benutzernamen umbenennen/ändern

Warum? Ich bin gerade von einer virtuellen Maschine zu Cygwin übergetreten und möchte alle meine Skripte und Shell-Anpassungen, die einen bestimmten Benutzernamen annehmen (zB .ssh/config, .subversion usw.) unverändert beibehalten.

Antwort

5

Mein ursprünglicher Benutzername war root (unter Windows, ironisch), und ich wollte es someuser sein. Ich dachte mir, ich möchte, dass mein Home-Verzeichnis auch /home/someuser ist und von Windows lesbar ist. Diese

ist das, was ich getan habe:

cd /home 
mv root someuser 
ln -s someuser root 
sed -e 's/^root/someuser/' -e 's/\/home\/root/\/home\/user/' -i /etc/passwd 

Und das ist alles, nur die Shell neu zu starten.

machte ich den Symlink bei Cygwin Updates /etc/passwd aus irgendeinem Grund, und stellt den Benutzernamen root und sein Home-Verzeichnis zu /home/root, so dass es noch möglich ist, sich anzumelden.

(To nur Änderung Benutzername: sed -e 's/^root/someuser/' -i /etc/passwd)

11

Für Menschen mit einer sauberen Cygwin Installation beginnen ein Ansatz sein könnte neue /etc/passwd-Datei erstellen (es standardmäßig nicht in der aktuellen Cygwin-Versionen vorhanden ist) mit mkpasswd -l >/etc/passwd, die einen Eintrag erstellen werden für jeden Benutzer (fügen Sie -b hinzu, um die eingebauten Benutzer wegzulassen oder nur -c, um nur einen Eintrag für den gegenwärtigen Benutzer zu schaffen, sehen Sie https://cygwin.com/cygwin-ug-net/mkpasswd.html).

Als nächstes öffnen Sie einfach /etc/passwd benennen Sie das Konto dort (erste Spalte).

Siehe https://cygwin.com/cygwin-ug-net/ntsec.html für eine Beschreibung wie Cygwin die Zuordnung zwischen "Cygwin" und Windows-Benutzer behandelt. Oh, und es gibt auch eine mkgroup, die ähnlich verwendet werden kann, siehe https://cygwin.com/cygwin-ug-net/mkgroup.html.

Sie werden sehen, dass das Erstellen nicht offiziell empfohlen wird, aber aus meiner Erfahrung hat es keine Probleme verursacht, vielleicht könnte es, wenn Sie ziemlich fortgeschrittene Sachen mit Benutzer/Gruppenrechten tun würden oder wenn Sie es nicht halten -date, wenn Sie die Windows-Benutzer ändern.

2

Das ist, was ich tat, dass unter Windows 10 gearbeitet, die Elemente von zwei anderen Antworten kombiniert:

  1. Verify Ihre Cygwin/etc/passwd nicht
  2. cd/home
  3. mv oldname newname existiert
  4. ln -s newname oldname
  5. "mkpasswd -l>/etc/passwd"
  6. bearbeiten/e (dies wird viele Konten in Ihre neue/etc/passwd einfügen) tc/passwd und den oldname Eintrag finden und verändern „oldname“ auf „newname“ an drei Stellen an diesem einzigen einzeiligen Eintrag
  7. alle Cygwin Granaten töten
  8. eine neue Cygwin Shell bringen

Genießen! Es könnte sein, dass die Schritte 5-8 von selbst funktionieren würden, aber es ist 3:17 Uhr und mir ist es egal.