linux的vsftp使用介绍
Posted sweetxiaoma
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux的vsftp使用介绍相关的知识,希望对你有一定的参考价值。
vsftp 常用操作
安装
yum install vsftpd
启动服务
service vsftpd start
开启自动启动
chkconfig --level 35 vsftpd on
关闭匿名登陆
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
查看用户和对应管理目录
vi /etc/vsftpd/ftpusers // ftp用户黑名单 -- 指定了那些账户不可以访问ftp服务器
vi /etc/vsftpd/vsftpd.user_list // 黑白名单
// 1) userlist_enable和userlist_deny两个选项联合起来针对的是:本地全体用户(除去ftpusers中的用户)和出现在user_list文件中的用户以及不在在user_list文件中的用户这三类用户集合进行的设置。
// 2) 当且仅当userlist_enable=YES时:userlist_deny项的配置才有效,user_list文件才会被使用;当其为NO时,无论userlist_deny项为何值都是无效的,本地全体用户(除去ftpusers中的用户)都可以登入FTP
// 3) 当userlist_enable=YES时,userlist_deny=YES时:user_list是一个黑名单,即:所有出现在名单中的用户都会被拒绝登入;
// 4) 当userlist_enable=YES时,userlist_deny=NO时:user_list是一个白名单,即:只有出现在名单中的用户才会被准许登入(user_list之外的用户都被拒绝登入);另外需要特别提醒的是:使用白名单后,匿名用户将无法登入!除非显式在user_list中加入一行:anonymous
cat passwd
passwd ftp 用户名
service/restart
添加普通用户
useradd -d /home/testA test111( 添加test111 并指定该用户主目录 )
passwd test111 ( 为test111设置密码)
更改用户权限设置
usermod -s /sbin/nologin test111 ( 限定用户test111不能telnet )
usermod -s /sbin/bash test111 ( 用户test111 恢复正常?? )
usermod -d /testB test111 ( 将用户test111的主目录设置为testB )
限制用户只能访问自己的目录
vi /etc/vsftpd/vsftpd.conf
--- 查看 ---
#(default follows)
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
// 找到 vsftpd.chroot_list 并编辑
// 将受限制的用户添加进去,每个用户名一行
--- 修改 ---
chroot_list_enable=YES // 限制访问自身目录
choroot_list_file=/etc/vsftpd/vsftpd.chroot_list
需要允许用户修改密码
usermod -s /user/bin/passwd test111 // 用户连接telnet后将直接进入改密码界面
改完配置需要重启服务器
/etc/init.d/vsftpd restart
默认vsftpd.conf配置
# 默认的配置文件路径 : /etc/vsftpd/vsftpd.conf
#
# 默认编译生成设置是相当繁琐.
# 这个样板文件简化一点点。这样可以使ftp进程更具有可用性,如果你想要查看所有编译默认配置信息请查看vsftpd.conf.5
#
# 提示:这个样板文件并没有列出所有vsftpd的配置选项,你可以阅读vsftpd.conf.5获取所有编译配置选项。
#
# 允许匿名访问FTP?(注意--如果你注释这一行代表是允许匿名访问ftp)
anonymous_enable=YES
#
# 取消注释这一行代表允许本地登录,SELinux会为SE bool ftp_home_dir强制检查(类似防火墙,注意连不上要考虑这个原因)
local_enable=YES
#
# 取消注释代表可以任何形式写的命令可用
write_enable=YES
#
# 对于本地用户默认的umask是077.
# 大多数人的umask会设置为022.
#umask值为022:
#1) 文件的最大权限 rwx rwx rwx (777)
#2) umask值为022 --- -w- -w-
#3) 目录权限 rwx r-x r-x (755) 这就是目录创建缺省权限
#4) 文件权限 rw- r-- r-- (644) 这就是文件创建缺省权限
local_umask=022
#
# 取消注释这行代表允许匿名用户上传文件。
# 如果上面全局写命令被激活,这里唯一的影响就是你需要为ftp用户创建一个目录具有写的权限。
# 当然你需要设置Selinux的allow_anon_write allow_ftpd_full_access 属性
#anon_upload_enable=YES
#
# 取消注释这行表示匿名用户可以创建新的目录
#anon_mkdir_write_enable=YES
#
# 激活目录信息:远程用户访问到相对应的目录返回目录信息
dirmessage_enable=YES
#
# 激活上传/下载的日志
xferlog_enable=YES
#
# 确保连接20端口可用(ftp-data)
connect_from_port_20=YES
#
# 如果你想,你可以将匿名上传的文件所有者分配给不同的用户,注意! 不要使用root来上传文件
#chown_uploads=YES
#chown_username=whoever
#
# 你可以重写日志文件路径,默认的路径如下
#xferlog_file=/var/log/xferlog
#
# 如果你想,你可以使用标准的ftp xferlog日志格式,
# 注意默认的日志文件的位置为/var/log/xferlog
xferlog_std_format=YES
#
# 你可以改变默认空闲会话连接超时时间(也就是过了个时间,服务器会自动断开 单位 秒)
#idle_session_timeout=600
#
# 你可以改变默认数据连接超时时间
#data_connection_timeout=120
#
# 推荐在你系统上定义一个唯一用户,ftp服务将会把完全隔离没有特权的用户(剥夺政治权利终身)
#nopriv_user=ftpsecure
#
# 开启,服务器将会识别异步ABOR请求。不推荐安全下使用(这个代码意义重大)。不要开启,可能迷惑老的FTP用户。
#async_abor_enable=YES
#
# 在默认情况下服务器将会假装允许ACSII模式,但事实上会忽略这个请求
# 开启这个选项,服务器将会将会文件进行ASCII编码,
# 注意在有些ftp服务器,在ASCII模式通过命令 "SIZE/big/file可能出现DOS攻击。
# vsftpd predicted this attack and has always been safe, reporting the size of the raw file.
# 在协议中ASCII编码是可怕的特性。
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# 自定义登录的之后欢迎语
#ftpd_banner=Welcome to blah FTP service.
#
# 你可以自定义一个文件,这个文件包含禁用的匿名e-mail 地址,据说,这种方式对于避免特定DOS攻击
#deny_email_enable=YES
# (默认的email禁止文件路径)
#banned_email_file=/etc/vsftpd/banned_emails
#
# 你可能定义显式一个本地用户列表去改变的他们登录时的根目录,如果chroot_local_user为YES,那么这个列表用户变成NOT chroot() (取反)
# (警告 chroot可能非常危险。如果使用chroot,确保用户不会有获取最高目录的权限。)
You may specify an explicit list of local users to chroot() to their home
#chroot_local_user=YES
chroot_list_enable=YES
# (默认文件的位置)
#chroot_list_file=/etc/vsftpd/chroot_list
#
# 可以激活"-R"选项通过 "ls -R".
# 在默认情况不可用,这样避免大型站点产生过大I/O流。然而对于一些ftp客户端例如"ncftp"和"mirror"默认具有-R属性。这里需要特殊情况才开启
#ls_recurse_enable=YES
#
# 当“listen”可用的时候,vsftpd运行独立模式,然后监听IPv4 套接字。这个并不会监听ipv6。
listen=NO
#
# 这个选项为YES表示监听IPv6套接字。在默认情况下监听在IPv6任意地址将会接受来自IPv6和IPv4客户端。没有必要监听IPv6和IPv4套接字。
# 如果你真有这种需求,(你想要监听特定的地址),你必须要复制两份vsftpd,并且两份配置文件。
# 确保其中一个选项被注释!!
listen_ipv6=YES
allow_writeable_chroot=YES //具有写权限
pam_service_name=vsftpd //验证文件
userlist_enable=YES //用户列表开启
tcp_wrappers=YES //tcp封装
以上是关于linux的vsftp使用介绍的主要内容,如果未能解决你的问题,请参考以下文章
linux下VSFTP 530 Permission denied错误的解决办法