LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1032|回复: 3

配置vsftpd时为了安全,把本地用户的shell改为nologin后,连ftp也不能访问了?

[复制链接]
发表于 2007-2-6 00:55:07 | 显示全部楼层 |阅读模式
vsftpd安装完之后,基本上可以使用了,但是还存在一点问题:
vsftpd.conf的配置:

listen=YES
max_clients=100
max_per_ip=5
check_shell=NO

#listen_ipv6=YES

anonymous_enable=YES

local_enable=YES

write_enable=YES

local_umask=022

#anon_upload_enable=YES

#anon_mkdir_write_enable=YES

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

#chown_uploads=YES
#chown_username=whoever

#xferlog_file=/var/log/vsftpd.log

xferlog_std_format=YES

#idle_session_timeout=600

#data_connection_timeout=120

#nopriv_user=ftpsecure

#async_abor_enable=YES

#ascii_upload_enable=YES
#ascii_download_enable=YES

#ftpd_banner=Welcome to blah FTP service.

#deny_email_enable=YES

#banned_email_file=/etc/vsftpd.banned_emails

anon_root=/var/ftp
#chroot_local_user=NO

chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list

#ls_recurse_enable=YES

secure_chroot_dir=/var/run/vsftpd

pam_service_name=vsftpd

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

#####################################


vsftpd.chroot_list的配置:
test
anonymous

####################################

系统文件passwd的配置(其中相关的一条):
test:x:1003:1003::/home/test:/bin/sh

其中/home/test是通过ln -s连接到/media/sda3/test

匿名用户登录后位于/var/ftp,其实也是连接到/media/sda3/pub中,只有浏览和下载的权限;test帐号登录后位于/media/sda3/test中,不能进去其它目录,在该目录中有所有权限。
问题是为了安全,在passwd中把test的登陆shell去掉,改成:test:x:1003:1003::/home/test:/usr/sbin/nologin,这样改完重新启动vsftpd服务,test帐号就连test目录也不能ftp了,不知道是哪里配置错了,帮忙看看吧。

其实我想实现的是:/media/sda3/下有个pub目录和其它个人的目录,pub中有个up目录;每个人用自己的帐号登录后被限定在自己的目录中,有所有权限,匿名登录后在pub目录中,只能浏览和下载,但是进入up目录后可以上传,但是这样太复杂了,不会设置,如果哪个好心人有类似的配置,希望能share出来让俺瞻仰学习一下!
发表于 2007-2-6 09:46:41 | 显示全部楼层
估计楼主需要的是 vsftpd 的虚拟用户功能,如果是,请移步 /usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS  
*and*
/usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS_2
查看相应文档
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-2-6 11:26:04 | 显示全部楼层
虚拟用户?那岂不是得结合mysql或者db?
google了很多文章,都是只说了要改shell,其它的就没再提起,难道这是针对虚拟用户才起作用?
回复 支持 反对

使用道具 举报

发表于 2007-4-27 13:00:51 | 显示全部楼层
echo "/usr/sbin/nologin" >> /etc/shells


即可

或者
check_shell=YES|NO
  此选项仅对不使用PAM方式的VSFTPD生效。当此选项关闭后,当本地用户登录时,VSFTPD不会检查/etc/shells文件以寻找一个有效的用户shell。默认为YES
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表