我最近将 Raspbian 安装到了 Raspberry Pi 中。作为安装过程的一部分,我使用和将用户名和组从默认 ( pi
) 更改为我自己的(我们称之为user
)。我还使用将主目录 ( ) 移动到新用户名 ( ) 。一切工作正常,除了当我使用 SSH 登录而不是登陆新用户目录 ( ) 时,我最终到达主目录 ( )。知道为什么会发生这种情况吗?有什么解决办法吗?这不是什么大问题,但它让我感到困惑。usermod
groupmod
/home/pi
/home/user
usermod
/home/user
/home
该目录的/home/user
存在权限为 755。此外,该/etc/passwd
文件还包含如下所示的条目:
user:x:1000:1000:User:/home/user:/bin/bash
对我来说,一切看起来都很好,但当我从 ssh 登录时,我仍然收到类似的提示user@raspberrypi /home $
。
答案1
-m
你使用的时候有没有使用这个选项usermod -d
?
如果没有,那么您需要实际移动主目录并更改 /etc/passwd 中的条目。
如果 /home/user 尚不存在,这会将 /home/pi 重命名为 /home/user:
cd /home
[ ! -e user ] && sudo mv pi user
否则,检查它user
的主目录实际上是/home/user
而不只是/home
......以下是您可以用来查找用户的主目录的一些方法:
grep '^user:' /etc/passwd # works for system-local accounts only
finger user # requires finger to be installed
pinky -l user # part of GNU coreutils
getent passwd user # should work no matter where the account
data is stored
答案2
我使用 Raspbian 也遇到同样的问题。添加名为“bill”的用户后,raspbian 无法创建该用户的主目录。尽管我使用“useradd bill && passwd bill”创建了用户帐户,并且 /etc/passwd 文件包含 /home/bill 作为主目录的预期路径,但从未创建实际路径“/home/bill” 。我必须以 root 身份手动创建 /home/bill,然后使用 chmod 和 chown 将权限和所有权更改为正确的值。现在,当我使用 ssh 以“bill”身份登录时,我最终会进入“/”目录而不是 /home/bill。 /home/bill/.bashrc 文件不会做任何欺骗来更改默认值 /home/bill 的目录。
看来 raspbian 的工作方式与其他 Linux 发行版的工作方式不同。这显然是一个BUG。
答案3
我在 TrueNAS (FreeBSD) 中看到了同样的行为。
- 在 /etc/passwd 中编辑用户以拥有 homedir
/path/newhome
- 退出 SSH,重新登录并接收
Could not chdir to home directory /path/oldhome
- 能够
chdir /path/newhome
没有问题
这可能需要重新启动系统才能生效,但这不是我可以随心所欲重新启动的系统。
作为解决方法,您可以chdir /path/newhome
在登录后运行。虽然简单,但有效。