关闭

vsftpd 在redhat as 4.0下安装碰到的问题

1743人阅读 评论(0) 收藏 举报

vsftpd安装与vsftpd虚拟用户的实现(源码包)
来自:Linux爱好者之家

vsftpd源码包在本站Download中(http://linux.pchk.com)下载.
先检查目录和权限,可能存在。(如果已经自带安装vsftpd了,先删了rpm -e xxxxxxx)

useradd nobody
mkdir  /usr/share/empty
mkdir  /var/ftp
useradd  -d  /var/ftp   ftp
chown   root.root   /var/ftp
chmod    og-w   /var/ftp
解包   tar zxvf  vsftpd-1.2.2.tar.gz
cd vsftpd-1.2.2
make
make install
设置运行的方式,到xinetd中,修改
vi /etc/xinetd.d/vsftpd  将 disable=yes  改为no
这样就可以用xinetd控制了 ,命令:
service xinetd  restart
然后测试  ftp  ip     (如果没有问题,本地用户应该可以登陆,但是login faild,这是缺少本地用户认证pam文件,所以要从刚刚编译好的文件中复制过来)
cp  RedHat/vsftpd.pam   /etc/pam.d/ftp      (没有这步将不能本地登陆)
cp   vsftpd.conf   /etc/vsftpd.conf     (配置文件,没有这个文件,只能匿名)
然后配置一下vsftpd.conf文件,就可以本地登陆了
vi /etc/vsftpd.conf
anonmous_enable=NO   (禁匿名)
Local_enable=YES    (本地可以登陆)
write_enable=YES   (本地写权限)
local_umask=022
重启xinetd 然后测试
service xinetd  restart
ftp ip
本地登陆应该没有问题了 。
当然,我们应该使用独立的FTP服务,修改xinetd中vsftpd脚本文件
vi  /etc/xinetd.d/vsftpd  将disable=no  改成yes
然后再修改vsftpd.conf文件
vi  /etc/vsftpd.conf  添加一句  Listen=YES
重启xinetd服务  service xinetd restart
然后启动vsftpd服务
/usr/local/sbin/vsftpd    /etc/vsftpd.conf  &
这样就可以使用独立的服务了
使用非常规端口,(不用21端口)
vi /etc/vsftpd.conf 添加  listen_port=2122  
然后杀掉vsftpd进程   killall  -9  vsftpd
然后启动  /usr/local/sbin/vsftpd   /etc/vsftpd.conf  &
然后测试  ftp  ip  2122
^^^^^^^^^^^^^^^^
以上是安装和配置过程,下面就是虚拟用户的实现了  
目标:建3个虚拟用户  
1,ftpupload  可以上传下载,新建文件夹 ,但不能删除文件和文件夹 ,不能重命名文件  
2,ftpdownload   只能下载  (一般提供这个用户)
3,ftpadmin    有ftpupload权限 还有删除和重命名文件的权限。
注:虚拟用户顾名思义,只能登陆FTP,不能登陆系统,并缩定在自家目录中
方法:
1,建logins.txt文件 ,作用就是存放虚拟用户用户名和密码 用vi 建
vi logins.txt
ftpupload
123                  (这里是你为ftpupload用户设置的密码)
ftpdownload
456
ftpadmin
789
然后建用户库文件
db_load  -T  -t  hash  -f  logins.txt   /etc/vsftpd_login.db
chmod  600  /etc/vsftpd_login.db
当然还需要虚拟用户认证文件
cd vsftpd-1.2.2/EXAMPLE
cp   VIRYUAL_USERS/vsftpd.pam    /etc/pam.d/ftp.vu
建个目录/home/ftptest 是存放FTP文件地方
然后再建个用户,这个用户就是虚拟用户的映射用户
useradd -d  /home/ftptest   virtual
chmod  700   /home/ftptest
chown  virtual.virtual   /home/ftptest  (注意,如果没有virtual组要先建个)
vi  /etc/vsftpd.conf   (修改配置文件,加虚拟用户)
添加
guest_enable=YES                      (启用虚拟用户)
guest_username=virtual                (虚拟用户映射本地用户)
pam_service_name=ftp.vu            (指定pam配置文件)
user_config_dir=/etc/vsftpd_user_conf  (不同的虚拟用户配置文件的存拍柯?
然后建vsftpd_user_conf目录
mkdir   /etc/vsftpd_user_conf
建ftpdownload用户文件,只能下载
vi  ftpdownload
anon_word_readable_only=NO
建ftpupload 用户文件,可以上传下载,新建文件夹 ,但不能删除文件和文件夹 ,不能重命名文件。
vi ftpupload
anon_word_readable_only=NO
write_enable=YES                             增加写权限
anon_upload_enable=YES                  增加上传权限
anon_mkdir_write_enable=YES           增加创建目录权限
然后再建ftpadmin用户文件,就是在ftpupload文件基础上 ,添加删除权限
cp  /etc/vsftpd_user_conf/ftpupload  /etc/vsftpd_user_conf/ftpadmin
vi ftpadmin
添加  anon_other_writer_enable=YES       增加删除权限
重启vsftpd服务
killall  -9  vsftpd
然后启动  /usr/local/sbin/vsftpd   /etc/vsftpd.conf  &
分别用ftpdownload,ftpupload,ftpadmin用户登陆。
OK,设置成功....................................
以上就是我学vsftpd的手记,希望能给大家些帮助,当然还有些vsftpd.conf中基本的参数,这里就不列出了

我的vsftpd.conf文件如下:

dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
#connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
xferlog_file=/var/log/vsftpd.log

直到看了以上文章才解决问题:

1。本地用户无法登陆,原因:没有把pam文件拷贝过去

2。匿名用户无法登陆,原因:没有把/var/ftp的权限设置正确。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:357128次
    • 积分:4533
    • 等级:
    • 排名:第6506名
    • 原创:102篇
    • 转载:10篇
    • 译文:0篇
    • 评论:101条
    最新评论
    Template Engine