2013-10-27 19 views
14

Przy pierwszym uruchomieniu powłoki Cygwin użytkownik jest zalogowany jako użytkownik systemu Windows. Jak zmienić tylko nazwę użytkownika tego użytkownika, pozostawiając istniejące powiązanie Cygwin użytkownika Cygwin z użytkownikiem Windows? (tj. bez tworzenia całkowicie nowego konta systemu Windows)Zmień nazwę/nazwę użytkownika cygwin

Dlaczego? Właśnie przeniosłem się z maszyny wirtualnej do Cygwin i chcę ponownie użyć wszystkich moich skryptów i dostosowań powłoki, które zakładają konkretną nazwę użytkownika (myślę o .ssh/config, .subversion itd.) Bez zmian.

Odpowiedz

5

Moja oryginalna nazwa użytkownika to root (pod Windows, ironicznie), a chciałem, aby była to someuser. Pomyślałem, że chcę, aby mój domowy katalog był również /home/someuser i był czytelny z Windows.

To co zrobiłem:

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

I to wszystko, po prostu ponownie uruchomić powłokę.

zrobiłem dowiązania w przypadku Cygwin aktualizacjach /etc/passwd z jakiegoś powodu, i przywraca nazwę użytkownika root i jego domu dir do /home/root, tak że nadal jest możliwe, aby zalogować się.

(Do tylko zmian nazwa użytkownika: sed -e 's/^root/someuser/' -i /etc/passwd)

11

dla osób rozpoczynających czystą instalację Cygwin podejście może być stworzenie nowego /etc/passwd plik (nie istnieje domyślnie w aktualnych wersjach Cygwin) używając mkpasswd -l >/etc/passwd który będzie utworzyć wpis dla każdego użytkownika (dodaj -b, aby pominąć wbudowanych użytkowników lub po prostu -c, aby utworzyć tylko wpis dla bieżącego użytkownika, zobacz https://cygwin.com/cygwin-ug-net/mkpasswd.html).

Następnie, po prostu otwórz /etc/passwd zmień nazwę konta tam (pierwsza kolumna).

Zobacz opis sposobu, w jaki Cygwin obsługuje mapowanie między "Cygwin" i użytkownikiem systemu Windows. Och i istnieje również mkgroup, które mogą być używane podobnie, patrz https://cygwin.com/cygwin-ug-net/mkgroup.html.

Zobaczysz, że tworzenie nie jest oficjalnie zalecane, ale z mojego doświadczenia wynika, że ​​nie spowodowało żadnych problemów, może mogłoby to zrobić, gdybyś zrobił dość zaawansowane rzeczy z udziałem praw użytkownika/grupy lub jeśli nie zrobiłbyś tego na bieżąco. -data po zmianie użytkowników systemu Windows.

2

To, co zrobiłem, że pracował na Windows 10, która łączy w sobie elementy dwóch innych odpowiedzi:

  1. zweryfikować swoją Cygwin/etc/passwd nie istnieje
  2. cd/home
  3. mv oldname newname
  4. ln -s newname oldname
  5. "mkpasswd -l>/etc/passwd" (będzie włożyć wiele kont do nowego pliku/etc/passwd)
  6. edit/e tc/passwd i znaleźć oldname wpis, a zmiany „oldname” na „newname” w trzech miejscach na tym jednym wejściem jednego wiersza
  7. zabić wszystkie cygwin skorup
  8. wychować nowe cygwin skorupę

Cieszyć się! Może się zdarzyć, że kroki 5-8 będą działały same, ale jest 3:17 i nie obchodzi mnie to.