我在Google上search了好几个小时的答案,似乎无法直接回答我的问题。 我发现很多教程,但很多都是模糊的。
无论如何:
我最近在我的服务器上设置了VSFTPD。 我正在运行CentOS 6.4(如果这有什么区别)。 我已经使用useradd创build了用户“testing”,它可以成功login(SSH和FTP)然而,这是我正在做的事情:
创build用户(使用useradd)与VSFTPD一起使用并为其禁用SSH。 这些用户将他们限制在他们的web目录(例如/var/www/domain/example.com),这样他们就可以用FTPlogin,并且上传,编辑,删除和创build目录。
作为参考,这是我的configuration文件:
anonymous_enable = NO
local_enable = YES
WRITE_ENABLE = YES
local_umask = 022
dirmessage_enable = YES
xferlog_enable = YES
connect_from_port_20 = YES
xferlog_std_format = YES
chroot_local_user = YES chroot_list_enable = YES
听= YES
pam_service_name = vsftpd userlist_enable = YES tcp_wrappers = YES
非常感谢。 如果我的解释不够充分,请道歉。 我不知道该怎么说。
我假定你主要是问如何防止用户能够使用SSH – 据我所知 – 你的vsftpdconfiguration应该是好的基于chroot_local_user选项被设置为是。
您可以简单地将用户的shell更改为/ bin / false(确保将其添加到/ etc / shells以防止ftp服务器可能出现问题),并且您的用户将能够通过SSH进行身份validation,但他们只会获得倾倒出来。
或者你可以在/ etc / ssh / sshd_config中使用AllowUsers / DenyUsers – 但是这可能需要每次更改允许login时更新sshconfiguration,而使用useradd命令可以将用户的shell设置为/ bin / false
useradd -s /bin/false <everything else>
然后,如果您稍后想授予他们SSH访问权限,则可以使用usermod将shell更改为bash(例如)。