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


Answers:


59

你得到的This account is currently not available.错误,因为用户的外壳www-data被设置为/usr/sbin/nologin,它的设置一个很好的理由。您不应以身份登录www-data,它是Web服务器使用的特殊用户/组,不适合常规Shell使用。

编辑:授予权利是一个特别糟糕的主意。如果Apache打算在具有root权限的情况下运行,则它将没有它自己的组。这样,您将创建巨大的安全漏洞。你被警告了。sudowww-data


5
这不是很有建设性。您认为我应该添加哪些信息以改善此答案?
kraxor

4
@kraxor是正确的,但是如果您必须以root用户身份登录并将/ etc / passwd中的/ usr / sbin / nologin更改为/ bin / bash,它将授予该用户shell访问权限。我只是在运行快照二进制文件作为Web服务器时执行此操作。www-data通常为ubuntu上的nginx / apache保留,因此没有登录状态。
EngineerDave

4
@RyanNerd您的选择是不要“让老鼠放弃有关安全性的废话”。即使在Docker内部,也不建议以root身份运行所有内容。您当然可以将Apache配置为root,或将登录外壳添加到www-data,但这就像通过破坏瓶子来打开一瓶葡萄酒一样,因为您太懒和粗心,无法使用软木螺钉。
kraxor


我有一个类似的情况。我想以无头模式运行LibreOffice,这种方式可以由PHP脚本调用以转换文档,并且可以将文件作为www-data写入磁盘,因为这些文件以后需要由www-data删除(一部分PHP脚本)进行清理。此功能(以www-data用户身份启动无头LibreOffice)曾经在Ubuntu的早期版本中工作,并且我知道这是对这些早期版本的安全性改进。
ywarnier '16

56

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

sudo su -l www-data -s /bin/bash

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


2
对于调试守护程序/服务用户的权限非常有用
jmng

您刚刚保存了我的一天,谢谢!我无法启动perl-fcgi服务,因为启动脚本未使用-s /bin/bash
Couitchy

-1

我要问的第一个问题是,您要这样做是什么?

kraxor是100%正确的,您永远不能使用Apache / Nginx用户来SSH进入服务器。这样做会吸引每个半脑的黑客进入您的服务器。

如果您需要以该用户身份运行脚本或某些程序,则可以尝试sudo -u www-data yourscript或者可以暂时chown将文件授予具有登录特权的用户。允许此帐户具有这种访问权限只是一个不同的主意。


6
您应该知道这su -不适用于禁用登录的帐户。
索林

哪个帐户被禁用?它并没有说明该帐户被禁用
TheStarvingGeek '16

1
好在passwd中没有登录就意味着禁用登录:)
索林

1
这是服务帐户,而不是禁用帐户,您可以在其下运行命令
TheStarvingGeek

我的服务器似乎不知道这种区别@TheStarvingGeek
LovesTha
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.