在 Jessie 上添加可以登录 FTP 但没有 shell 的用户

在 Jessie 上添加可以登录 FTP 但没有 shell 的用户

我已经设置了一个 vsftpd 服务器,并使用 chroot 将用户锁定在其主目录中,效果很好。此后,我尝试编辑 passwd 文件以将默认 shell 设置为/bin/false,甚至/user/sbin/nologin为了阻止用户使用 SSH 登录并查看我的文件夹结构(即使他们缺乏rwx权限)。

虽然我对第二个选项不起作用并不感到惊讶,但我想知道为什么如果我将默认 shell 设置为/bin/sh或以外的任何内容,我也无法使用 FTP 客户端登录该帐户/bin/bash

我该如何让该帐户成为 FTP 的有效登录帐户,但没有 SSH 访问权限?

答案1

对于无需 shell 或其他访问的 ftp 访问,vsftp 支持虚拟用户。该解决方案基本上相当于使用 PAM 在不同的用户列表上进行操作,并调整 vsftpd 配置以遵循该列表。这里有一篇详细的文章:

文章提到需要“db_util”;在 Jessie 上你可以找到几个版本,如下所示:

apt-cache search '^db.*-util$'

答案2

通过 OpenSSH 配置,可以禁用以下位置的访问sshd_config

DenyUsers joe bob

尽管列出允许 SSH 的人员列表,然后拒绝其他人可能更明智:

AllowGroups wheel staff

或者将所有 ftp 用户归为一个特定组(例如,nossh),然后否认这一点。更改组成员身份比始终进行编辑更容易sshd_config

DenyGroup nossh

对此进行切片的另一种方法(在 Linux 上)是调整 PAM 配置,例如用于pam_access.so/etc/pam.d/ssh加上适当的access.conf(5)配置)但不用于 FTP。

相关内容