我在USB记忆棒上安装了Cygwin。我将在两台计算机上使用Cygwin。 (我的笔记本电脑和台式电脑。)
不幸的是,这两台计算机有不同的用户名。 (用户和ryang)。因此,每次切换这两台计算机时,用户主目录的位置都会变化。
如果我将Cygwin与ryang
一起使用,则主目录为/home/ryang
。如果我将Cygwin与user
一起使用,则主目录位于/home/user
。但我想只使用一个用户,#34; sohnryang"。
我不想更改这两个计算机的设置。对此有什么好的解决方案吗?
答案 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
SID差异可能导致在两台计算机上创建的文件之间出现授权问题,具体取决于系统类型。 Windows Home版本通常比专业版本更令人费解。
答案 1 :(得分:1)
另一个快速解决方案 - 如果您是每台计算机上唯一的Cygwin用户 - 是编辑文件/etc/nsswitch.conf并将db_home设置为所需的主目录位置:
db_home: /home/MyName
这实际上并不会更改用户名本身。如果以这种方式对目录进行硬编码,则登录Cygwin的 ALL 用户将被设置为使用同一目录。但对于单用户系统,它快速,简单,并且像魅力一样。