您的位置:首页 > 运维架构 > Linux

Linux中ftp安装与基本操作

2014-11-18 10:36 309 查看


Linux中ftp安装与基本操作

一、FTP 概述

1、FTP 协议

文件传输协议,使用两个 tcp 端口:21 - 传输命令,20 - 传输数据。

2、FTP 软件

实现同一协议,有不同的软件。

服务器程序:RHL 默认安装 vsFTPd。

客户端程序:ftp 命令,Windows 浏览器(资源管理器),等。

3、vsFTPd

守护进程 vsftpd,在 tcp 21 号端口监听。

检查是否安装:

# rpm -qa | grep vsftp

vsftpd-1.1.3-8

即时启动:

# service vsftpd start

启动系统时加载:

# chkconfig vsftpd on

4、用户帐号

客户端连接 FTP 服务器时,使用的用户名和密码。

1) 本地用户

Linux 系统上的用户名和密码。

2) 匿名用户

用户名:anonymous 或 ftp。

密码:空,或用户的邮址。

3) 虚拟用户

FTP 服务器的专有用户。不讲。

二、配置文件

1、vsFTPd 的配置文件

/etc/vsftpd/vsftpd.conf

守护进程启动时,读取它。在缺省配置下即可工作。

2、备份

# cd /etc/vsftpd

# cp vsftpd.conf vsftpd.conf.samp

3、内容

# Example config file ...

...

# Allow anonymous FTP?

anonymous_enable=YES

#

# ...allow local users to log in.

local_enable=YES

...

# 开头的是注解行,其余是配置行。

4、配置选项

用 man vsftpd.conf 查看。

1) 格式

option=value

紧靠等号左右不能有空格。

2) 布尔选项

取值为 YES 或 NO。如 local_enable 和 anonymous_enable。

3) 数值选项,如

connect_timeout 120

4) 缺省值

查看 man vsftpd.conf:

...

anon_upload_enable

If set to YES, anonymous users

will be permitted to upload...

Default: NO

...

三、本地用户的操作

1、服务器端 (Linux,172.16.2.3)

设当前用户 yanji。创建目录和文件:

$ cd

$ mkdir poem

$ cat > poem/brook.txt

溪上

采莲溪上女,舟小怯摇风。

惊起鸳鸯宿,水云撩乱红。

$ cat > poem/night.txt

夜思

床前明月光,疑是地上霜。

举头望明月,低头思故乡。

2、客户端 (ftp 命令,Windows 平台)

例1.

C:\>ftp 172.16.1.3

Connected to 172.16.1.3.

220 (vsFTPd 1.1.3)

User (172.16.1.3:(none)): yanji

331 Please specify the password.

Password:

230 Login successful. Have fun.

ftp>

ftp> 是提示符,输入交互命令操作。

交互命令是 FTP 协议的一部分。man ftp 查看详细说明。部分如下:

交互命令 意义

pwd 显示服务器当前目录

cd 切换服务器目录

lcd 切换客户端目录

ls [-l] 文件列表

get 下载文件

put 上传文件

mget 下载多个文件

mput 上传多个文件

ascii 或 asc 文本传输方式

binary或 bin 二进制传输方式

quit 或 bye 退出

依次输入下面交互命令操作:

pwd

ls -l

cd poem

ls -l

lcd d:\

get brook.txt

bye

Windows 中,查看 d:\brook.txt,分行不正确。因为,换行符随操作系统而异:

操作系统 换行符

Unix \n

Windows \r\n

Mac \r

3、修改配置

$ su -

# vi /etc/vsftpd/vsftpd.conf

输入 :/#ascii,找到:

#ascii_upload_enable=YES

#ascii_download_enable=YES

此两行设置,上传、下载采用文本传输模式。去掉行首的 #,使这两行生效。存盘退出。

重启服务:

# /etc/init.d/vsftpd restart

...

则服务进程重读配置文件。

再下载 brook.txt,分行正确。

4、上传文件

例2.

1) 客户端 (windows)

在记事本上创建 d:\moon2.txt,内容:



明月照我床,卧看不肯睡。

窗上青藤影,随风舞娟媚。

另存为,选择编码 UTF-8。

2) 客户端上传文件

ftp 172.16.1.3 连接服务器。依次输入交互命令:

cd poem

put d:\moon2.txt

bye

3) 服务器端查看

# exit

$ cat poem/moon2.txt

...

四、匿名用户的操作

1、约定

1) 帐号: 用户名 ftp 或 anoymous,密码 空。

2) 根目录: /var/ftp

3) 权限

为了安全,缺省允许下载,不许上传。

2、示例

例3.

1) 服务器端 (putty 窗口)

# cd /var/ftp/pub

# cat > moon1.txt



月冷寒江静,心头百念消。

欲眠君照我,无梦到明朝。

#

2) 客户端 (Windows)

ftp 172.16.1.3 连接服务器。依次输入交互命令:

pwd

ls -l

cd pub

lcd d:\

get d:\moon1.txt

bye

3) 客户端

用记事本查看 d:\moon.txt。

五、服务器其他配置

anonymous_enable=YES 允许匿名用户

anon_upload_enable=YES 允许匿名用户上传文件

anon_mkdir_write_enable=YES 允许匿名用户建目录

chown_uploads=YES

local_enable=YES 允许本地用户

write_enable=YES 允许本地用户上传文件

local_umask=022 本地用户上传文件掩码

用 666减去它,得缺省权限

xferlog_enable=YES

xferlog_file=/var/log/vsftpd.log 启用日志

accept_timeout=60

connect_timeout=60 超时秒数

pam_service_name=vsftpd pam 认证的文件名

userlist_enable=YES /etc/vsftpd.user_list

中的用户拒绝登录

listen=YES 独立监听。

NO,委托 xinetd 监听

我的硬盘空间有限,如何把帐号ftp默认的路径/var/ftp更改到别处?或者是,我的linux所有的目录都放在/根分区,因为空间紧张,我能否把ftp这个用户的默认路径放到别的分区?

可以,应该如下操作!

首先要把ftp这个用户删除

#userdel -r ftp

会有错误信息,不过不用理,这是正常的。

然后我们再把这个用户添加上,比如我想为帐号ftp的家目录设置在/mnt/LinG/ftp,我们就可以如下操作

[root@linuxsir001 root]# mkdir /root/ftp

[root@linuxsir001 root]# adduser -d /root/ftp -g ftp -s /sbin/nologin ftp

仅仅是这样做还不行,因为这样还是不能让匿名用户找到它的家目录,所以我们必须改变/mnt/LinG/ftp这个目录的权限。

[root@linuxsir001 root]# chmod 755 /root/ftp/

[root@linuxsir001 root]# chown -R root.root /root/ftp/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: