2013-10-27 103 views
14

當您第一次啓動Cygwin shell時,將以您在Windows上的用戶身份登錄。如何更改該用戶的用戶名,將Cygwin用戶的現有cygwin關聯與Windows用戶保持一致? (即不創建全新的Windows帳戶)重命名/更改cygwin用戶名

爲什麼?我剛剛從虛擬機轉移到Cygwin,並希望重新使用所有腳本和shell自定義,這些腳本和shell自定義會假設特定用戶名(想到.ssh/config,.subversion等)而不做更改。

回答

5

我的原始用戶名是root(在Windows下,具有諷刺意味),我想它是someuser。我想我也想讓我的家庭目錄也是/home/someuser,並且可以從Windows讀取。

這是我做過什麼:

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

而這一切,只需重新啓動外殼。

我做出某種原因的情況下Cygwin的更新/etc/passwd符號鏈接,並恢復用戶名root及其家目錄到/home/root,所以它仍然是可能的登錄。

(要變化用戶名:sed -e 's/^root/someuser/' -i /etc/passwd

11

對於開始用乾淨的Cygwin安裝的方法可能是創建新的文件/etc/passwd人(不按默認在當前版本的Cygwin使用 mkpasswd -l >/etc/passwd這將創建一個條目存在)對於每個用戶 (添加-b以省略內置用戶或僅爲-c僅爲當前用戶創建條目,請參閱https://cygwin.com/cygwin-ug-net/mkpasswd.html)。

接下來,只需打開/etc/passwd重命名那裏的帳戶(第一列)。

有關Cygwin如何處理「Cygwin」和Windows用戶之間映射的描述,請參閱https://cygwin.com/cygwin-ug-net/ntsec.html。 哦,也有一個mkgroup,可以使用類似的,請參閱https://cygwin.com/cygwin-ug-net/mkgroup.html

您會看到創建不是正式推薦的,但根據我的經驗,它並沒有造成任何問題,也許如果你會做相當先進的東西涉及用戶/組權限,或者如果你沒有保持它的最新更新Windows用戶時。

2

這是我做的是工作在Windows 10,結合其他兩個答案的元素:

  1. 驗證您的Cygwin/etc/passwd中不存在
  2. CD /家
  3. MV使用oldName NEWNAME
  4. LN -s NEWNAME使用oldName
  5. 「mkpasswd -l>/etc/passwd文件」(這將許多帳戶插入新的/ etc/passwd文件)
  6. 編輯/ E TC/passwd和找到使用oldName項,改變「使用oldName」,以對單一行條目
  7. 殺死所有的cygwin殼「NEWNAME」在三個地方
  8. 帶來了一個新的cygwin外殼

請享用!可能會出現這種情況,步驟5-8可以自行工作,但現在是凌晨3點17分,我不在乎。