2013-10-27 27 views
14

Quando si avvia la shell Cygwin per la prima volta, si è effettuato l'accesso come utente su Windows. Come si cambia solo il nome utente di quell'utente, lasciando l'associazione cygwin esistente dell'utente Cygwin con l'utente Windows? (vale a dire senza creare un account Windows completamente nuovo)Rinomina/cambia nome utente cygwin

Perché? Ho appena spostato da una macchina virtuale a Cygwin e desidero riutilizzare tutti i miei script e personalizzazioni di shell che presuppongono un nome utente specifico (pensiamo a .ssh/config, .subversion, ecc.) Senza modifiche.

risposta

5

Il mio nome utente originale era root (in Windows, per ironia della sorte) e volevo che fosse someuser. Ho pensato che avrei voluto che anche la mia home directory fosse /home/someuser, ed essere leggibile da Windows.

Questo è quello che ho fatto:

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

E questo è tutto, basta riavviare il guscio.

ho fatto il link simbolico nel caso in cui gli aggiornamenti Cygwin /etc/passwd per qualche ragione, e ripristina il nome utente per root e la sua casa dir per /home/root, in modo che sia ancora possibile effettuare il login.

(Per solo cambiamento il nome utente: sed -e 's/^root/someuser/' -i /etc/passwd)

11

per le persone che iniziano con una nuova installazione Cygwin un approccio potrebbe essere quello di creare un nuovo file /etc/passwd (non esiste per impostazione predefinita nelle versioni attuali Cygwin) utilizzando mkpasswd -l >/etc/passwd che creerà una voce per ogni utente (aggiungere -b per omettere gli utenti incorporati o solo -c per creare solo una voce per l'utente corrente, vedere https://cygwin.com/cygwin-ug-net/mkpasswd.html).

Successivamente, è sufficiente aprire /etc/passwd rinominare l'account in là (prima colonna).

Vedere https://cygwin.com/cygwin-ug-net/ntsec.html per una descrizione di come Cygwin gestisce la mappatura tra "Cygwin" e utente Windows. Oh e c'è anche un mkgroup che può essere usato allo stesso modo, vedere https://cygwin.com/cygwin-ug-net/mkgroup.html.

Vedrai che la creazione non è raccomandata ufficialmente, ma dalla mia esperienza non ha causato alcun problema, forse potrebbe farlo se avessi fatto cose piuttosto avanzate che coinvolgono i diritti utente/gruppo o se non lo hai tenuto aggiornato -Data quando cambi gli utenti di Windows.

2

Questo è quello che ho fatto che ha lavorato su Windows 10 che combina elementi di altre due risposte:

  1. verificare la tua Cygwin/etc/passwd non esiste
  2. cd/home
  3. mv oldname newname
  4. ln -s newname oldname
  5. "mkpasswd -l>/etc/passwd" (questo inserirà molti conti nel nuovo/etc/passwd)
  6. modificare/e tc/passwd e trovare la voce oldname, e alterare "oldname" a "newname" in tre punti su quel singolo voce di una riga
  7. uccidere tutte le shell Cygwin
  8. aprire una nuova shell Cygwin

Godere! Potrebbe essere il caso in cui i passaggi 5-8 funzionerebbero da soli, ma sono le 3:17 e non mi interessa.