在cygwin中只使用一个用户

时间:2017-04-05 23:27:29

标签: windows cygwin portable-applications

我在USB记忆棒上安装了Cygwin。我将在两台计算机上使用Cygwin。 (我的笔记本电脑和台式电脑。)

不幸的是,这两台计算机有不同的用户名。 (用户和ryang)。因此,每次切换这两台计算机时,用户主目录的位置都会变化。

如果我将Cygwin与ryang一起使用,则主目录为/home/ryang。如果我将Cygwin与user一起使用,则主目录位于/home/user。但我想只使用一个用户,#34; sohnryang"。

我不想更改这两个计算机的设置。对此有什么好的解决方案吗?

2 个答案:

答案 0 :(得分:2)

问题不仅在于两个用户对于Cygwin是不同的,它们也与Windows的观点不同。

要重命名cygwin用户,您可以使用文件/etc/passwd

 mkpasswd -c > /etc/passwd
 sed -e "s/ryang:/sohnryang:/g" -i /etc/passwd

你可以在第二台电脑中重复它

 mkpasswd -c >> /etc/passwd
 sed -e "s/user:/sohnryang:/g" -i /etc/passwd

所以现在两人将共享相同的cygwin名称。 仅需要:来更改第一个和第六个字段;没有触及第五个。

然而,对于Windows,两个用户也不同,因为您可以使用

进行验证
C:\Users\myself>whoami /user    
USER INFORMATION
----------------
User Name            SID
==================== =============================================
my_computer\myself   S-1-5-21-531030479-1339336681-3415091201-1009

如果用户名在Windows中相同,则两台计算机中的两个SID也不同。 Windows用户名和SID合并在/etc/passwd

的第5个字段中

SID差异可能导致在两台计算机上创建的文件之间出现授权问题,具体取决于系统类型。 Windows Home版本通常比专业版本更令人费解。

答案 1 :(得分:1)

另一个快速解决方案 - 如果您是每台计算机上唯一的Cygwin用户 - 是编辑文件/etc/nsswitch.conf并将db_home设置为所需的主目录位置:

db_home: /home/MyName

这实际上并不会更改用户名本身。如果以这种方式对目录进行硬编码,则登录Cygwin的 ALL 用户将被设置为使用同一目录。但对于单用户系统,它快速,简单,并且像魅力一样。