重命名/更改cygwin用户名

Irf*_*rfy 18 cygwin username

首次启动Cygwin shell时,您将以Windows上的用户身份登录.如何更改该用户的用户名,将Cygwin用户的现有cygwin关联与Windows用户保持一致?(即没有创建一个全新的Windows帐户)

为什么?我刚从虚拟机转移到Cygwin,并希望重用我的所有脚本和shell自定义,这些脚本和shell自定义假设一个特定的用户名(想想.ssh/config,.subversion等)而不做任何更改.

phk*_*phk 16

对于以干净的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用户.


Irf*_*rfy 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
Run Code Online (Sandbox Code Playgroud)

这就是全部,只需重新启动shell即可.

我创建了符号链接,以防Cygwin /etc/passwd因某种原因更新,并将用户名恢复root为其主目录/home/root,以便仍然可以登录.

(要更改用户名:sed -e 's/^root/someuser/' -i /etc/passwd)


gro*_*190 5

这对我有用(Windows 10):

  1. rm /etc/passwd
  2. mkpasswd -c > /etc/passwd
  3. ln -s /home/oldname /home/newname
  4. sed -i 's/oldname/newname/g' /etc/passwd