php 服务器 web 用户设置

php 服务器 web 用户设置

我需要在我的 ubuntu 10.10 服务器上设置一个基本的 Web 用户帐户来托管网页。此帐户应仅限于访问机器上的必要目录。我设置了以下帐户,但尝试登录时没有任何反应:

:~$ groupadd -g 1005 webgroup
//I then changed the group and permissions of a current user I had already created
:~$ sudo usermod -g 1005 -s /bin/false -d /home/webuser/ webuser

当我尝试使用此帐户登录时,我输入了用户名 [webuser] 和密码,但它只是将我重定向回登录:提示。我尝试重置密码,但仍然遇到同样的问题。

有人可以告诉我我做错了什么,或者建议另一种可以达到相同结果的方法(如果不是更好的结果)。

听起来我根本不想让用户登录。但是(我对这个概念的理解显然非常有限,所以请耐心听我说)难道用户不必登录才能接收 Web 请求吗?换句话说,Web 请求由当时登录的用户接收和解释(对吗?)。如果这是一台持续运行的服务器,并且在我们的服务器机房中始终处于开启状态,那么登录用户是否应该是我刚刚创建的“Web 用户”,以限制试图入侵的个人的访问权限?

答案1

您无需让任何人“登录”到服务器即可运行 Web 服务器。Web 服务器(Apache?)将以 nobody、apache、http 或该服务设计为的任何用户身份运行。只要它处于开启状态,它就会向任何有效请求提供内容。由于它以守护进程方式运行,因此它将继续运行,而无需任何人主动登录。此外,出于安全原因,任何人都不必以 Web 服务器用户身份登录。

如果你希望用户能够上传和放置新内容到网络服务器,但又不真正授予他们访问机器的权限,那么他们就不需要 SSH 访问权限(尽管你可以授予他们该权限),他们真正需要的是FTP 访问盒子上的安全位置,Web 服务器配置为从该位置读取。通常,大多数 Web 服务器都会从 读取/var/www- 尽管您可以将其配置为从系统中的任何目录读取。它们也不需要经常登录才能运行。只需通过 FTP 登录 - 上传文件 - 刷新浏览器即可。

答案2

您使用的是 /bin/false,它会连接然后关闭连接。也许将用户的 shell 设置为 /bin/bash 可以解决这个问题。

:~$ chsh -s /bin/bash webuser

当我检查 /etc/shells 时,没有看到列出 /bin/false。

答案3

您到底想要实现什么?问题表明您只想允许访问选定的目录,但您对 tenach 的回答的评论表明您想完全禁止登录。

将用户封闭在特定目录层次结构中的最佳方法是 chroot SSH 会话,并且有关于如何做到这一点的教程在网络上。我不建议仅仅依赖 Unix 权限来保护。

相关内容