SSH 无法登陆主目录

SSH 无法登陆主目录

我最近将 Raspbian 安装到了 Raspberry Pi 中。作为安装过程的一部分,我使用和将用户名和组从默认 ( pi) 更改为我自己的(我们称之为user)。我还使用将主目录 ( ) 移动到新用户名 ( ) 。一切工作正常,除了当我使用 SSH 登录而不是登陆新用户目录 ( ) 时,我最终到达主目录 ( )。知道为什么会发生这种情况吗?有什么解决办法吗?这不是什么大问题,但它让我感到困惑。usermodgroupmod/home/pi/home/userusermod/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在登录后运行。虽然简单,但有效。

相关内容