怎样用ubuntu14.04ftp架设文件共享服务器
FTP服务器的搭建,我要实现的需求是:
不允许匿名访问,因为我的机器不想让谁都能登录上来,随便获取文件,
需要锁定一个目录,因为在家里,我需要给媳妇下载一些** 韩剧之类的东西,媳妇会来我机器下载,但是我不想让他随意操作我的东西。
万一删除我的配置文件,我就惨了(吐槽一下韩剧:媳妇问我,你都没看过韩剧怎么知道它不好看呢,我说:我没吃过屎 但是知道它一定不好吃!)
另外,需要本机也能访问,因为我要做一些关于FTP的测试。
不单独建立FTP用户,FTP也使用ubuntu桌面的用户进行登录和操作,
我还不希望FTP开始启动。
好了 我们开始安装,很简单。
sudo apt-get install vsftpd
30秒内估计就能安装完。
下面开始配置:
首先备份配置文件。
linuxidc@ubuntu:/etc/init$ cd /etc/
linuxidc@ubuntu:/etc$ sudo cp vsftpdconf vsftpdconfold
接下来就是开始配置了,
咱们就针对需求来:
1 不允许匿名访问,因为我的机器不想让谁都能登录上来,随便获取文件,
配置如下:
23 anonymous_enable=NO
2需要锁定一个目录,因为在家里,我需要给媳妇下载一些** 韩剧之类的东西,
媳妇会来我机器下载,但是我不想让他随意操作我的东西。
万一删除我的配置文件,我就惨了
配置如下:
152 local_root=/home/linuxidc/公共的/FTP共享文件
备注:[FTP共享文件] 这个文件夹是我新建出来的
另外,需要本机也能访问,因为我要做一些关于FTP的测试。
配置如下:
26 local_enable=YES
不单独建立FTP用户,FTP也使用ubuntu桌面的用户进行登录和操作,
配置如下:
120 #chroot_local_user=YES
121 chroot_list_enable=YES
122 # (default follows)
123 chroot_list_file=/etc/vsftpdchroot_list
这里需要/etc/vsftpdchroot_list 这个文件,如果没有请新建:
sudo gedit /etc/vsftpdchroot_list
内容如下(例如我桌面的用户名为linuxidc):
duoduo
其实就是把你的用户名写进去
我还不希望FTP开始启动。 一会单独说!
贴出我的配置文件。
# Example config file /etc/vsftpdconf
#
# The default compiled in settings are fairly paranoid This sample file
# loosens things up a bit, to make the ftp daemon more usable
# Please see vsftpdconf5 for all compiled in defaults
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options
# Please read the vsftpdconf5 manual page to get a full idea of vsftpd's
# capabilities
#
#
# Run standalone vsftpd can run either from an inetd or as a standalone
# daemon started from an initscript
listen=YES
#
# Run standalone with IPv6
# Like the listen parameter, except vsftpd will listen on an IPv6 socket
# instead of an IPv4 one This parameter and the listen parameter are mutually
# exclusive
#listen_ipv6=YES
#
# Allow anonymous FTP (Disabled by default)
anonymous_enable=NO
#
# Uncomment this to allow local users to log in
local_enable=YES
#
# Uncomment this to enable any form of FTP write command
write_enable=YES
#
# Default umask for local users is 077 You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
#local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files This only
# has an effect if the above global write enable is activated Also, you will
# obviously need to create a directory writable by the FTP user
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory
dirmessage_enable=YES
#
# If enabled, vsftpd will display directory listings with the time
# in your local time zone The default is to display GMT The
# times returned by the MDTM FTP command are also affected by this
# option
use_localtime=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/vsftpdlog
#
# If you want, you can have your log file in standard ftpd xferlog format
# Note that the default log file location is /var/log/xferlog in this case
#xferlog_std_format=YES
#
# You may change the default value for timing out an idle session
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests Not
# recommended for security (the code is non-trivial) Not enabling it,
# however, may confuse older FTP clients
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file
# ASCII mangling is a horrible feature of the protocol
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
ftpd_banner=Welcome to linuxidc's FTP service
#
# You may specify a file of disallowed anonymous e-mail addresses Apparently
# useful for combatting certain DoS attacks
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpdbanned_emails
#
# You may restrict local users to their home directories See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below
#chroot_local_user=YES
#
# You may specify an explicit list of local users to chroot() to their home
# directory If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot()
# (Warning! chroot'ing can be very dangerous If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)
#chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpdchroot_list
#
# You may activate the "-R" option to the builtin ls This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it
#ls_recurse_enable=YES
#
# Customization
#
# Some of vsftpd's settings don't fit the filesystem layout by
# default
#
# This option should be the name of a directory which is empty Also, the
# directory should not be writable by the ftp user This directory is used
# as a secure chroot() jail at times vsftpd does not require filesystem
# access
secure_chroot_dir=/var/run/vsftpd/empty
#
# This string is the name of the PAM service vsftpd will use
pam_service_name=vsftpd
#
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoilpem
# This option specifies the location of the RSA key to use for SSL
# encrypted connections
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoilkey
#
local_root=/home/linuxidc/公共的/FTP共享文件
现在可以重启FTP了。
linuxidc@ubuntu:/etc$ sudo service vsftpd restart
vsftpd stop/waiting
vsftpd start/running, process 303
OK 看到这些 证明配置文件没有问题,FTP启动了
下面直接访问FTP 看看:
linuxidc@ubuntu:/etc$ ftp 127001
Connected to 127001
Welcome to linuxidc's FTP service
Name (127001:linuxidc): duoduo
Please specify the password
Password:
OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed
Service not available, remote server has closed connection
ftp>
居然报了一个500的错误
vsftpd: refusing to run with writable root inside chroot()
。其实这里是需要特殊说明的,原因出在这里
120 #chroot_local_user=YES
121 chroot_list_enable=YES
122 # (default follows)
123 chroot_list_file=/etc/vsftpdchroot_list
我们用
chroot_list_enable=YES 和 chroot_list_file=/etc/vsftpdchroot_list配合使用,使得只有在vsftpdchroot_list中配置的用户才能登录FTP。
对于这要的配置有一个特殊的要求,就是vsftpdchroot_list里面配置的用户,对于前面local_root配置的目录不能有写的权限!
也就是/home/linuxidc/公共的/FTP共享文件 这个文件夹 对于linuxidc这个用户不能有写的权限,
我们为了额操作方便可以这么做:
sudo chown -R root:root /home/linuxidc/公共的/FTP共享文件/
这样,linuxidc这个用户对于/home/linuxidc/公共的/FTP共享文件没有写权限了,
现在重启FTP 重新登录看看:
linuxidc@ubuntu:/etc$ ftp 127001
Connected to 127001
Welcome to linuxidc's FTP service
Name (127001:linuxidc): duoduo
Please specify the password
Password:
Login successful
Remote system type is UNIX
Using binary mode to transfer files
ftp>
OK FTP 好了 可以登录了
但是我刚才 sudo chown -R root:root /home/linuxidc/公共的/FTP共享文件/ 这个操作
还带来了一个麻烦。就是FTP共享文件在我桌面登录时,不能任意复制粘贴操作文件了,但是我还要必须保持linuxidc用户对[FTP共享文件]
这个文件夹不可写。这该怎么办呢?
其实很简单,
cd /home/linuxidc/公共的/FTP共享文件
sudo mkdir FTPFILES
sudo chown -R linuxidc:duoduo FTPFILES
这样 就保持了 FTP共享文件 文件夹linuxidc用户不可写,但duoduo用户用可以在桌面登录时任意操作文件了,只不过此时的随意范围在FTPFILES文件夹范围呢了。
这样基本FTP服务基本搭建完成了。
对了 忘记了一点。就是不让FTP服务开机启动。操作如下:
linuxidc@ubuntu:/etc/init$ cd /etc/init/
linuxidc@ubuntu:/etc/init$ sudo cp vsftpdconf vsftpdconfold
编辑配置文件
sudo gedit /etc/init/vsftpdconf
将#start on runlevel [2345] or net-device-up IFACE!=lo 修改为start on runlevel [345] 如下:
#start on runlevel [2345] or net-device-up IFACE!=lo
start on runlevel [345]
stop on runlevel [!2345]
这次重启FTP 重启系统 彻底完成。
搭建FTP服务器要先创建一个用户账户用于登录FTP,然后添加IIS程序服务,然后才是创建发布自己的FTP站点。
一、右键计算机选择管理,点开本地用户和组选择用户。
二、右键建立新用户,填写资料后完成创建。
三、右键计算机进入控制面板选项,点击卸载程序按钮,选择程序和功能选项。
四、选择打开或关闭Windows功能选项,找到Internet信息服务,打开FTP服务器,勾选所有子菜单,确定。
五、右键计算机选择管理,打开服务和应用程序选项,点击Internet信息服务管理,右键点击网站,选择添加网站。
六、在弹出的页面中填写信息,IP地址选择本地的IP地址。
七、新建完成后右键刚才建立的网站名称,选择添加FTP站点发布,IP地址选择本地的IP地址,端口号选择2121,完成后下一步。
八、根据个人用途选择需要的选项,完成后点击完成选项。打开浏览器输入网址后回车,验证是否成功即可。
注意事项
1、在内网中搭建FTP最重要的就是映射端口,要不外网是无法访问到本机的FTP服务器上。做映射必须要登入路由器上去。每个人的路由都是不同的,但是总体功能还是大同小异的。
2、如果出现没有访问权限,找到IE浏览器Internet选项中的“高级” ,将“启用ftp文件夹视图”添加勾号,将“使用被动FTP”的勾号去掉。重新访问即可。
1、首先,连接相应linux主机,进入到linux命令行状态下,等待输入shell指令。
2、其次,在linux命令行中输入:service vsftpd start。
3、键盘按“回车键”运行shell指令,此时会看到ftp服务被成功启动了。
如何设置ftp服务器,在如图网络下?
移动网关指的是啥?
服务器IP、无线网关的IP、路由器IP,都有提供,才能告诉你是否可以架设FTP。
如果无法实现网络端口映射,架设FTP没用。
至于FTP服务器的架设很简单,可以用系统自带,也可以运行专门的FTP服务器,这不是问题所在。
只有你提供详实的IP地址段,网络拓扑,设备,才是关键。
不就是个手机想访问服务器么?FTP干啥?不就是传送文件么?
想传送文件,不用这么复杂,如果都能连接互联网,那就手机、电脑运行都向日葵、ToDesk等就好。
如果都在同一网段局域网,那就都运行RealVNC就好。
ftp服务器怎么搭建
方法如下:
操作设备:戴尔笔记本电脑
操作系统:win7
操作程序:管理选项10
一、首先选择“管理选项”打开“本地用户和组”可以在列表中看到用户选项,如下图所示:
二、然后从下拉菜单中选择新用户,开始构建填写用户名和密码,如下图所示:
三、之后找到“控制面板”选项并将其打开,如下图所示:
四、单击下面的卸载程序按钮进入安装程序列表界面,如下图所示:
五、在左上角的菜单栏中打开或关闭Windows,单击进入,如下图所示:
六、转到Windows功能界面打开或关闭,勾选其子菜单的FTP服务和FTP可扩展性,然后单击按下OK按钮,如下图所示:
七、添加IIS服务后,单击Internet信息服务管理-此时我们可以看到连接右框架,如下图所示:
八、然后右键单击该网站以选择添加网站,如下图所示:
九、然后在弹出的添加网站框中输入我们的网站名称,然后选择添加,如下图所示:
十、创建我们的FTP后,启动绑定和SSL设置,端口号选择2121IP地址填写本地IP地址,如下图所示:
怎么做ftp服务器
架设一台FTP服务器其实很简单。首先,要保证你的机器能上网,而且有不低bai于ADSL512Kbps的网络速度。其次,硬件性能要能满足你的需要。最后,需要安装FTP服务器端的软件,这类软件很多,可以使用微软的IIS,也可以使用专业软件。不同的软件提供的功能不同,适应的需求和操作系统也不同。一般来说,系统最低要求如下:
CPU:PⅢ450MHz以上
内存:256MBSDRAM以上
带宽:ADSL512Kbps以上
至于操作系统,Windows98/Me/NT/2000/XP均可,如果对服务器的性能和安全性要求很低,可以采用Windows98和WindowsMe。本文中,如无特殊说明,均以WindowsXP专业版为操作系统,其余操作系统下FTP服务器的架设及设置均大同小异。
一、用IIS架设
如果只是想建个小型的同时在线用户数不超过10个的FTP服务器,且不会同时进行大流量的数据传输,可以用IIS5.0作为服务器软件来架设。
1.安装
WindowsXP默认安装时不安装IIS组件,需要手工添加安装。进入控制面板,找到“添加/删除程序”,打开后选择“添加/删除Windows组件”,在弹出的“Windows组件向导”窗口中,将“Internet信息服务”项选中。在该选项前的“√”背景色是灰色的,这是因为WindowsXP默认并不安装FTP服务组件。再点击右下角的“详细信息”,在弹出的“Internet信息服务”窗口中,找到“文件传输协议服务”,选中后确定即可。
安装完后需要重启。WindowsNT/2000和WindowsXP的安装方法相同。
2.设置
电脑重启后,FTP服务器就开始运行了,但还要进行一些设置。点击“开始→所有程序→管理工具→Internet信息服务”,进入“Internet信息服务”窗口后,找到“默认FTP站点”,右击鼠标,在弹出的右键菜单中选择“属性”。在“属性”中,我们可以设置FTP服务器的名称、IP、端口、访问账户、FTP目录位置、用户进入FTP时接收到的消息等。
1)FTP站点基本信息
进入“FTP站点”选项卡,其中的“描述”选项为该FTP站点的名称,用来称呼你的服务器,可以随意填,比如“我的小站”;“IP地址”为服务器的IP,系统默认为“
如何建立ftp服务器
1、首先,我们创建一个用于登录FTP以进行操作的用户帐户。右键单击我的桌面并选择“管理选项”,转到“管理”界面,然后打开“本地用户和组”选项。我们可以在列表中看到用户选项。
2、然后右键单击用户选项,从下拉菜单中选择新用户,开始构建我们的用户,填写用户名和密码。描述可以留空。然后单击Create。创建后,您将在右侧的用户列表中看到我们创建的用户。
3、用户创建完成后,我们开始添加IIS程序服务。打开计算机的“开始”菜单,找到“控制面板”选项并将其打开。
4、转到控制面板界面查找程序选项,单击下面的卸载程序按钮进入安装程序列表界面。
5、转到程序和功能选项卡,我们可以看到有一个选项可以在左上角的菜单栏中打开或关闭Windows,单击进入。
6、转到Windows功能界面打开或关闭,我们擅长Internet信息服务,然后单击打开FTP服务器的前端,即勾选其子菜单的FTP服务和FTP可扩展性,然后单击按下OK按钮。
7、添加IIS服务后,开始创建我们的FTP站点,右键单击我的电脑并选择管理,然后找到服务和应用程序选项,单击打开,然后单击Internet信息服务管理-此时我们可以看到连接右框架。
8、单击打开连接框下方的本地主机主页,然后您可以看到应用程序池和网站选项,我们右键单击该网站以选择添加网站。
9、然后在弹出的添加网站框中输入我们的网站名称,物理路径是我们的FTP本地文件夹,我们可以在磁盘中创建新的,然后选择添加,IP地址选择我们的本地IP地址。
10、创建我们的FTP后,我们可以看到我们刚刚在网站下面创建了一个网络,右键单击网站名称,选择添加FTP站点发布,然后启动绑定和SSL设置,端口号选择2121IP地址填写本地IP地址。
将你的FTP软件的工作模式设置为 pasv模式 就OK了 软件不同设置方法不同
(1)IE:工具 -> Internet选项 -> 高级 -> “使用被动FTP”(需要IE60以上才支持)。
(2)CuteFTP:Edit -> Setting -> Connection -> Firewall -> “PASV Mode” 或File -> Site Manager,在左边选中站点 -> Edit -> “Use PASV mode” 。
(3)FlashGet:工具 -> 选项 -> 代理服务器 -> 直接连接 -> 编辑 -> “PASV模式”。
(4)FlashFXP:选项 -> 参数选择 -> 代理/防火墙/标识 -> “使用被动模式” 或 站点管理 -> 对应站点 -> 选项 -> “使用被动模式”或快速连接 -> 切换 -> “使用被动模式”。
在cmd里面:
如果需要切换到PORT模式:quote PORT;
同样,如果需要PASV模式:quote PASV即可
1、 本人配置的ftp服务器的设计要求如下:
(1)、匿名用户可登录浏览,但不能下载
(2)、设置4个不同等级的用户使用此ftp服务器(虚拟用户),分别如下
用户名:nan306 路径/home/vsftpd 管理用户,可对ftp服务器的所有文件进行任何操作
用户名:down 路径/home/vsftpd/down 下载用户,只可下载此目录下的文件
用户名:upload 路径/home/vstfpd/upload 上传用户,在此目录下可上传下载删除等操作
用户名:wsn 路径/home/vsftpd/wsn 实验室文件管理目录,此用户目录为本实验室内部资料,其下挂在down虚拟路径
2、vsftpd的安装
$ sudo apt-get install vsftpd
安装完后不用做任何配置既可用匿名方式进行访问,默认的ftp文件夹为/srv/ftp
3、vsftpd的开始、关闭和重启
$sudo /etc/initd/vsftpd start #开始
$sudo /etc/initd/vsftpd stop #关闭
$sudo /etc/initd/vsftpd restart #重启
关于vsftpd的开机自启动,当vsftpd装好后是默认开机自启动的,如果不需要可关闭,关闭方法很多,网上自己看吧,我用一条命令
$sudo mv /etc/rc2d/S20vsftpd /etc/rc2d/K20vsftpd
具体请参考开机自启动文章 http://hibaiducom/jidaxiaobeibei/blog/item/e16309446cc0b237879473d6html
3、vsftpd的配置
这一块网上信息是铺天盖地,关于配置参数我这里就不一一列举,初次接触的朋友参考http://os51ctocom/art/201003/189123htm这个网址,高级点的配置参考http://www517sounet/blogviewasplogID=515#commmark_241。如果没接触国建议先看看第一个网址里面的内容,简单明了。
关于配置这块初次配置ftp的朋友我的建议是别一下把所有配置全看完就照着做,这样都配完了ftp出了问题都不知道哪步错的,一步步来,配一步测试一步。
我的配置过程如下:
vsftpd的配置很简单,就是打开/etc/vsftpdconf文件,
$sudo vi /etc/vsftpdconf #我这里用ssh登录服务器配置的,所以用vi,本机的话可以直接 sudo gedit /etc/vsftpdconf
然后对参数进行修改,修改完咧就重启服务器
$sudo /etc/initd/vsftpd restart #重启就可以实现配置功能。
对本人配置的服务器中 vsftpdconf的参数使用如下:
listen=YES #启用独立vsftpd服务器
#listen_ipv6=YES 不需要,注释掉
anonymous_enable=YES #本服务器需要匿名访问
local_enable=YES #要用虚拟用户,需要本地访问的(关于本地用户和虚拟用户不要迷茫,稍后解释)
write_enable=YES #需要本地用户对文件进行修改和删除
#local_umask=022 FTP上传文件权限 ,默认是077,本服务器每个虚拟用户都有上传权限设置,总的就留空注释掉了
#anon_upload_enable=YES 是否允许匿名用户上传,不需要匿名上传注释掉
#anon_mkdir_write_enable=YES 是否允许匿名用户的写和创建目录的权限,不要匿名管理,注释掉
dirmessage_enable=YES 当切换目录时,是否显示该目录下message隐藏文件的内容,这个用来显示登录信息的 设为YES
message_file=Welcome 显示的欢迎信息,在ftp目录下建Welcome的文件,里面写上登录信息即可,一般人常用message隐藏文件
xferlog_enable=YES 是否激活上传和下载的日志,需要
connect_from_port_20=YES 是否启动FTP数据端口20的连接请求 需要
chown_uploads=YES 是否改变上传文件的所有者,我这里需要改变上传文件所有者
chown_username=virtual 改变上传文件的所有着为virtual,这个virtual用户一会要新建的,用来实现虚拟用户登录
xferlog_file=/var/log/vsftpdlog 上传/下载日志文件所默认的路径
xferlog_std_format=YES 是否使用标准的ftpd xferlog日志格式
idle_session_timeout=600 是否将在用户会话空闲10分钟后被中断
data_connection_timeout=120 是否将在数据连接空闲2分钟后被中断
#nopriv_user=ftpsecure 是否运行vsftpd需要的非特殊系统用户默认nobody 不需要
#async_abor_enable=YES 是否是否允许运行特殊的FTP命令async 不要
ascii_upload_enable=YES 是否启用上传的ascii传输方式 需要
ascii_download_enable=YES 是否启用下载的ascii传输方式 需要
ftpd_banner=Welcome to blah FTP service 用户连接服务器后显示信息,显示信息可以随便写
#deny_email_enable=YES 是否允许某些匿名用户使用邮件地址(默认的)
max_clients=10 #FTP服务器最大承载用户,本人设为10
max_per_ip=5 #限制每个IP的进程
local_max_rate=256000 #最大传输速率(b/s)
#hide_ids=YES #是否隐藏文件的所有者和组信息,不隐藏
idle_session_timeout= 3000 #空闲(发呆)用户会话的超时时间,若是超出这时间没有数据的传送或是指令的输入,则会强迫断线。单位为秒,默认值为300。
下面是用来虚拟用户登录的
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
guest_enable=YES 使用虚拟用户
guest_username=virtual 将虚拟用户等同本地用户 virtual
user_config_dir=/etc/vsftpd/vsftpd_user_conf 虚拟用户配置文件夹
pam_service_name=vsftpdvu 虚拟用户加密设置
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
其他未列出来的视情况自己斟酌,如不明白清保持原样。
关于配置文件修改一定注意一下几点:
1、配置前最好把配置文件备份一下, sudo cp /etc/vsftpdconf /etc/vsftpdconfback,以备配错了恢复
2、所有配置语句后面不要有空行,我自己的配置很严格连空格都没有,把所有没必要的注释尤其是汉语注释全删除,如果配置语句后面或前面有空行或空格会报错
3、为了防止出现第2点中的错误,请尽量无比自己一条条改写配置语句,不要从网上拷贝,很容易多空格,多回车
4、不清楚自己是否需要的请保持配置文件原样。
配置完了请重启ftp,看是否报错,是否可以连接,如报错或不能连接请自己检查配置文件,如果还不能启动,报错,很有可能是配置文件有空格或回车,检查并修改。如果实在还不行,恢复配置文件,重新一条条验证配置。
4、使用虚拟用户登录(文本法)
此实现有很多方法,主要的是文本法和数据库法,其实大同小异,本文使用文本法。
此处涉及到两个概念,一个是本地用户,一个是虚拟用户。
本地用户就是linux实实在在的一个用户,如root,你的登录用户等等都是本地用户。
虚拟用户不是linux上的用户,只是自己起的虚拟用户,用来使用ftp的,虚拟用户必须关联到一个本地用户上。
虚拟用户的实现可以参考官方http://wikiubuntuorgcn/Vsftpd%E8%99%9A%E6%8B%9F%E7%94%A8%E6%88%B7%E8%AE%BE%E7%BD%AE,但是里面有错误,请注意甄别。官方的多错,没天理呀,我就是因为这个错误搞了好久,错误很简单,就是其中“为虚拟用户创建本地系统用户 ”那块本地系统用户建立错了,应该是virtual,既改为:
sudo useradd virtual -d /home/vsftpd -s /bin/false
sudo chown virtual:virutal /home/vsftpd
当然这个用户名字你也可以改,但是此处的名字必须和配置文件vsftpdconf中guest_username=virtual项的参数相同。
………………………………………………………………………………………………
下面是我的配置过程,结合官方的那个网址看啊,大部分相同,略有不同:
首先先新建文件夹
sudo mkdir /home/vsftpd
cd /home/vsftpd
sudo mkdir down upload wsn
(1)、创建虚拟用户数据库
新建logusertxt文件,
$sudo vi /home/logusertxt
里面输入虚拟用户名和密码,格式如下
nan306
mima1
wsn
mima2
upload
mima3
down
mima4
注意不要多空格和空行,其中nan306,upload等为虚拟用户名,另外两行为相应密码
生成数据库
先装一个软件
$sudo apt-get install db47-util
新建一个文件夹,放置配置文件
sudo mkdir /etc/vsftpd
然后执行
$sudo db47_load -T -t hash -f /home/logusertxt /etc/vsftpd/vsftpd_logindb
最后设置一下数据库文件的访问权限
$sudo chmod 600 /etc/vsftpd/vsftpd_logindb
配置PAM文件
新建/etc/pamd/vsftpdvu
$sudo vi /etc/pamd/vsftpdvu
输入内容如下:
auth required /lib/security/pam_userdbso db=/etc/vsftpd_login
account required /lib/security/pam_userdbso db=/etc/vsftpd_login
我们上一步建立的数据库 vsftpd_login 在此处被使用
我们建立的虚拟用户将采用PAM进行验证,这是通过/etc/vsftpdconf文件中的 语句pam_service_name=vsftpdvu来启用的,稍后你将发现。
(2)、为虚拟用户建立本地用户
新建一个系统用户vsftpd,用户家目录为/home/vsftpd, 用户登录终端设为/bin/false(即使之不能登录系统)
udo useradd virtual -d /home/vsftpd -s /bin/false
sudo chown virtual:virutal /home/vsftpd
现在为止,我们的3个用户都可以工作了,可是它们的根目录现在都是/home/vsftpd,权限也都一样。 那么怎么才能完成我们预定的目标呢?
(3)新建etc/vsftpd_user_conf文件夹
在上面的配置中,有这么一行 r_config_dir=/etc/vsftpd/vsftpd_user_conf
现在,我们要把各个用户的配置文件放到目录/etc/vsftpd/vsftpd_user_conf中
sudo mkdir /etc/vsftpd/vsftpd_user_conf
cd /etc/vsftpd/vsftpd_user_conf
sudo touch nan306 wsn upload down
每个文件既为一个配置文件,如nan306是个系统管理用户,里面配置如下:
打开nan306
sudo vi /etc/vsftpd/vsftpd_user_conf/nan306
里面添加
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/vsftpd
这里要注意不能有空格,不然登录的时候会提示出错。下同
wsn用了管理wsn文件夹,配置如下:
打开wsn
sudo vi /etc/vsftpd/vsftpd_user_conf/wsn
里面添加
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/vsftpd/wsn
wsn目录下面还要挂载down文件夹的虚拟路径
在wsn目录下新建目录down
sudo mkdir /home/vsftpd/wsn/down
然后系统启动是将/home/vsftpd/down挂载到/home/vsftpd/wsn/down
改写/etc/rclocal实现开机启动
sudo vi /etc/rclocal
添加 mount –bind /home/vsftpd/down /home/vsftpd/wsn/down
upload目录中
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/vsftpd/upload
down目录中
local_root=/home/vsftpd/upload
至此配置完了。重启vsftpd我们就可以看到效果了^_^
/etc/initd/vsftpd restart
500 OOPS: cannot change directory:
linux打开ftp遇到的问题 500 OOPS: cannot change directory:
google好多都是 执行这个就OK setsebool ftpd_disable_trans 1 service vsftpd restart
但是执行的时候遇到这个问题 Could not change active booleans: Invalid boolean
0条评论