Linux vsftpd安装和启动及命令行下登录,查看中文文件出现乱码

运维 系统运维
由于Linux vsftpd下默认的字符集为UTF-8,而Windows中的默认字符集为GBK,因此当在linux下浏览Windows中的中文文件时,会出现乱码。如果客户端为FlashFXP或者FileZilla,都可以通过连接时设置字符集为UTF-8解决。但是如果通过命令行登录,则由于vsftp没有支持字符集的选择,也会出现乱码。
特别值得一提的是Linux vsftpd有很多值得学习的地方,这里我们主要介绍Linux vsftpd,包括介绍Linux vsftpd等方面。

1. 安装和启动Linux vsftpd:

$ yum install vsftpd然后更改/etc/vsftpd/vsftpd.conf文件,在最后加上一行代码,使得Linux vsftpd能够运行在一个独立的进程上:listen=yes开启vsftp服务,若要开机自动启动,可以在System->Administration->Services里更改:$ service vsftpd start(/stop/restart)在防火墙中开启端口21,System->Administration->Firewall,选择FTP,启用之。此时,ftp服务已经可以匿名访问了。

2. 让服务器上的本地用户能够通过ftp访问服务器(当然,这些用户也可以通过SSH等方式访问):

首先修改/etc/vsftpd/vsfptd.conf,找到以下一行,去掉前面的注释:local_enable=YES重启服务之后,就可以允许本地用户访问了,其认证方式是采用pam(Pluggable Authentication Module)的方式,其相应的文件位于/etc/pam.d/vsftpd,这个同Gnome中每次打开update manager都会要求输入密码类似。在vsftpd.conf中也可以修改(pam_service_name)。但是如果要限制本地用户中的一部分用户通过ftp访问,可以通过修改配置文件实现。

在Linux vsftpd.conf中找到并修改为以下几行(若没有则需要添加),其意义为只允许指定的user_list文件中所列举的本地用户通过FTP登录,不在这个列表中的本地用户禁止登录:

  1. userlist_enable=YES 
  2. userlist_deny=NO 
  3. userlist_file=/etc/vsftpd/user_list 

如果把上述第二行中userlist_deny=NO改为userlist_deny=YES,则情况正好相反,即只允许那些不在user_list文件中的本地用户通过FTP登录,而在这个列表中的本地用户则禁止登录。

在上述情况下,用户登录后可能出现无法查看目录的情形,但是能够改变目录和访问根目录"/",出现如下的错误:Response: 226 Transfer done (but failed to open directory).这是由于Fedora中默认开启了selinux(Security Enhanced Linux)服务,为了关闭此服务,应修改/etc/selinux/config文件,将SELINUX=enforced改为 SELINUX=disable,然后重启系统。

3.Linux vsftpd禁止用户改变home directory:

在默认情况下Linux vsftpd规定了如下变量值,该值表明所有的本地用户都不能改变home direcotry,对于一个名为test的用户来说,其默认home direcotry为/home/test/,改用户登录之后,由于有如下的设置,因此该用户不能navigate 到上一级的目录,也就是说他被锁定在了自己的home directory下,只能访问该目录及其子目录:chroot_local_user=YES

如果只需要控制某一部分用户不被锁定在home directory,则需要修改vsftpd.conf文件,找到并修改一下内容,这说明,位于/etc/vsftpd/chroot_list文件中的每一个用户都不被锁定,而其他不在该文件中的用户则均被锁定:

  1. chroot_local_user=YES 
  2. chroot_list_enable=YES 
  3. chroot_list_file=/etc/vsftdp/chroot_list 

在上述设置中,若把chroot_local_user的值改为NO,则情况正好相反,说明位于chroot_list文件下的用户都被锁定,而其他不在该文件中的用户均不被锁定。

4. Linux vsftpd为用户增加修改和删除等权限

修改/etc/vsftpd/vsftpd.conf文件,找到并去掉以下一行的注释,即可赋予用户修改和删除文件的权限:write_enable=YES若要实现不同用户登录后赋予不同权限,则需要更加复杂的实现。

5. Linux vsftpd命令行下登录,查看中文文件出现乱码

由于Linux vsftpd下默认的字符集为UTF-8,而Windows中的默认字符集为GBK,因此当在linux下浏览Windows中的中文文件时,会出现乱码。如果客户端为FlashFXP或者FileZilla,都可以通过连接时设置字符集为UTF-8解决。但是如果通过命令行登录,则由于vsftp没有支持字符集的选择,也会出现乱码。对于FlashFXP, 首先需要把ftp地址保存到站点管理器,然后在站点管理器中选中该站点,点击高级->字符编码,选择UTF8。对于FileZilla,其设置方式类似。

目前还没有找到一个好的解决方案,有一种解决办法是通过打补丁解决,参考以下文档:http://forum.ubuntu.org.cn/viewtopic.php?f=54&t=28642&start=0

6. Linux vsftpd其他服务器参数配置

  1. max_clients=5   #设置同时登录的最大连接数  
  2. ftpd_banner=Your welcome info here.   #设置用户登录后的欢迎信息  
  3. ascii_upload_enable=YES#启用字符模式的上传,可能带来安全隐患  
  4. ascii_download_enable=YES   #启用字符模式的下载  
  5. idle_session_timeout=300   #空闲时间超过300秒后断开连接  
  6. data_connection_timeout=300   #数据连接超时时间为300秒  
  7. xferlog_enable=YES #开启上传下载日志功能  
  8. xferlog_file=/var/log/vsftpd.log  #日志文件存放位置  
  9. dirmessage_enable=YES  #启用目录的.message信息 

【编辑推荐】

  1. Linux SVN安装启动访问模式
  2. Linux Samba安装服务与修改防火墙配置以允许访问
  3. Linux mount命令中最基本的几个命令
  4. 配置Linux YUM源设置使用代理
  5. Linux smb服务添加到防火墙与开机自启动
责任编辑:佚名 来源: CSDN
相关推荐

2009-08-07 18:42:09

2010-03-03 15:56:57

2009-08-07 10:33:53

linux命令行乱码linux命令行解决方式

2018-02-10 17:30:41

Linux命令

2009-12-09 09:25:52

Linux命令行svn命令

2010-06-01 19:14:53

SVN命令行

2016-12-15 08:30:02

Linux命令

2009-08-11 09:58:22

Linux命令行Linux命令svn命令

2019-12-10 10:03:18

Linux命令行工具

2023-04-18 17:11:43

命令Linux

2018-09-10 09:30:25

Linux命令应用

2011-09-05 14:31:50

Ubuntu

2011-02-23 16:25:51

linuxvsftpd

2010-11-16 11:50:21

oracle命令行登录

2019-02-13 09:20:13

Linux命令行more

2019-05-21 10:38:17

Linux命令行

2018-05-15 08:40:40

Linux命令数学运算

2014-05-04 10:58:18

Linux命令行Linux发行版

2009-08-11 09:11:06

linux打开浏览器命linux命令行浏览器linux命令行

2010-11-24 15:22:51

MySQL命令行
点赞
收藏

51CTO技术栈公众号