尝试 ssh 时出现“此帐户当前不可用”错误

Mer*_*ğul 68 ssh

当我尝试建立 SSH 连接时发生错误:

$ ssh -p 22 www-data@x.x.x.x 
This account is currently not available
Run Code Online (Sandbox Code Playgroud)

小智 112

虽然我同意其他人的观点,即允许通过 www-data 用户通过 SSH 登录通常是一个坏主意,但一旦您以普通用户身份登录,同时运行多个命令与 www-data 的权限集可能会很有用-数据用户。在这种情况下,可以运行

sudo su -l www-data -s /bin/bash
Run Code Online (Sandbox Code Playgroud)

并且您将能够以 www-data 用户的身份访问您的文件。

  • 对于守护进程/服务用户的调试权限非常有用 (6认同)
  • 你刚刚拯救了我的一天,谢谢!我在启动 perl-fcgi 服务时遇到问题,因为启动脚本未使用 `-s /bin/bash` (2认同)

kra*_*xor 79

您收到This account is currently not available.错误是因为用户的 shellwww-data设置为/usr/sbin/nologin,并且设置它是有充分理由的。您不应以 身份登录www-data,它是 Web 服务器使用的特殊用户/组,不适合常规 shell 使用。

编辑:这是一个特别糟糕的主意给予sudo的权利www-data。如果 Apache 打算以 root 权限运行,它就不会有自己的组。通过这样做,您正在创建巨大的安全漏洞。你被警告了。

  • 这不是很有建设性。您认为我应该添加哪些信息以使这个答案更好? (7认同)
  • @kraxor 是正确的,但如果您必须以 root 身份登录并将 /etc/passwd 中的 /usr/sbin/nologin 更改为 /bin/bash,它将授予该用户 shell 访问权限。我只是在运行 snap 二进制文件作为我的网络服务器时这样做。www-data 通常是为 ubuntu 上的 nginx/apache 保留的,因此没有登录状态。 (5认同)
  • @RyanNerd 您可以选择不“在安全废话上给老鼠 a$$”。甚至在 Docker 中以 root 身份运行所有内容 [不推荐](https://news.ycombinator.com/item?id=7909622)。您当然可以将 Apache 配置为以“root”身份运行,或者将登录 shell 添加到“www-data”,但这就像打破瓶子打开一瓶酒一样,因为您太懒惰和粗心,不会使用软木塞-拧紧。 (4认同)