FreeBSD兼容模式linux账户指向FreeBSD账户造成的困扰
发现FreeBSD兼容模式linux账户指向FreeBSD账户,这导致账户出现了紊乱。
比如FreeBSD下账户guest的id是1001,linux兼容模式下的guest账户id是1004
# FreeBSD下目录归属
drwxr-xr-x 71 skywalk skywalk 108 9月 6 13:59 skywalk
# Linux下mud归属
drwxr-xr-x 71 linuxskywalk linuxskywalk 108 Sep 6 05:59 skywalk
这样默认linux兼容模式下会出问题(大约是权限问题)
这时候在linux执行:
chroot -R guest:guest /home/guest
会导致FreeBSD下的guest账户目录所有者变成1004:1004,导致报错。
解决的方法是手工到/etc/passwd里面,将两个系统里的guest id 改成同一个,比如都改成1001
这样暂时性的解决了问题,不过还有遗留问题,就是目录在Linux中,权限显示组正常,用户不正常
drwxr-xr-x 71 skywalk linuxskywalk 108 Sep 6 05:59 skywalk
总结
总结经验就是,若以后再开Linux兼容模式,可以设一个跟宿主里面一样的账户,注意跟宿主的用户id设为同一个,这样就可以在两个系统里使用同一个用户目录了,传递文件方便很多。
如果不允许开用户目录(因为宿主机里已经开了),可以试试:先开一个其它名字的用户,然后改用户名和用户目录试试。总之在使用这个用户之前修改好,就不会有任何的困扰。
当然,本来跑FreeBSD的人就少,里面再跑Linux兼容的人更少,所以这套技术一般人用不到啊!