- 浏览: 27329 次
- 性别:
- 来自: 杭州
文章分类
建立虚拟用户的vsftpd安装配置过程
1.安装vsftpd服务,和测试命令ftp
#yum -y install vsftpd
#yum -y install ftp
2.建立虚拟用户的用户名/密码数据库
vsftpd服务的虚拟用户数据库使用的是Berkeley DB格式的数据文件。建立数据库文件要用到db_load命令工具,所以要安装db4软件包
#yum -y install db4*
(一)建立文本格式的用户名/密码列表文件,奇数行为用户名,偶数行对应为上一行用户名密码。
# vi /etc/vsftpd/vusers.list
accp 虚拟用户
123.com 虚拟用户密码
java
123.com
(二)用db_load工具将列表文件转化为DB数据库文件。
# cd /etc/vsftpd/
#db_load -T -t hash -f vusers.list vusers.db
#chown /etc/vsftpd/vuser.* //降低文件权限以提高安全性
3.建立FTP访问根目录以及虚拟用户对应的系统账号 这里我给用户指定这里的虚拟用户和对应的系统账号
#useradd -d /data/www -s /sbin/nologin ftpuser
useradd -d /home/ytb/www/cms.yuntongbu/ -s /sbin/nologin kankanftpuser
#chmod 777 /data/www
创建测试文件
#ls -lh /boot > /data/pub/vutest.file
4.建立PAM认证文件
#vi /etc/pam.d/vsftpd.vu 添加如下内容
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
5.修改vsftpd的主配置文件,添加对虚拟用户的支持。
#vi /etc/vsftpd/vsftpd.conf #内容如下
anonymous_enable=NO 这里设置禁止匿名登录
local_enable=YES
anon_umask=022
write_enable=YES 全局配置可写
guest_enable=YES
guest_username=ftpuser 这里添加你虚拟用户的支持
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd.vu
userlist_enable=YES
tcp_wrappers=YES
6.为不同的虚拟用户配置独立的配置文件
#vi /etc/vsftpd/vsftpd.conf #在末尾添加如下一行
user_config_dir=/etc/vsftpd/vusers_dir
7.为accp和java建立独立配置目录及文件
#mkdir -p /etc/vsftpd/vusers_dir
#cd /etc/vsftpd/vusers_dir
#vi accp ###添加如下内容
anon_upload_enable=YES
anon_mkdir_write_enable=YES
#touch java 建立空文件,默认配置文件中的权限
8.启动vsftpd服务
#service vsftpd start
权限:john可以登录到ftp服务器,可以浏览,下载,也可以上传文件
mike可以登录到ftp服务器,可以浏览,下载,但是不可以上传
本地测试:
(一)accp的测试
[root@YTB-APP-1 ~]# ls
anaconda-ks.cfg bin importipas.sh install.log install.log.syslog my.cnf.bak
[root@YTB-APP-1 ~]# ftp 127.0.0.1
Trying ::1...
ftp: connect to address ::1Connection refused
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
220 (vsFTPd 2.2.2)
Name (localhost:ytb): accp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (127,0,0,1,82,29).
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 574 Jul 01 14:50 vutest.file
226 Directory send OK.
ftp> get vutest.file
local: vutest.file remote: vutest.file
227 Entering Passive Mode (127,0,0,1,103,164).
150 Opening BINARY mode data connection for vutest.file (574 bytes).
226 Transfer complete.
574 bytes received in 3.4e-05 secs (16882.35 Kbytes/sec)
ftp> put install.log
local: install.log remote: install.log
227 Entering Passive Mode (127,0,0,1,115,162).
150 Ok to send data.
226 Transfer complete.
29388 bytes sent in 0.024 secs (1222.97 Kbytes/sec)
ftp> quit
221 Goodbye.
[root@YTB-APP-1 ~]# ls
anaconda-ks.cfg bin importipas.sh install.log install.log.syslog my.cnf.bak vutest.file
[root@YTB-APP-1 ~]# ls /data/pub/
install.log vutest.file
[root@YTB-APP-1 ~]#
(二)mike的测试
[root@YTB-APP-1 ~]# ls
anaconda-ks.cfg bin importipas.sh install.log install.log.syslog my.cnf.bak vutest.file
[root@YTB-APP-1 ~]# rm -rf vutest.file
[root@YTB-APP-1 ~]# ftp localhost
Trying ::1...
ftp: connect to address ::1Connection refused
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
220 (vsFTPd 2.2.2)
Name (localhost:ytb): java
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (127,0,0,1,223,141).
150 Here comes the directory listing.
-rw-r--r-- 1 503 503 29388 Jul 03 02:23 install.log
-rw-r--r-- 1 0 0 574 Jul 01 14:50 vutest.file
226 Directory send OK.
ftp> get vutest.file
local: vutest.file remote: vutest.file
227 Entering Passive Mode (127,0,0,1,154,230).
150 Opening BINARY mode data connection for vutest.file (574 bytes).
226 Transfer complete.
574 bytes received in 3.8e-05 secs (15105.26 Kbytes/sec)
ftp> put install.log.syslog
local: install.log.syslog remote: install.log.syslog
227 Entering Passive Mode (127,0,0,1,227,247).
550 Permission denied.
ftp> quit
221 Goodbye.
[root@YTB-APP-1 ~]# ls
anaconda-ks.cfg bin importipas.sh install.log install.log.syslog my.cnf.bak vutest.file
[root@YTB-APP-1 ~]# ls /dat/pub/
ls: cannot access /dat/pub/: No such file or directory
[root@YTB-APP-1 ~]# ls /data/pub/
install.log vutest.file
[root@YTB-APP-1 ~]#
这里就连接成功了,如果后续还要添加账户只需要在vi /etc/vsftpd/vusers.list
然后在用db_load工具将列表文件转化为DB数据库文件。
# cd /etc/vsftpd/
#db_load -T -t hash -f vusers.list vusers.db
添加好以后给该用户指定一个对应的创建目录。
useradd -d /data/www -s /sbin/nologin accp 虚拟用户名
然后就可以连接了。
最后给每个用户做用户权限的时候也是可以的。
直接在/etc/vsftpd/vusers_dir目录下面创建用户txt 给予权限。
因为我在vsftpd.conf做了配置。
指定给特殊用户权限访问。
显示如上则表示連接成功
8. 設置开机运行
(1)我们在前面將其設置为独立启动模式,若要开机运行则在/etc/vsftpd.conf 中的listen=YES 该为listen=NO或注释掉
(2)#vi /etc/xinetd.d/vsftpd
将disable=YES 改为disable=NO
(3)#service xinetd restart 此时可用ftp 127.0.0.1测试
9. ftp客户端的命令
FTP的命令行格式为:
ftp -v -d -i -n -g [主机名] ,其中
-v 显示远程服务器的所有响应信息;
-n 限制ftp的自动登录,即不使用;.n etrc文件;
-d 使用调试方式;
-g 取消全局文件名。
FTP使用的内部命令如下(中括号表示可选项):
<1>.![cmd[args]]:在本地机中执行交互shell,exit回到ftp环境,如:!ls*.zip
<2>.$ macro-ame[args]: 执行宏定义macro-name。
<3>.account[password]: 提供登录远程系统成功后访问系统资源所需的补充口令。
<4>.append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。
<5>.ascii:使用ascii类型传输方式。
<6>.bell:每个命令执行完毕后计算机响铃一次。
<7>.bin:使用二进制文件传输方式。
<8>.bye:退出ftp会话过程。
<9>.case:在使用mget时,将远程主机文件名中的大写转为小写字母。
<10>.cd remote-dir:进入远程主机目录。
<11>.cdup:进入远程主机目录的父目录。
<12>.chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,
如:chmod 777 a.out。
<13>.close:中断与远程服务器的ftp会话(与open对应)。
<14>.cr:使用asscii方式传输文件时,将回车换行转换为回行。
<15>.delete remote-file:删除远程主机文件。
<16>.debug[debug-value]:设置调试方式, 显示发送至远程主机的每条命令,如:deb up 3,若设为0,表示取消debug。
<17>.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件
<18>.disconnection:同close。
<19>.form format:将文件传输方式设置为format,缺省为file方式。
<20>.get remote-file[local-file]: 将远程主机的文件remote-file传至本地硬盘的local-file。
<21>.glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名,同命令行的-g参数。
<22>.hash:每传输1024字节,显示一个hash符号(#)。
<23>.help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get。
<24>.idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。
<25>.image:设置二进制传输方式(同binary)。
<26>.lcd[dir]:将本地工作目录切换至dir。
<27>.ls[remote-dir][local-file]:显示远程目录remote-dir, 并存入本地文件local-file。
<28>.macdef macro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。
<29>.mdelete[remote-file]:删除远程主机文件。
<30>.mdir remote-files local-file:与dir类似,但可指定多个远程文件,
如 :mdir *.o.*.zipoutfile 。
<31>.mget remote-files:传输多个远程文件。
<32>.mkdir dir-name:在远程主机中建一目录。
<33>.mls remote-file local-file:同nlist,但可指定多个文件名。
<34>.mode[modename]:将文件传输方式设置为modename, 缺省为stream方式。
<35>.modtime file-name:显示远程主机文件的最后修改时间。
<36>.mput local-file:将多个文件传输至远程主机。
<37>.newer file-name: 如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件。
<38>.nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并存入本地硬盘的local-file。
<39>.nmap[inpattern outpattern]:设置文件名映射机制, 使得文件传输时,文件中的某些字符相互转换, 如:nmap $1.$2.$3[$1,$2].[$2,$3],则传输文件a1.a2.a3时,文件名变为a1,a2。该命令特别适用于远程主机为非UNIX机的情况。
<40>.ntrans[inchars[outchars]]:设置文件名字符的翻译机制,如ntrans1R,则文件名LLL将变为RRR。
<41>.open host[port]:建立指定ftp服务器连接,可指定连接端口。
<42>.passive:进入被动传输方式。
<43>.prompt:设置多个文件传输时的交互提示。
<44>.proxy ftp-cmd:在次要控制连接中,执行一条ftp命令, 该命令允许连接两个ftp服务器,以在两个服务器间传输文件。第一条ftp命令必须为open,以首先建立两个服务器间的连接。
<45>.put local-file[remote-file]:将本地文件local-file传送至远程主机。
<46>.pwd:显示远程主机的当前工作目录。
<47>.quit:同bye,退出ftp会话。
<48>.quote arg1,arg2...:将参数逐字发至远程ftp服务器,如:quote syst.
<49>.recv remote-file[local-file]:同get。
<50>.reget remote-file[local-file]:类似于get,但若local-file存在,则从上次传输中断处续传。
<51>.rhelp[cmd-name]:请求获得远程主机的帮助。
<52>.rstatus[file-name]:若未指定文件名,则显示远程主机的状态, 否则显示文件状态。
<53>.rename[from][to]:更改远程主机文件名。
<54>.reset:清除回答队列。
<55>.restart marker:从指定的标志marker处,重新开始get或put,如:restart 130。
<56>.rmdir dir-name:删除远程主机目录。
<57>.runique:设置文件名只一性存储,若文件存在,则在原文件后加后缀.1, .2等。
<58>.send local-file[remote-file]:同put。
<59>.sendport:设置PORT命令的使用。
<60>.site arg1,arg2...:将参数作为SITE命令逐字发送至远程ftp主机。
<61>.size file-name:显示远程主机文件大小,如:site idle 7200。
<62>.status:显示当前ftp状态。
<63>.struct[struct-name]:将文件传输结构设置为struct-name, 缺省时使用stream结构。
<64>.sunique:将远程主机文件名存储设置为只一(与runique对应)。
<65>.system:显示远程主机的操作系统类型。
<66>.tenex:将文件传输类型设置为TENEX机的所需的类型。
<67>.tick:设置传输时的字节计数器。
<68>.trace:设置包跟踪。
<69>.type[type-name]:设置文件传输类型为type-name,缺省为ascii,如:type binary,设置二进制传输方式。
<70>.umask[newmask]:将远程服务器的缺省umask设置为newmask,如:umask 3
<71>.user user-name[password][account]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:user anonymous my@email。
<72>.verbose:同命令行的-v参数,即设置详尽报告方式,ftp 服务器的所有响 应都将显示给用户,缺省为on.
-----------vsftpd.conf配置文件的属性--------------
anonymous_enable=NO 禁用匿名用户
no_anon_password=YES 需要密码
anon_root=/var/ftp 匿名用户的默认主目录
local_enable=NO 禁用本地用户
local_root=webdisk 本地用户的主目录(相对路径是相对于用户的家目录,绝对路径是所有用户都只能登录到这个目录下比如:/localftp)
guest_enable=NO 禁用gust用户
ftp_username=ftp 匿名用户的用户名(默认还有anonymous可使用)
权限控制
write_enable=YES 本地用户可写
local_umask=022 上传文件的umask
file_open_mode=0666 使用文件的方式
anon_upload_enable=NO 匿名用户不可以上传
anon_mkdir_write_enable=NO 匿名用户不可以建目录等写操作
anon_other_write_enable=NO 匿名用户不可以做其他的写操作
anon_world_readable_only=YES 匿名用户可以读文件
#chown_uploads=YES 修改上传的文件的属主
#chown_username=ftpadmin 修改上传的文件的属主为XXX
ascii_upload_enable=NO 不使用ascii上传文件
ascii_download_enable=NO 不使用ascii下载文件
secure_chroot_dir=/usr/share/empty 默认值
超时控制
idle_session_timeout=600 空闲超时600秒
data_connection_timeout=120 传输超时120秒
accept_timeout=60 pasv模式等待时间60秒
connect_timeout=60 port模式等待时间60秒
服务控制
xferlog_enable=YES 启动日志功能
xferlog_std_format=YES 使用标准日志格式
xferlog_file=/var/log/vsftpd.log 日志默认的位置
pasv_enable=YES 启用被动模式
#port_enable=YES 启用主动模式
#注意此处pasv和port只能写一个,不能一个YES,另一个NO,要想让另一个不起作用,只能用#注释掉,否则会出错。
tcp_wrappers=YES 启用tcp_wrappers功能
nopriv_user=nobody 最低权限用户
listen=YES 使用standalone 模式(推荐的)
显示信息
ftpd_banner=welcome to ftp. 登录时的欢迎信息
dirmessage_enable=YES 启动切换目录时提示目录信息的功能
message_file=.message 目录提示信息的内容文件
文件权限设置
chroot_list_enable=YES 启动用户目录限制功能
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list 此文件中的用户不能改变到其他外层目录中。
userlist_enable=YES 启动用户限制功能
userlist_deny=YES userlist文件中的用户禁止登录,NO的话则只有userlist中用户可以登录
userlist_file=/etc/vsftpd/vsftpd.user_list 禁止登录用户列表文件名和位置(可自定义)
user_config_dir=/etc/vsftpd/userconf/ 对个别用户特殊设置的配置文件的目录(在此目录下建立对应“用户名”的文件,文件里写
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES 等权限信息,此用户将有这里所写的权限)
连接选项
max_clients=100 最大连接数
max_per_ip=5 每个ip最大连接数
connect_from_port_20=YES 启用20端口传输数据
#listen_address=192.168.0.2 指定监听的ip地址,如果你有多个ip的话
listen_port=21 监听的端口号
ftp_data_port=20 数据传输端口号
pasv_max_port=40000 被动模式的端口号的上限(0为不限)
pasv_min_port=30000 被动模式的端口号的下限(0为不限)
数据传输速度
anon_max_rate=51200 匿名用户最大传输率
local_max_rate=5120000 本地用户最大传输率
这里做单独用户权限用户配置
那么现在大家看看我的匿名服务器配置文件吧
anonymous_enable=YES //允许匿名访问,这是匿名服务器必须的
write_enable=YES //全局配置可写
no_anon_password=YES //匿名用户login时不询问口令
anon_umask=077 //匿名用户上传的文件权限是-rw----
anon_upload_enable=YES //允许匿名用户上传文件
anon_mkdir_write_enable=YES //允许匿名用户建立目录
anon_other_write_enable=YES //允许匿名用户具有建立目录,上传之外的权限,如重命名,删除
dirmessage_enable=YES //当使用者转换目录,则会显示该目录下的.message信息
xferlog_enable=YES //记录使用者所有上传下载信息
xferlog_file=/var/log/vsftpd.log //将上传下载信息记录到/var/log/vsftpd.log中
xferlog_std_format=YES //日志使用标准xferlog格式
idle_session_timeout=600 //客户端超过600S没有动作就自动被服务器踢出
data_connection_timeout=120 //数据传输时超过120S没有动作被服务器踢出
chown_uploads=YES
chown_username=daemon //上传文件的属主
ftpd_banner=Welcome to d-1701.com FTP service. //FTP欢迎信息
anon_max_rate=80000 //这是匿名用户的下载速度为80KBytes/s
check_shell=NO //不检测SHELL[color=darkred][/color]
1.安装vsftpd服务,和测试命令ftp
#yum -y install vsftpd
#yum -y install ftp
2.建立虚拟用户的用户名/密码数据库
vsftpd服务的虚拟用户数据库使用的是Berkeley DB格式的数据文件。建立数据库文件要用到db_load命令工具,所以要安装db4软件包
#yum -y install db4*
(一)建立文本格式的用户名/密码列表文件,奇数行为用户名,偶数行对应为上一行用户名密码。
# vi /etc/vsftpd/vusers.list
accp 虚拟用户
123.com 虚拟用户密码
java
123.com
(二)用db_load工具将列表文件转化为DB数据库文件。
# cd /etc/vsftpd/
#db_load -T -t hash -f vusers.list vusers.db
#chown /etc/vsftpd/vuser.* //降低文件权限以提高安全性
3.建立FTP访问根目录以及虚拟用户对应的系统账号 这里我给用户指定这里的虚拟用户和对应的系统账号
#useradd -d /data/www -s /sbin/nologin ftpuser
useradd -d /home/ytb/www/cms.yuntongbu/ -s /sbin/nologin kankanftpuser
#chmod 777 /data/www
创建测试文件
#ls -lh /boot > /data/pub/vutest.file
4.建立PAM认证文件
#vi /etc/pam.d/vsftpd.vu 添加如下内容
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
5.修改vsftpd的主配置文件,添加对虚拟用户的支持。
#vi /etc/vsftpd/vsftpd.conf #内容如下
anonymous_enable=NO 这里设置禁止匿名登录
local_enable=YES
anon_umask=022
write_enable=YES 全局配置可写
guest_enable=YES
guest_username=ftpuser 这里添加你虚拟用户的支持
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd.vu
userlist_enable=YES
tcp_wrappers=YES
6.为不同的虚拟用户配置独立的配置文件
#vi /etc/vsftpd/vsftpd.conf #在末尾添加如下一行
user_config_dir=/etc/vsftpd/vusers_dir
7.为accp和java建立独立配置目录及文件
#mkdir -p /etc/vsftpd/vusers_dir
#cd /etc/vsftpd/vusers_dir
#vi accp ###添加如下内容
anon_upload_enable=YES
anon_mkdir_write_enable=YES
#touch java 建立空文件,默认配置文件中的权限
8.启动vsftpd服务
#service vsftpd start
权限:john可以登录到ftp服务器,可以浏览,下载,也可以上传文件
mike可以登录到ftp服务器,可以浏览,下载,但是不可以上传
本地测试:
(一)accp的测试
[root@YTB-APP-1 ~]# ls
anaconda-ks.cfg bin importipas.sh install.log install.log.syslog my.cnf.bak
[root@YTB-APP-1 ~]# ftp 127.0.0.1
Trying ::1...
ftp: connect to address ::1Connection refused
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
220 (vsFTPd 2.2.2)
Name (localhost:ytb): accp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (127,0,0,1,82,29).
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 574 Jul 01 14:50 vutest.file
226 Directory send OK.
ftp> get vutest.file
local: vutest.file remote: vutest.file
227 Entering Passive Mode (127,0,0,1,103,164).
150 Opening BINARY mode data connection for vutest.file (574 bytes).
226 Transfer complete.
574 bytes received in 3.4e-05 secs (16882.35 Kbytes/sec)
ftp> put install.log
local: install.log remote: install.log
227 Entering Passive Mode (127,0,0,1,115,162).
150 Ok to send data.
226 Transfer complete.
29388 bytes sent in 0.024 secs (1222.97 Kbytes/sec)
ftp> quit
221 Goodbye.
[root@YTB-APP-1 ~]# ls
anaconda-ks.cfg bin importipas.sh install.log install.log.syslog my.cnf.bak vutest.file
[root@YTB-APP-1 ~]# ls /data/pub/
install.log vutest.file
[root@YTB-APP-1 ~]#
(二)mike的测试
[root@YTB-APP-1 ~]# ls
anaconda-ks.cfg bin importipas.sh install.log install.log.syslog my.cnf.bak vutest.file
[root@YTB-APP-1 ~]# rm -rf vutest.file
[root@YTB-APP-1 ~]# ftp localhost
Trying ::1...
ftp: connect to address ::1Connection refused
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
220 (vsFTPd 2.2.2)
Name (localhost:ytb): java
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (127,0,0,1,223,141).
150 Here comes the directory listing.
-rw-r--r-- 1 503 503 29388 Jul 03 02:23 install.log
-rw-r--r-- 1 0 0 574 Jul 01 14:50 vutest.file
226 Directory send OK.
ftp> get vutest.file
local: vutest.file remote: vutest.file
227 Entering Passive Mode (127,0,0,1,154,230).
150 Opening BINARY mode data connection for vutest.file (574 bytes).
226 Transfer complete.
574 bytes received in 3.8e-05 secs (15105.26 Kbytes/sec)
ftp> put install.log.syslog
local: install.log.syslog remote: install.log.syslog
227 Entering Passive Mode (127,0,0,1,227,247).
550 Permission denied.
ftp> quit
221 Goodbye.
[root@YTB-APP-1 ~]# ls
anaconda-ks.cfg bin importipas.sh install.log install.log.syslog my.cnf.bak vutest.file
[root@YTB-APP-1 ~]# ls /dat/pub/
ls: cannot access /dat/pub/: No such file or directory
[root@YTB-APP-1 ~]# ls /data/pub/
install.log vutest.file
[root@YTB-APP-1 ~]#
这里就连接成功了,如果后续还要添加账户只需要在vi /etc/vsftpd/vusers.list
然后在用db_load工具将列表文件转化为DB数据库文件。
# cd /etc/vsftpd/
#db_load -T -t hash -f vusers.list vusers.db
添加好以后给该用户指定一个对应的创建目录。
useradd -d /data/www -s /sbin/nologin accp 虚拟用户名
然后就可以连接了。
最后给每个用户做用户权限的时候也是可以的。
直接在/etc/vsftpd/vusers_dir目录下面创建用户txt 给予权限。
因为我在vsftpd.conf做了配置。
指定给特殊用户权限访问。
显示如上则表示連接成功
8. 設置开机运行
(1)我们在前面將其設置为独立启动模式,若要开机运行则在/etc/vsftpd.conf 中的listen=YES 该为listen=NO或注释掉
(2)#vi /etc/xinetd.d/vsftpd
将disable=YES 改为disable=NO
(3)#service xinetd restart 此时可用ftp 127.0.0.1测试
9. ftp客户端的命令
FTP的命令行格式为:
ftp -v -d -i -n -g [主机名] ,其中
-v 显示远程服务器的所有响应信息;
-n 限制ftp的自动登录,即不使用;.n etrc文件;
-d 使用调试方式;
-g 取消全局文件名。
FTP使用的内部命令如下(中括号表示可选项):
<1>.![cmd[args]]:在本地机中执行交互shell,exit回到ftp环境,如:!ls*.zip
<2>.$ macro-ame[args]: 执行宏定义macro-name。
<3>.account[password]: 提供登录远程系统成功后访问系统资源所需的补充口令。
<4>.append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。
<5>.ascii:使用ascii类型传输方式。
<6>.bell:每个命令执行完毕后计算机响铃一次。
<7>.bin:使用二进制文件传输方式。
<8>.bye:退出ftp会话过程。
<9>.case:在使用mget时,将远程主机文件名中的大写转为小写字母。
<10>.cd remote-dir:进入远程主机目录。
<11>.cdup:进入远程主机目录的父目录。
<12>.chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,
如:chmod 777 a.out。
<13>.close:中断与远程服务器的ftp会话(与open对应)。
<14>.cr:使用asscii方式传输文件时,将回车换行转换为回行。
<15>.delete remote-file:删除远程主机文件。
<16>.debug[debug-value]:设置调试方式, 显示发送至远程主机的每条命令,如:deb up 3,若设为0,表示取消debug。
<17>.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件
<18>.disconnection:同close。
<19>.form format:将文件传输方式设置为format,缺省为file方式。
<20>.get remote-file[local-file]: 将远程主机的文件remote-file传至本地硬盘的local-file。
<21>.glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名,同命令行的-g参数。
<22>.hash:每传输1024字节,显示一个hash符号(#)。
<23>.help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get。
<24>.idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。
<25>.image:设置二进制传输方式(同binary)。
<26>.lcd[dir]:将本地工作目录切换至dir。
<27>.ls[remote-dir][local-file]:显示远程目录remote-dir, 并存入本地文件local-file。
<28>.macdef macro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。
<29>.mdelete[remote-file]:删除远程主机文件。
<30>.mdir remote-files local-file:与dir类似,但可指定多个远程文件,
如 :mdir *.o.*.zipoutfile 。
<31>.mget remote-files:传输多个远程文件。
<32>.mkdir dir-name:在远程主机中建一目录。
<33>.mls remote-file local-file:同nlist,但可指定多个文件名。
<34>.mode[modename]:将文件传输方式设置为modename, 缺省为stream方式。
<35>.modtime file-name:显示远程主机文件的最后修改时间。
<36>.mput local-file:将多个文件传输至远程主机。
<37>.newer file-name: 如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件。
<38>.nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并存入本地硬盘的local-file。
<39>.nmap[inpattern outpattern]:设置文件名映射机制, 使得文件传输时,文件中的某些字符相互转换, 如:nmap $1.$2.$3[$1,$2].[$2,$3],则传输文件a1.a2.a3时,文件名变为a1,a2。该命令特别适用于远程主机为非UNIX机的情况。
<40>.ntrans[inchars[outchars]]:设置文件名字符的翻译机制,如ntrans1R,则文件名LLL将变为RRR。
<41>.open host[port]:建立指定ftp服务器连接,可指定连接端口。
<42>.passive:进入被动传输方式。
<43>.prompt:设置多个文件传输时的交互提示。
<44>.proxy ftp-cmd:在次要控制连接中,执行一条ftp命令, 该命令允许连接两个ftp服务器,以在两个服务器间传输文件。第一条ftp命令必须为open,以首先建立两个服务器间的连接。
<45>.put local-file[remote-file]:将本地文件local-file传送至远程主机。
<46>.pwd:显示远程主机的当前工作目录。
<47>.quit:同bye,退出ftp会话。
<48>.quote arg1,arg2...:将参数逐字发至远程ftp服务器,如:quote syst.
<49>.recv remote-file[local-file]:同get。
<50>.reget remote-file[local-file]:类似于get,但若local-file存在,则从上次传输中断处续传。
<51>.rhelp[cmd-name]:请求获得远程主机的帮助。
<52>.rstatus[file-name]:若未指定文件名,则显示远程主机的状态, 否则显示文件状态。
<53>.rename[from][to]:更改远程主机文件名。
<54>.reset:清除回答队列。
<55>.restart marker:从指定的标志marker处,重新开始get或put,如:restart 130。
<56>.rmdir dir-name:删除远程主机目录。
<57>.runique:设置文件名只一性存储,若文件存在,则在原文件后加后缀.1, .2等。
<58>.send local-file[remote-file]:同put。
<59>.sendport:设置PORT命令的使用。
<60>.site arg1,arg2...:将参数作为SITE命令逐字发送至远程ftp主机。
<61>.size file-name:显示远程主机文件大小,如:site idle 7200。
<62>.status:显示当前ftp状态。
<63>.struct[struct-name]:将文件传输结构设置为struct-name, 缺省时使用stream结构。
<64>.sunique:将远程主机文件名存储设置为只一(与runique对应)。
<65>.system:显示远程主机的操作系统类型。
<66>.tenex:将文件传输类型设置为TENEX机的所需的类型。
<67>.tick:设置传输时的字节计数器。
<68>.trace:设置包跟踪。
<69>.type[type-name]:设置文件传输类型为type-name,缺省为ascii,如:type binary,设置二进制传输方式。
<70>.umask[newmask]:将远程服务器的缺省umask设置为newmask,如:umask 3
<71>.user user-name[password][account]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:user anonymous my@email。
<72>.verbose:同命令行的-v参数,即设置详尽报告方式,ftp 服务器的所有响 应都将显示给用户,缺省为on.
-----------vsftpd.conf配置文件的属性--------------
anonymous_enable=NO 禁用匿名用户
no_anon_password=YES 需要密码
anon_root=/var/ftp 匿名用户的默认主目录
local_enable=NO 禁用本地用户
local_root=webdisk 本地用户的主目录(相对路径是相对于用户的家目录,绝对路径是所有用户都只能登录到这个目录下比如:/localftp)
guest_enable=NO 禁用gust用户
ftp_username=ftp 匿名用户的用户名(默认还有anonymous可使用)
权限控制
write_enable=YES 本地用户可写
local_umask=022 上传文件的umask
file_open_mode=0666 使用文件的方式
anon_upload_enable=NO 匿名用户不可以上传
anon_mkdir_write_enable=NO 匿名用户不可以建目录等写操作
anon_other_write_enable=NO 匿名用户不可以做其他的写操作
anon_world_readable_only=YES 匿名用户可以读文件
#chown_uploads=YES 修改上传的文件的属主
#chown_username=ftpadmin 修改上传的文件的属主为XXX
ascii_upload_enable=NO 不使用ascii上传文件
ascii_download_enable=NO 不使用ascii下载文件
secure_chroot_dir=/usr/share/empty 默认值
超时控制
idle_session_timeout=600 空闲超时600秒
data_connection_timeout=120 传输超时120秒
accept_timeout=60 pasv模式等待时间60秒
connect_timeout=60 port模式等待时间60秒
服务控制
xferlog_enable=YES 启动日志功能
xferlog_std_format=YES 使用标准日志格式
xferlog_file=/var/log/vsftpd.log 日志默认的位置
pasv_enable=YES 启用被动模式
#port_enable=YES 启用主动模式
#注意此处pasv和port只能写一个,不能一个YES,另一个NO,要想让另一个不起作用,只能用#注释掉,否则会出错。
tcp_wrappers=YES 启用tcp_wrappers功能
nopriv_user=nobody 最低权限用户
listen=YES 使用standalone 模式(推荐的)
显示信息
ftpd_banner=welcome to ftp. 登录时的欢迎信息
dirmessage_enable=YES 启动切换目录时提示目录信息的功能
message_file=.message 目录提示信息的内容文件
文件权限设置
chroot_list_enable=YES 启动用户目录限制功能
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list 此文件中的用户不能改变到其他外层目录中。
userlist_enable=YES 启动用户限制功能
userlist_deny=YES userlist文件中的用户禁止登录,NO的话则只有userlist中用户可以登录
userlist_file=/etc/vsftpd/vsftpd.user_list 禁止登录用户列表文件名和位置(可自定义)
user_config_dir=/etc/vsftpd/userconf/ 对个别用户特殊设置的配置文件的目录(在此目录下建立对应“用户名”的文件,文件里写
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES 等权限信息,此用户将有这里所写的权限)
连接选项
max_clients=100 最大连接数
max_per_ip=5 每个ip最大连接数
connect_from_port_20=YES 启用20端口传输数据
#listen_address=192.168.0.2 指定监听的ip地址,如果你有多个ip的话
listen_port=21 监听的端口号
ftp_data_port=20 数据传输端口号
pasv_max_port=40000 被动模式的端口号的上限(0为不限)
pasv_min_port=30000 被动模式的端口号的下限(0为不限)
数据传输速度
anon_max_rate=51200 匿名用户最大传输率
local_max_rate=5120000 本地用户最大传输率
这里做单独用户权限用户配置
那么现在大家看看我的匿名服务器配置文件吧
anonymous_enable=YES //允许匿名访问,这是匿名服务器必须的
write_enable=YES //全局配置可写
no_anon_password=YES //匿名用户login时不询问口令
anon_umask=077 //匿名用户上传的文件权限是-rw----
anon_upload_enable=YES //允许匿名用户上传文件
anon_mkdir_write_enable=YES //允许匿名用户建立目录
anon_other_write_enable=YES //允许匿名用户具有建立目录,上传之外的权限,如重命名,删除
dirmessage_enable=YES //当使用者转换目录,则会显示该目录下的.message信息
xferlog_enable=YES //记录使用者所有上传下载信息
xferlog_file=/var/log/vsftpd.log //将上传下载信息记录到/var/log/vsftpd.log中
xferlog_std_format=YES //日志使用标准xferlog格式
idle_session_timeout=600 //客户端超过600S没有动作就自动被服务器踢出
data_connection_timeout=120 //数据传输时超过120S没有动作被服务器踢出
chown_uploads=YES
chown_username=daemon //上传文件的属主
ftpd_banner=Welcome to d-1701.com FTP service. //FTP欢迎信息
anon_max_rate=80000 //这是匿名用户的下载速度为80KBytes/s
check_shell=NO //不检测SHELL[color=darkred][/color]
相关推荐
- 创建虚拟用户访问的目录。 ```bash # mkdir /home/ftpsite # useradd -d /home/ftpsite virtual # chown virtual:virtual /home/ftpsite # chmod 700 /home/ftpsite/ ``` 4. **配置vsftpd.conf**: - 在`...
VSFTPD 虚拟用户建立是指在 CentOS 服务器上安装和配置 VSFTPD 服务,以便实现虚拟用户的 FTP 访问。下面是相关的知识点: 1. 安装 VSFTPD 服务 在 CentOS 服务器上,需要安装 VSFTPD 服务相关组件,包括 VSFTPD ...
接下来,创建虚拟用户的配置文件,并为其分配相应的家目录。 1. **创建配置文件目录**: ```bash mkdir /etc/vsftpd/vuser_conf ``` 2. **创建虚拟用户配置文件**: ```bash cd /etc/vsftp/vuser_conf touch...
总之,安装并配置VSFTPD虚拟目录涉及多个步骤,包括安装软件、配置服务、创建虚拟用户、设置数据库和权限,以及验证服务的正确运行。这个过程需要对Linux系统管理、FTP服务原理以及PAM认证机制有一定的理解。一旦...
### CentOS 7.2 下 VSFTPD 安装与虚拟用户访问配置详解 #### 一、概述 在 CentOS 7.2 系统中安装与配置 VSFTPD 服务,并实现虚拟用户登录功能,可以有效地增强 FTP 服务的安全性和灵活性。虚拟用户登录允许管理员...
vsftpd 虚拟用户设置权限 vsftpd 虚拟用户设置权限是指在 vsftpd 服务器中,如何设置虚拟用户的权限,以满足不同的用户需求。本文将详细介绍如何设置虚拟用户的权限,包括普通用户、管理员用户和网站管理员用户的...
总的来说,VSFTPD服务配置涉及网络协议理解、服务器软件安装与配置、系统服务管理等多个IT领域的知识,对于系统管理员而言是一项重要的技能。在实际操作中,务必注意安全设置,避免不必要的风险。
本文将深入解析这一主题,涵盖Vsftpd的基本概念、安装过程、配置虚拟用户的具体步骤及安全策略。 ### 一、Vsftpd简介 Vsftpd是目前最流行的FTP守护进程之一,以其高效、稳定、安全而闻名。它支持多种功能,包括...
### 建立Vsftpd虚拟用户 #### 1. FTP登录方式概述 FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准协议。通过FTP,用户可以上传、下载以及管理远程服务器上的文件。根据登录方式的不同,FTP...
两种方式建立Vsftpd虚拟用户 Vsftpd虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。本文将介绍两种方式建立Vsftpd虚拟用户:本地数据文件方式和数据库...
除了基本配置外,vsftpd还提供了丰富的高级功能,如速率控制、多线程处理、虚拟用户认证等。例如,通过`user_config_dir`可以为不同用户提供个性化的配置选项,实现更灵活的速率限制或其他特殊需求。 #### 结论 ...
3. 创建用户配置目录`/etc/vsftpd/user_conf`,并将每个虚拟用户的配置文件放在这里。例如,为用户“user1”创建一个文件`/etc/vsftpd/user_conf/user1`,内容如下: ``` write_enable=YES local_root=/var/ftp/user...
### CentOS vsftpd的安装与配置详解 在深入解析如何在CentOS系统上安装与配置vsftpd(Very secure FTP daemon)之前,我们先来了解vsftpd的重要性及其功能特性。vsftpd是一款专为安全性设计的FTP服务软件,尤其在...
- 使用`useradd -d /var/ftp/testqiang`创建虚拟用户的家目录。 - 设置家目录权限`chmod 700 /var/ftp/test`。 6. **配置`vsftpd2.conf`以支持虚拟用户:** - 添加以下设置项: - `Listen=YES`:启用监听。 - ...
1. 创建虚拟用户文件:定义用户名和密码,如 `/etc/vsftpd/user_list`。 2. 转换数据库文件:使用 `htpasswd` 创建哈希密码,然后更新 `user_list` 文件。 3. 设置 pam 认证:编辑 `/etc/pam.d/vsftpd`,添加针对...
在本文中,我们将深入探讨如何在CentOS 5.5 x86_64环境下配置Vsftpd服务器的虚拟用户模式。虚拟用户模式允许管理员创建独立于系统用户的FTP账户,提供更高的安全性和管理便利性。 首先,我们需要安装Vsftpd和必要的...
本文介绍了CentOS5中vsftp虚拟用户配置的实例,包括安装db4-utils软件包、创建logins_list文件、生成vsftpd_login.db文件、配置PAM认证、创建vsftpd_user_conf目录、配置vsftpd.conf文件、重启vsftpd服务等步骤。...
管理员可以为每个虚拟用户创建独立的配置文件,这为用户提供了更为灵活的管理方式。Vsftpd的速率限制功能允许管理员对不同用户的传输速度进行限制,防止个别用户过度占用带宽。 总的来说,Vsftpd是一款功能丰富且...