linuxftpwput
linux 下FTP安装及配置
一、FTP的安装
1、检测是否安装了FTP :[root@localhost ~]# rpm -q vsftpd
如果安装了会显示版本信息:
[root@localhost ~]# vsftpd-2.0.5-16.el5_5.1
否则显示:[root@localhost ~]# package vsftpd is not installed
2、如果没安装FTP,运行yum install vsftpd命令
具体的细节如下:(如果无法更新,你先配置能访问互联网,我有文档叫 CentOS 在 VMware下,如何联网到Internet的解决办法 可以解决无法上网的问题)
[root@localhost ~]# yum install vsftpd
[root@localhost ~]#
3、完成ftp安装后,将 /etc/vsftpd/user_list文件和/etc/vsftpd/ftpusers文件中的root这一行注释掉
# root
4、执行以下命令
# setsebool -P ftpd_disable_trans=1
修改/etc/vsftpd/vsftpd.conf,在最后一行处添加local_root=/
5、重启ftp进程 #service vsftpd restart
注:每次修改过ftp相关的配置文件,都需要重启ftp进程来生效。
ftp服务器就可以使用了。
*********************************************************************
二、vsftpd的配置文件说明:
vsftpd.ftpusers:位于/etc目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。
vsftpd.user_list:位于/etc目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。
vsftpd.conf:位于/etc/vsftpd目录下。来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。
(1)用户登录控制
anonymous_enable=YES,允许匿名用户登录。
no_anon_password=YES,匿名用户登录时不需要输入密码。
local_enable=YES,允许本地用户登录。
deny_email_enable=YES,可以创建一个文件保存某些匿名电子邮件的黑名单,以防止这些人使用Dos攻击。
banned_email_file=/etc/vsftpd.banned_emails,当启用deny_email_enable功能时,所需的电子邮件黑名单保存路径(默认为/etc/vsftpd.banned_emails)。
(2)用户权限控制
write_enable=YES,开启全局上传权限。
local_umask=022,本地用户的上传文件的umask设为022(系统默认是077,一般都可以改为022)。
anon_upload_enable=YES,允许匿名用户具有上传权限,很明显,必须启用write_enable=YES,才可以使用此项。同时我们还必须建立一个允许ftp用户可以读写的目录(前面说过,ftp是匿名用户的映射用户账号)。
anon_mkdir_write_enable=YES,允许匿名用户有创建目录的权利。
chown_uploads=YES,启用此项,匿名上传文件的属主用户将改为别的用户账户,注意,这里建议不要指定root账号为匿名上传文件的属主用户!
chown_username=whoever,当启用chown_uploads=YES时,所指定的属主用户账号,此处的whoever自然要用合适的用户账号来代替。
chroot_list_enable=YES,可以用一个列表限定哪些本地用户只能在自己目录下活动,如果chroot_local_user=YES,那么这个列表里指定的用户是不受限制的。
chroot_list_file=/etc/vsftpd.chroot_list,如果chroot_local_user=YES,则指定该列表(chroot_local_user)的保存路径(默认是/etc/vsftpd.chroot_list)。
nopriv_user=ftpsecure,指定一个安全用户账号,让FTP服务器用作完全隔离和没有特权的独立用户。这是vsftpd系统推荐选项。
async_abor_enable=YES,强烈建议不要启用该选项,否则将可能导致出错!
ascii_upload_enable=YES;ascii_download_enable=YES,默认情况下服务器会假装接受ASCⅡ模式请求但实际上是忽略这样的请求,启用上述的两个选项可以让服务器真正实现ASCⅡ模式的传输。
注意:启用ascii_download_enable选项会让恶意远程用户们在ASCⅡ模式下用“SIZE/big/file”这样的指令大量消耗FTP服务器的I/O资源。
这些ASCⅡ模式的设置选项分成上传和下载两个,这样我们就可以允许ASCⅡ模式的上传(可以防止上传脚本等恶意文件而导致崩溃),而不会遭受拒绝服务攻击的危险。
(3)用户连接和超时选项
idle_session_timeout=600,可以设定默认的空闲超时时间,用户超过这段时间不动作将被服务器踢出。
data_connection_timeout=120,设定默认的数据连接超时时间。
(4)服务器日志和欢迎信息
dirmessage_enable=YES,允许为目录配置显示信息,显示每个目录下面的message_file文件的内容。
ftpd_banner=Welcome to blah FTP service,可以自定义FTP用户登录到服务器所看到的欢迎信息。
xferlog_enable=YES,启用记录上传/下载活动日志功能。
xferlog_file=/var/log/vsftpd.log,可以自定义日志文件的保存路径和文件名,默认是/var/log/vsftpd.log。
anonymous_enable=YES 允许匿名登录local_enable=YES 允许本地用户登录
write_enable=YES 开放本地用户写权限
local_umask=022 设置本地用户生成文件的掩码为022
#anon_upload_enable=YES 此项设置允许匿名用户上传文件
#anon_mkdir_write_enable=YES 开启匿名用户的写和创建目录的权限
dirmessage_enable=YES 当切换到目录时,显示该目录下的.message隐藏文件的内容
xferlog_enable=YES 激活上传和下载日志
connect_from_port_20=YES 启用FTP数据端口的连接请求
#chown_uploads=YES 是否具有上传权限. 用户由chown_username参数指定。
#chown_username=whoever 指定拥有上传文件权限的用户。此参数与chown_uploads联用。
#xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES 使用标准的ftpd xferlog日志格式
#idle_session_timeout=600 此设置将在用户会话空闲10分钟后被中断
#data_connection_timeout=120 将在数据连接空闲2分钟后被中断
#ascii_upload_enable=YES 启用上传的ASCII传输方式
#ascii_download_enable=YES 启用下载的ASCII传输方式
#ftpd_banner=Welcome to blah FTP service 设置用户连接服务器后显示消息
#deny_email_enable=NO 此参数默认值为NO。当值为YES时,拒绝使用banned_email_file参数指定文件中所列出的e-mail地址用户登录。
#banned_email_file=/etc/vsftpd.banned_emails 指定包含拒绝的e-mail地址的文件.
#chroot_list_enable=YES 设置本地用户登录后不能切换到自家目录以外的别的目录
#chroot_list_file=/etc/vsftpd.chroot_list
#ls_recurse_enable=YES
pam_service_name=vsftpd 设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/
userlist_enable=YES 此项配置/etc/vsftpd.user_list中指定的用户也不能访问服务器,若添加userlist_deny=No,则仅仅/etc/vsftpd.user_list文件中的用户可以访问,其他用户都不可以访问服务器。如过userlist_enable=NO,userlist_deny=YES,则指定使文件/etc/vsftpd.user_list中指定的用户不可以访问服务器,其他本地用户可以访问服务器。
listen=YES 指明VSFTPD以独立运行方式启动
tcp_wrappers=YES 在VSFTPD中使用TCP_Wrappers远程访问控制机制,默认值为YES
三、举例建立一个名为test的账户并进行配置
根据实际情况对FTP进行配置后,下面举例介绍建立一个FTP账户并进行简单的配置:
1、创建一个账号为test的账户:
#mkdir /tmp/test //首先创建好目录
#adser -d /tmp/test -g ftp -s /sbin/nologin test //-s /sbin/nologin是让其不能登陆系统,-d 是指定用户目录为/opt/srsman ,即该账户只能登陆ftp,却不能用做登陆系统用。
#passwd test
Changing password for user beinan.//接下来会出现让你设置新的密码
New password:
Retype new password:
passwd: all authentication tokens updated successfully
创建账户成功!
2、限制用户目录,不得改变目录到上级
修改/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
新增一个文件: /etc/vsftpd/chroot_list
内容写需要限制的用户名:
test
重新启动vsftpd
# service vsftpd restart
3、最后为了防止服务器由于断电、重启等现象发生,导致ftp进程在开机后未启动,将其添加到开机启动文件中:
(1)找到/etc/rc.local文件
(2)打开该文件,在最后一行添加:service vsftpd start
(3)保存,退出
4、通过在“我的电脑”中输入ftp://192.168.179.30(填该ftp服务器ip地址)进入ftp服务器,输入设置好的账户登陆即可。
5、CMD-》ftp 192.168.1.2
Cd /soft
Put c:\sss.log //这样可以成功上传, VSFTP不支持绝对目录上传,只能够到当前目录下上传
B. linux下怎样登录ftp服务器
1、首先,连接相应linux主机衡册,进入到linux命令行状态下,等待输入shell指令。
C. Linux开启FTP
1、安装 vsftpd
2、设置 vsftpd 开机自启动
3、启动 FTP 服务
4、确认服务是否启动
5、为 FTP 服务创建用户,举例创建admin
6、设置用户密码
7、创建 FTP 服务使用的文件目录
8、修改目录权限
9、打开 vsftpd.conf 文件
按 i 切换至编辑模式
修改:
添加:
注释:
按 Esc 后输入 :wq 保存后退出
10、创建并编辑 chroot_list 文件
按 i 进入编辑模式,输入用户名,一个用户名占据一行,例如:
设置完成后按 Esc 并输入 :wq 保存后退出
11、重启 FTP 服务
D. linux ftp服务器拒绝连接
出现此问题的原因为:设置问题造成的。
解决的方法和详细的操作步骤如下:
1、第一步,连接到相应的linux主机,进入linux命令行状态,然后等待输入shell命令,见下图,转到下面的步骤。
E. Linux之ftp命令使用方法及案例
Linux之ftp命令使用方法及案例
Example 1:登陆
[root@iZ25ja2kaemZ ~]# ftp 121.199.5.52
Connected to 121.199.5.52 (121.199.5.52).
220 Microsoft FTP Service
Name (121.199.5.52:root): tongsj
331 User name okay, need password.
Password:
230 User logged in, proceed.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ll
?Invalid command
ftp>
Example2:dir,cd ,quit 命令用法
ftp> dir ./app
227 Entering Passive Mode (121,199,5,52,128,234)
150 Opening ASCII mode data connection for /bin/ls.
total 0
drw-rw-rw- 1 user group 0 Nov 9 18:26 .
drw-rw-rw- 1 user group 0 Nov 9 18:26 ..
drw-rw-rw- 1 user group 0 Nov 9 18:24 Common
drw-rw-rw- 1 user group 0 Nov 9 18:24 Conf
drw-rw-rw- 1 user group 0 Nov 9 18:19 Lang
drw-rw-rw- 1 user group 0 Nov 9 18:23 Lib
drw-rw-rw- 1 user group 0 Nov 9 18:26 Runtime
drw-rw-rw- 1 user group 0 Nov 9 18:35 Tpl
226 Transfer complete.
ftp> cd base
250 Directory changed to /crms/Base
ftp> dir
227 Entering Passive Mode (121,199,5,52,128,235)
150 Opening ASCII mode data connection for /bin/ls.
drw-rw-rw- 1 user group 0 Nov 9 18:18 .
drw-rw-rw- 1 user group 0 Nov 9 18:18 ..
drw-rw-rw- 1 user group 0 Nov 9 18:12 Common
drw-rw-rw- 1 user group 0 Nov 9 18:13 Conf
drw-rw-rw- 1 user group 0 Nov 9 18:17 Extend
-rw-rw-rw- 1 user group 1854 Jan 18 2016 LICENSE.txt
drw-rw-rw- 1 user group 0 Nov 9 18:17 Lang
drw-rw-rw- 1 user group 0 Nov 9 18:17 Lib
-rw-rw-rw- 1 user group 5600 Jan 18 2016 README.txt
-rw-rw-rw- 1 user group 1568 Jan 18 2016 Thinkphp.php
drw-rw-rw- 1 user group 0 Nov 9 18:18 Tpl
-rw-rw-rw- 1 user group 7396 Jan 18 2016 logo.png
226 Transfer complete.
ftp> quie
?Invalid command
ftp> quit
221 Goodbye!
[root@iZ25ja2kaemZ ~]#
example3:帮助文件
ftp> help
Commands may be abbreviated. Commands are:
! debug mdir sendport site
$ dir mget put size
account disconnect mkdir pwd status
append exit mls quit struct
ascii form mode quote system
bell get modtime recv sunique
binary glob mput reget tenex
bye hash newer rstatus tick
case help nmap rhelp trace
cd idle nlist rename type
cp image ntrans reset user
chmod lcd open restart umask
close ls prompt rmdir verbose
cr macdef passive runique ?
delete mdelete proxy send
ftp> help dir
dir list contents of remote directory
ftp> help mdir
mdir list contents of multiple remote directories
ftp>
example4:重命名文件
ftp> dir
227 Entering Passive Mode (121,199,5,52,128,234)
150 Opening ASCII mode data connection for /bin/ls.
drw-rw-rw- 1 user group 0 Nov 9 18:46 .
drw-rw-rw- 1 user group 0 Nov 9 18:46 ..
drw-rw-rw- 1 user group 0 Nov 9 18:39 Install
drw-rw-rw- 1 user group 0 Nov 9 18:36 appImg
drw-rw-rw- 1 user group 0 Nov 11 11:08 css
drw-rw-rw- 1 user group 0 Nov 9 18:37 excelmodel
drw-rw-rw- 1 user group 0 Nov 9 18:46 file
drw-rw-rw- 1 user group 0 Nov 9 18:37 ico
drw-rw-rw- 1 user group 0 Nov 9 18:38 img
drw-rw-rw- 1 user group 0 Nov 11 11:11 js
-rw-rw-rw- 1 user group 3 Oct 25 15:56 ni.txt
drw-rw-rw- 1 user group 0 Nov 9 18:46 sound
drw-rw-rw- 1 user group 0 Nov 9 18:46 sql
226 Transfer complete.
ftp> rename ni.txt ss
350 File or directory exists, ready for destination name
250 RNTO command successful.
ftp> dir
227 Entering Passive Mode (121,199,5,52,128,235)
150 Opening ASCII mode data connection for /bin/ls.
drw-rw-rw- 1 user group 0 Nov 16 16:57 .
drw-rw-rw- 1 user group 0 Nov 16 16:57 ..
drw-rw-rw- 1 user group 0 Nov 9 18:39 Install
drw-rw-rw- 1 user group 0 Nov 9 18:36 appImg
drw-rw-rw- 1 user group 0 Nov 11 11:08 css
drw-rw-rw- 1 user group 0 Nov 9 18:37 excelmodel
drw-rw-rw- 1 user group 0 Nov 9 18:46 file
drw-rw-rw- 1 user group 0 Nov 9 18:37 ico
drw-rw-rw- 1 user group 0 Nov 9 18:38 img
drw-rw-rw- 1 user group 0 Nov 11 11:11 js
drw-rw-rw- 1 user group 0 Nov 9 18:46 sound
drw-rw-rw- 1 user group 0 Nov 9 18:46 sql
-rw-rw-rw- 1 user group 3 Oct 25 15:56 ss
226 Transfer complete.
example5 :格式 get [remote-file] [local-file],将文件从远端主机中传送至本地主机中,如要获取服务器上\rose\1.bmp,则 ftp> get /rose/1.bmp /tmp/1.bmp (回车),必须给出第二个参数,否则会复制失败,登录后执行:
ftp> get robots.txt /tmp/
local: /tmp/ remote: robots.txt
227 Entering Passive Mode (121,199,5,52,128,233)
150 Opening BINARY mode data connection for robots.txt (26 Bytes).
local: /tmp/: Is a directory
226 Transfer complete.
226 ABOR command successful.
ftp>
example 6:lcd 命令
ftp> lcd ..
Local directory now /
ftp> lcd /tmp/flower
Local directory now /tmp/flower
example 7: put命令
格式:put local-file [remote-file]
将本地一个文件传送至远端主机中.
如要把本地的1.bmp传送到远端主机e:\rose,并改名为333.bmp
ftp> put 1.bmp /rose/333.bmp (回车)
ftp> put /tmp/tt.txt ./nihaol.txt
local: /tmp/tt.txt remote: ./nihaol.txt
227 Entering Passive Mode (121,199,5,52,128,232)
150 Opening BINARY mode data connection for nihaol.txt.
226 Transfer complete.
5 bytes sent in 2.6e-05 secs (192.31 Kbytes/sec)
example 8: mput命令
格式:mput local-files
将本地主机中一批文件传送至远端主机.
如要把本地当前目录下所有bmp文件上传到服务器e:\rose 下
ftp> cd /rose (回车)
ftp> mput *.bmp(回车)
注意:上传文件都来自于主机的当前目录下。比如,在/root/test下运行的ftp命令,则只有在/root/test下的文件linux才会 上传到服务器e:\rose 下
F. 如何在linux下开启FTP服务
Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令rpm -qa |grepvsftpd来查看是否安装相应的包,如果没有安装那么可以执行yum-yinstallvsftpd来安装,安装之后首先创建ftp用户,比如ftp_test,命令如下:
useradd-s/sbin/nologin-d/home/ftp_testftp_test
目录尽量不要选择根目录下,这里是/home/ftp_test,并且ftp_test这个目录不要手动创建,否则权限会有问题,执行命令的时候会自动创建,
现在可以看到上面的路径是一个/,对于ftp用户来说也就是根目录了,只能在这个目录下操作,而无法跳出这个目录
以上就是vsftpd服务的基本搭建过程,实际使用时可以分配多个用户
G. linux下ftp命令详解
ftp(file transfer protocol)
功能说明:设置文件系统相关功能。
语法:ftp [-dignv][主机名称或IP地址]
补充说明:FTP是ARPANet的标准文件传输协议,该网络就是现今Internet的前身。
参数: 《Linux就该这么学》
-d 详细显示指令执行过程,便于排错或分析程序执行的情形。
-i 关闭互动模式,不询问任何问题。
-g 关闭本地主机文件名称支持特殊字符的扩充特性。
-n 不使用自动登陆。
-v 显示指令执行过程。
1. 连接ftp服务器
格式:ftp [hostname| ip-address]
a)在linux命令行下输入:
ftp 192.168.1.1
b)服务器询问你用户名和密码,分别输入用户名和相应密码,待认证通过即可。
c)也可以先输入ftp
ftp>
d)然后在输入要连接的IP
ftp>open 192.168.1.1
2. 下载文件
下载文件通常用get和mget这两条命令。
a) get
格式:get [remote-file] [local-file]
将文件从远端主机中传送至本地主机中。
如要获取远程服务器上/usr/your/1.htm,则
ftp> get /usr/your/1.htm 1.htm (回车)
b) mget
格式:mget [remote-files]
从远端主机接收一批文件至本地主机。
如要获取服务器上/usr/your/下的所有文件,则
ftp> cd /usr/your/
ftp> mget *.* (回车)
此时每下载一个文件,都会有提示。如果要除掉提示,则在mget *.* 命令前先执行:prompt off
注意:文件都下载到了linux主机的当前目录下。比如,在/usr/my下运行的ftp命令,则文件都下载到了/usr/my下。
3.上传文件
a) put
格式:put local-file [remote-file]
将本地一个文件传送至远端主机中。
如要把本地的1.htm传送到远端主机/usr/your,并改名为2.htm
ftp> put 1.htm /usr/your/2.htm (回车)
b) mput
格式:mput local-files
将本地主机中一批文件传送至远端主机。
如要把本地当前目录下所有html文件上传到服务器/usr/your/ 下
ftp> cd /usr/your (回车)
ftp> mput *.htm(回车)
H. linux ftp服务器和window ftp服务器有什么区别
服务器没区别
区别在于服务器装载的操作系统,linux系统一般是大型公司企业的公用网络管理系统,安全性能高一些。操作也比较简便,功能强大。