UBuntu ftp

Ubuntu9.04下配置ftp

关键字: ubuntu9.04 ftp vsftpd

在Ubuntu9.4下配置ftp服务,我用的是最常用的vsftpd 。

首先,在线安装vsftpd:(以下都是在root权限下操作)

# apt-get install vsftpd

 

执行成功后,会在home下生成ftp账户:/home/ftp.(安装默认目录)

 

然后,修改/etc/vsftpd.conf:


#独立模式启动 *
listen=YES

#验证方式 *
pam_service_name=vsftpd

# 开启写权限
write_enable=YES

#允许上传
anon_upload_enable=YES

# 接受匿名用户,默认无密码请求,可根据实际情况开启或关闭
anonymous_enable=YES

# 接受本地用户,即登录系统的用户
local_enable=YES

#新增文件权限设定,本地用户新增档案时的umask 数值。默认值为077。不过,其他大多数的FTP服务器都是使用022
local_umask=022
(最好还是改为local_umask=022,因为在默认的权限下,修改或新建文件后文件无法显示,因为没有读权限)

# 使用上传/下载日志,日志文件默认为 /var/log/vsftpd.log,可以通过 xferlog_file 选项修改
xferlog_enable=YES

# 日志使用标准 xferlog 格式
#xferlog_std_format=YES

# 使用 port 模式连接,并启用 20 端口
connect_from_port_20=YES

# 用户登陆后 idle 时间,超过设置超则被踢出服务器
#idle_session_timeout=600

#指定登录转向目录
local_root=/var/www/myApp

#所有帐户都只能访问当前目录,即不能访问local_root指定目录的上级目录
chroot_local_user=YES   

anonymous_enable=YES:是否允许匿名ftp,如否,则选择NO;
local_enable=YES:是否允许本地用户登陆;
local_umask=022:设置本地用户的文件掩码为缺省022,默认值为077;
anon_upload_enable=YES:是否允许匿名上传文件;
anon_mkdir_write_enable=YES:是否允许匿名用户有创建目录的权利;
dirmessage_enable=YES:是否显示目录说明文件,缺省是YES,但需要手工创建.message文件;
xferlog_enable=YES:是否记录ftp传输过程;
connect_from_port_20=YES:是否确信端口传输来自20(ftp-data);
chown_username=username:是否改变上传文件的属主,如果需要,则输入一个系统用户名,可以把上传的文件都改成root属主;
xferlog_file=/var/log/vsftpd.log:ftp传输日志的路径和名字缺省是/var/log/vsftpd.log;
xferlog_std_format=YES:是否使用标准的ftp xferlog模式;
idle_session_timeout=600:设置缺省的断开不活跃会话时间;
data_connection_timeout=120:设置数据传输超时时间;
nopriv_user=ftpsecure:运行vsftpd需要的非特权系统用户,缺省是nobody;
ascii_upload_enable=YES:是否使用ASCII方式上传文件;
ascii_download_enable=YES:是否使用ASCII方式下载文件;
ftpd_banner=Welcome to shuke FTP service:定制欢迎信息;
deny_email_enable=YES:是否禁止匿名用户使用某些邮件地址;
banned_email_file=/etc/vsftpd.banned_emails:如果禁止匿名用户使用某些邮件地址,则输入禁止的邮件地址的路径和文件名;
chroot_list_enable=YES:是否将系统用户限制在自己的home目录下;
chroot_list_file=/etc/vsftpd.chroot_list:如果限制系统用户在home目录下,则在列表中写出被禁止的用户列表;
max_clients=Number:如果以standalone模式启动,那么,只有$Number个用户可以连接,其他用户将得到错误信息,缺省是0,不限制用户数;
message_file:设置访问一个目录时获得的目录信息文件的文件名,缺省是.message。

 

配置好你想要的服务,要重启vsftpd才能让配置生效:

/etc/init.d/vsftpd restart

 其它的命令还有开启:

/etc/init.d/vsftpd start

 关闭vsftpd:

/etc/init.d/vsftpd stop

 

遇到的问题:

默认创建的账户ftp无法登录,可自己创建账户:。

增加用户名一堆(都属于ftpuser组的)
groupadd ftpuser
mkdir /home/john/
useradd -g ftpuser john
passwd john

更改文件所有者以及权限
chown -v -R john.ftpuser /home/john/
chmod -v -R 700 /home/john/

给ftpuser组所有用户共享一个文件夹,做一个连接
ln -v -s /home/ftpuser/ /home/john/ftpuser

在每个用户的文件夹中设置.message
做欢迎界面

编辑/etc/vsftpd.user_list
列举所有的用户列表。

编辑/etc/vsftpd.chroot_list
填写不准进入上层目录的用户名

给/home/ftp/中允许匿名写的目录修改权限。
chmod -v 777 /home/ftp/temp/

做两个定时工作
crontab -e
在里面写
0 4 * * 1 rm -rf /home/ftp/incoming/temp/*
# 每星期一凌晨4点清空/home/ftp/incoming/temp/文件夹
0 5 10 * * /sbin/reboot
# 每个月10日凌晨5点重新启动电脑


如何把用户限制在家目录中呢?

  我们要自己建一个文件,在/etc目录中

  #touch /etc/vsftpd.chroot_list

  以beinan这个用户为例

  在vsftpd.chroot_list这个文件中,把beinan添上去就行。

  然后改/etc/vsftpd/vsftpd.conf文件,找如下的两行

  #chroot_list_enable=YES

  #chroot_list_file=/etc/vsftpd.chroot_list

  把前面的#号去掉,也就是这样的

  chroot_list_enable=YES

  chroot_list_file=/etc/vsftpd.chroot_list

  如果没有这样的两行,就可以自己添加上去也是一样的。

  设置好后,重新vsFTPD服务器。

        删除默认的目录/home/ftp

 

reboot或者重启vsftpd
好了,ftp服务器架构完成了。

 

你可能感兴趣的:(ubuntu,ftp服务器,list,upload,file,session)