如何将创建的用户限制到某个目录并禁用 VSFTPD 的 SSH

如何将创建的用户限制到某个目录并禁用 VSFTPD 的 SSH

我已经在 Google 上搜索了好几个小时,但似乎无法直接找到问题的答案。我找到了很多教程,但很多都很模糊。

无论如何:

我最近在我的服务器上设置了 VSFTPD。我运行的是 CentOS 6.4(如果这有任何区别的话)。我使用 useradd 创建了用户“test”,它可以成功登录(使用 SSH 和 FTP)然而,这就是我想要做的:

创建用户(使用 useradd)以使用 VSFTPD 并禁用他们的 SSH。使用这些用户将他们限制在他们的 Web 目录中(例如 /var/www/domain/example.com),以便他们可以使用 FTP 登录并在示例中上传、编辑、删除和创建目录。

作为参考,这是我的配置文件:

匿名启用=否

本地启用=是

写入启用=是

本地 umask=022

dirmessage_enable=是

xferlog_enable=YES

连接端口 20=是

xferlog_std_format=是

chroot_local_user=是 chroot_list_enable=是

听=是

pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES

非常感谢。如果我的解释不够详细,请原谅。我不知道该如何措辞。

答案1

我假设您主要想问的是如何阻止用户使用 SSH - 据我所知 - 根据 chroot_local_user 选项设置为是,您的 vsftpd 配置应该可以正常运行。

您可以简单地将用户的 shell 更改为 /bin/false 之类的东西(确保将其添加到 /etc/shells 以防止 ftp 服务器可能出现的问题),然后您的用户将能够通过 SSH 进行身份验证,但他们只会被转储回去。

或者你可以在 /etc/ssh/sshd_config 中使用 AllowUsers/DenyUsers - 但每次更改允许登录的用户时,这可能需要更新 ssh 配置,而你可以使用 useradd 命令将用户的 shell 设置为 /bin/false

useradd -s /bin/false <everything else>

然后,如果您稍后想要授予他们 SSH 访问权限,您只需使用 usermod 将他们的 shell 更改为 bash(例如)。

相关内容