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/*.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 *.txt

bye


    Windows 中,查看 d:\*.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

    ...

    

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

    再下载 *.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/ 










本文转自 chengxuyonghu 51CTO博客,原文链接:http://blog.51cto.com/6226001001/1578501,如需转载请自行联系原作者
上一篇:Linux 磁盘管理1——基础


下一篇:Homebrew 插件自启动