当前位置:首页 » 文件传输 » linuxftptar
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

linuxftptar

发布时间: 2022-09-24 12:27:58

⑴ 在linux上用ftp上传(put) 文件,文件名被创建了,但是文件没有写入

首先,不建议你上传整个目录,首先是上传速度会慢,如果文件数量过多,还有可能造成文件损坏。建议是先tar打包后直接上传这个文件,然后再解压。
如果你非要上传文件夹,命令如下(前提是已经连接sftp)
put
-r
dir/.
在一个已连接的sftp中执行这个命令,dir/后面必须有.否则会报错
注意:这个命令是上传
dir
目录中的文件和子目录,并不上传
dir
目录本身

⑵ linux中怎么用ftp做自动备份

#!/bin/bash

#设置日志文件,前提建好了/backup/log目录

LogFile=/backup/log/`date +"%Y-%m"`.log

#备份源目录

SourceDir=/cvs

#备份目标

BakDir=/backup

#保存20天过期自动删除

RetainDay=20

#备份的内容可以写进project.lst,如cvs目录下有a,b,c三个目录,project.lst填写多少就备份多少,下面是备份的

#具体脚本,其核心是tar打包,并把重要的内容记录到日志文件里

⑶ linux ftp设置

安装vsftpd ftp

1.下载源代码-- vsftpd-2.2.0.tar.gz (可以登录http://vsftpd.beasts.org网站下载最新版本软件包)

2.编译源代码 (可参考帮助文件INSTALL,或者参考README文件)

#tar xvzf vsftpd-2.2.0.tar.gz (解压缩包)

#cd vsftpd-2.2.0 (进入解包后的vsftpd-2.2.0目录)

#make (编译生成二进制数据)

#make install(进行安装,把make生成的二进制文件拷贝到各目录。如:vsftpd 拷到 /usr/local/sbin/vsftpd;或者是 /usr/sbin/vsftpd; )

ps:#which vsftpd (查看vsftpd文件安装到哪个目录)

3.安装配置文件

#cp vsftpd.conf /etc/ (vsftpd.conf是配置文件)

#cp RedHat/vsftpd.pam /etc/pam.d/ftp(*.pam文件是客户认证模块,对用户进行身份识别,ftp是vsftp下默认的,不能改为其它文件名)

#mkdir /var/ftp (建立ftp服务器的home目录)

#chown root.root /var/ftp (将ftp的拥有者和组均改为root)

#chmod og-w /var/ftp (将组和other的写权限去掉)

ps:此时的当前目录还是解压缩包后进入的vsftp-2.2.0目录。

4.编辑配置文件 /etc/vsftpd.conf

#vi /etc/vsftpd.conf

在vsftpd.conf文件中修改或追加 listen=YES (让服务器自己监听),保存退出。

5.启动服务器

#/usr/local/sbin/vsftpd & (手动启动服务器,并让其工作在后台)

6.测试服务器的运行

#netstat -tnl(检查一下,看机器有没有开端口是21的服务器,结果如下)

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:32768 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:32785 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:5335 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 :::22 :::* LISTEN

[root@localhost vsftpd-2.2.0]# ftp localhost
Connected to localhost.localdomain.
220 localhost.localdomain FTP server (Version 5.60) ready.
334 Using authentication type GSSAPI; ADAT must follow
GSSAPI accepted as authentication type
GSSAPI error major: Miscellaneous failure
GSSAPI error minor: No credentials cache found
GSSAPI error: initializing context
GSSAPI authentication failed
334 Using authentication type KERBEROS_V4; ADAT must follow
KERBEROS_V4 accepted as authentication type
Kerberos V4 krb_mk_req failed: You have no tickets cached
Name (localhost:root): anonymous ( 匿名身份登录)
331 Guest login ok, send ident as password.
Password: (密码为空)
230 Guest login ok, access restrictions apply. (登录成功)
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd (显示当前目录)
257 "/" is current directory. (当前目录为ftp服务器的根目录,是chroot后的根目录环境。该目录实际是/var/ftp)
ftp> ls(内容为空,匿名用户只能看到自己的文件或公开命名文件,/var/ftp目录下的root.root所有文件都看不到)
227 Entering Passive Mode (127,0,0,1,128,69)
150 Opening ASCII mode data connection for /bin/ls.
226 Transfer complete.
ftp> quit (退出,到此一个服务器就配置成功了)
421 Timeout (900 seconds): closing control connection.
[root@localhost vsftpd-2.2.0]#

7.修改服务器自动运行脚本

[root@localhost vsftpd-2.2.0]# vi /etc/rc.local (让电脑开机自动启动vsftp服务器)

进入rc.local 脚本文件

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

/usr/local/sbin/vsftpd & (该行是我们自己追加的)

⑷ linux下 用tar备份

很可能是权限问题。
不过,最好不要通过把这个文件先放到网站的目录,然后下载(我理解你说的是download )的途径。通过网页下载的话,你能下载,其他人也都能下载了。
远程管理网站时,应该用ssh 或者 ftp等,更方便,更安全。
希望对你有帮助。

⑸ linux 异地备份(ftp)

50 15 * * * ftp -i 10.11.68.157
ftp可能有问题,一般写ftp的绝对目录

还有你怎么不把,ftp和.netrc合并,做一个文件/home/oracle/ftpback,如:
#!/bin/sh
/usr/bin/ftp machine 10.11.68.157 -u oracle -p oracle
macdef init
bin
lcd /tmp
cd /tmp
mput file.tar
bye


crontab -e
增加内容如下:
50 15 * * * ./home/oracle/ftpbak

⑹ 如何在linux上配置ftp 及创建 ftp用户

做一个虚拟账户就解决了:
步骤如下:
1、建立虚拟用户口令库文件
口令库文件中奇数行设置用户名,偶数行设置口令
# vi /etc/vsftpd/logins.txt 注意,一下是4行
upload 这个是帐户名
upload 这个是密码
download
download
2、生成vsftpd的认证文件
# db_load -T -t hash -f logins.txt /etc/vsftpd/vsftpd_login.db
设置认证文件只对用户可读可写
# chmod 600 /etc/vsftpd/vsftpd_login.db
3、建立虚拟用户所需的PAM配置文件
# vi /etc/pam.d/vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
注意:以上2行中最后的2个文件名vsftpd_login和第2个步骤中的数据库名字必须一致!
4、建立虚拟用户所要访问的目录并设置相应权限
# mkdir /home/ftpsite
# useradd -d /home/ftpsite virtual(用户名)
# chown virtual:virtual /home/ftpsite
# chmod 700 /home/ftpsite/
5、设置vsftpd.conf配置文件
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
6、设置主配置文件
在vsftpd.conf文件中添加用户配置文件目录设置
user_config_dir=/etc/vsftpd_user_conf
# service vsftpd restart
7、建立用户配置文件目录
使用mkdir命令建立用户配置文件目录
# mkdir /etc/vsftpd_user_conf
为虚拟用户建立单独的配置文件,用户配置文件名称与用户名相同
touch /etc/vsftpd_user_conf/upload
touch /etc/vsftpd_user_conf/download
8、每个FTP虚拟用户都可以独立设置其权限
vi /etc/vsftpd_user_conf/upload
anon_world_readable_only=NO 可读可下载
anon_upload_enable=YES 可上传
anon_mkdir_write_enable=YES 可创建和删除文件夹
anon_other_write_enable=YES 可文件改名和删除文件
local_root=/home/ftpsite/upload 指定upload的宿主目录
download_enable=NO 禁止下载
(注意:请先到/home/ftpsite下面去创建upload文件夹)

⑺ linux只安装vsftpd就能使用ftp命令

linux不需要安装vxftpd也可以使用ftp命令(FTP客户端)。

在大多发行版都有打包,请到各大发行版的ftp列表中得到,或者在发行版的安装盘中也能得到。lftp是一个命令行式的ftp客户端。对中文支持较好。如果您在linux 的text模式下,要安装zhcon或者cce之类的。

安装:

1、RPM包管理的系统,请到

http://freshrpms.net
http;//rpmfind.net 上查找lftp的最新包,可以用

#rpm -ivh name.rpm
#rpm -Uvh name.rpm 这是升级之用

2、源码包安装举例:lftp-3.2.0.tar.bz2

#tar zxvf lftp-3.2.0.tar.bz2
#cd lftp-3.2.0
#./configure
#make
#make install

3.调用方法:

lftp ftp://用户名:密码@地址

比如:
[beinan@S01~]$lftp ftp://[email protected]
口令:
lftp [email protected]:~>
lftp [email protected]:~>ls

-rw-r--r-- 1 1000 100 44387 May 18 10:04 xvmain.jpg
-rw-r--r-- 1 1000 100 202643 May 18 09:45 xxx.jpeg
-rw-r--r-- 1 1000 100 0 May 20 10:01 鲨鱼的故事.txt

二、使用方法:

0.简单的用法:lcd 切换本地目录,比如 lcd /opt
get 取回一个文件,put 向ftp服务器传文件;

1、获得帮助:

代码:

lftp [email protected]:~> help
!<shell-command>(commands)
alias [<name> [<value>]]anon
bookmark [SUBCMD] cache [SUBCMD]
cat [-b] <files>cd <rdir>
chmod [OPTS] mode file... close [-a]
[re]cls [opts] [path/][pattern] debug [<level>|off] [-o <file>]
[options] <dirs> exit [<code>|bg]
get [OPTS] <rfile> [-o <lfile>] glob [OPTS] <cmd> <args>
help [<cmd>]history -w file|-r file|-c|-l [cnt]
jobs [-v] kill all|<job_no>
lcd <ldir>lftp [OPTS] <site>
ls [<args>] mget [OPTS] <files>
mirror [OPTS] [remote [local]]mkdir [-p] <dirs>
mole name [args]more <files>
mput [OPTS] <files> mrm <files>
mv <file1> <file2>[re]nlist [<args>]
open [OPTS] <site>pget [OPTS] <rfile> [-o <lfile>]
put [OPTS] <lfile> [-o <rfile>] pwd [-p]
queue [OPTS] [<cmd>]quote <cmd>
repeat [delay] [command]rm [-r] [-f] <files>
rmdir [-f] <dirs> scache [<session_no>]
set [OPT] [<var> [<val>]] site <site_cmd>
source <file> user <user|URL> [<pass>]
version wait [<jobno>]
zcat <files>zmore <files>

如果针对lftp的每个命令的帮助,应该是:

lftp [email protected]:~> help 命令

比如

代码:
lftp [email protected]:~> help get

用法: get [OPTS] <rfile> [-o <lfile>]

Retrieve remote file <rfile> and store it to local file <lfile>.
-o <lfile> specifies local file name (default - basename of rfile)
-ccontinue, reget
-Edelete remote files after successful transfer
-ause ascii mode (binary is the default)
-O <base> specifies base directory or URL where files should be placed

简介:gftp基于gtk的ftp客户端,大家用的也比较多吧,支持中文目录。如果您的gftp不能支持中文,请升级版本。

# Written in C and has a text interface and a GTK+ 1.2/2.x interface
# Supports the FTP, FTPS (control connection only), HTTP, HTTPS, SSH and FSP protocols
# FTP and HTTP proxy server support
# Supports FXP file transfers (transferring files between 2 remote servers via FTP)
# Supports UNIX, EPLF, Novell, MacOS, VMS, MVS and NT (DOS) style directory listings
# Bookmarks menu to allow you to quickly connect to remote sites

下载安装:

在各大发行版中,都有gftp的打包,可以用各发行版自带的工具来安装。我只说源码包安装:

源码包安装,通用于所有发行版,举例说明:gftp-2.0.18.tar.bz2

代码:
[root@S01ftp]#ls -lh

总用量 1.4M

-rw-r--r--1 root root 1.4M 2005-05-21 09:18 gftp-2.0.18.tar.bz2
[root@S01ftp]#tar jxvf gftp-2.0.18.tar.bz2
[[email protected]]#./configure
[[email protected]]#make
[[email protected]]#make install

注:因为gftp依赖gtk,如果不能make过去,您应该指定PKG_CONFIG_PATH

[[email protected]]# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

调用:

代码:

[[email protected]]#gftp

⑻ Linux的FTP服务器无法上传下载指定位置未挂载

ftp的根目录不存在,所以显示指定位置未
挂载
anno_upload=yes这个不要开,这个是匿名
FTP服务器
用的,一般用不到。

⑼ 如何搭建FTP服务器在linux 中《一》

代码:

# cd /home/xuchen
# tar xzvf vsftpd-2.0.3.tar.gz //解压缩程序
# cd vsftpd-2.0.3

三种方式的实现
1、匿名用户形式实现
# vi builddefs.h \\编辑builddefs.h 文件,文件内容如下:

#ifndef VSF_BUILDDEFS_H

#define VSF_BUILDDEFS_H
#undef VSF_BUILD_TCPWRAPPERS
#define VSF_BUILD_PAM
#undef VSF_BUILD_SSL

#endif /* VSF_BUILDDEFS_H */
将以上undef的都改为define,支持tcp_wrappers,支持PAM认证方式,支持SSL

# make //直接在vsftpd-2.0.3里用make编译
# ls -l vsftpd
-rwxr-xr-x 1 root root 86088 Jun 6 12:29 vsftpd //可执行程序已被编译成功

创建必要的帐号,目录:
# useradd nobody //可能你的系统已经存在此帐号,那就不用建立
# mkdir /usr/share/empty //可能你的系统已经存在此目录,那就不用建立
# mkdir /var/ftp //可能你的系统已经存在此目录,那就不用建立
# useradd -d /var/ftp ftp //可能你的系统已经存在此帐号,那就不用建立
# chown root:root /var/ftp
# chmod og-w /var/ftp
请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,比如以上的nobody和ftp我就设置成/sbin/nologin

安装vsftp配置文件,可执行程序,man等:
# install -m 755 vsftpd /usr/local/sbin/vsftpd-ano
# install -m 644 vsftpd.8 /usr/share/man/man8
# install -m 644 vsftpd.conf.5 /usr/share/man/man5
# install -m 644 vsftpd.conf /etc/vsftpd-ano.conf
这样就安装完成了,那么我们开始进行简单的配置

# vi /etc/vsftpd-ano.conf ,将如下三行加入文件
listen=YES
listen_port=21
tcp_wrappers=YES
anon_root=/var/ftp //设置匿名用户本地目录,和ftp用户目录必须相同
listen=YES的意思是使用standalone启动vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推荐使用standalone方式)
# /usr/local/sbin/vsftpd-ano /etc/vsftpd-ano.conf & //以后台方式启动vsftpd
注意:每行的值都不要有空格,否则启动时会出现错误,举个例子,假如我在listen=YES后多了个空格,那我启动时就出现如下错误:
500 OOPS: bad bool value in config file for: listen

测试搭建好的匿名用户方式
# ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 2.0.3)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (127.0.0.1:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"
ftp> quit
221 Goodbye.
#
OK,已经完成了,very nice.

高级配置
细心的朋友可能已经看出来我们只在默认配置文件增加了四行,就实现了FTP连接(也证明了vsftpd的易用性),那么让我们传个文件吧,呀!!传输失败了(见图1)
为什么呢?因为 vsftpd 是为了安全需要,/var/ftp目录不能把所有的权限打开,所以我们这时要建一个目录pub,当然也还是需要继续修改配置文件的。
# mkdir /var/ftp/pub
# chmod -R 777 /var/ftp/pub

为了测试方便,我们先建立一个名为kill-ano的脚本,是为了杀掉FTP程序的
#!/bin/bash
$1}'`   a=`/bin/ps -A | grep vsftpd-ano | awk '{print
$a   kill -9

那么现在大家看看我的匿名服务器配置文件吧
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

现在再测试,先kill掉再启动FTP程序
# ./kill-ano
# /usr/local/sbin/vsftpd-ano /etc/vsftpd-ano.conf &
上传一个文件测试一下,怎么样?OK了吧,下载刚上传的那个文件,恩?不行,提示
550 Failed to open file.
传输已失败!
传输队列已完成
1 个文件传输失败

没有关系,你记得咱们设置了anon_umask=077了吗?所以你下载不了,如果你到服务器上touch 一个文件(644),测试一下,是可以被下载下来的,好了,匿名服务器就说到这里了。

2、本地用户形式实现
# cd /home/xuchen/vsftpd-2.0.3 //进入vsftpd-2.0.3的源代码目录
# make clean //清除编译环境
# vi builddefs.h \\继续编辑builddefs.h 文件,文件内容如下:
#ifndef VSF_BUILDDEFS_H

#define VSF_BUILDDEFS_H
#define VSF_BUILD_TCPWRAPPERS
#define VSF_BUILD_PAM
#define VSF_BUILD_SSL

#endif /* VSF_BUILDDEFS_H */
将以上define VSF_BUILD_PAM行的define改为undef,支持tcp_wrappers,不支持PAM认证方式,支持SSL,记住啊,如果支持了PAM认证方式,你本地用户是不能登陆的。

# make //直接在vsftpd-2.0.3里用make编译
# ls -l vsftpd
-rwxr-xr-x 1 root root 84712 Jun 6 18:56 vsftpd //可执行程序已被编译成功

创建必要的帐号,目录:
# useradd nobody //可能你的系统已经存在此帐号,那就不用建立
# mkdir /usr/share/empty //可能你的系统已经存在此目录,那就不用建立
# mkdir /var/ftp //可能你的系统已经存在此目录,那就不用建立
# useradd -d /var/ftp ftp //可能你的系统已经存在此帐号,那就不用建立
# chown root:root /var/ftp
# chmod og-w /var/ftp
请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,比如以上的nobody和ftp我就设置成/sbin/nologin

安装vsftp配置文件,可执行程序,man等:
# install -m 755 vsftpd /usr/local/sbin/vsftpd-loc
# install -m 644 vsftpd.8 /usr/share/man/man8
# install -m 644 vsftpd.conf.5 /usr/share/man/man5
# install -m 644 vsftpd.conf /etc/vsftpd-loc.conf
这样就安装完成了,那么我们开始进行简单的配置

# vi /etc/vsftpd-loc.conf ,将如下三行加入文件
listen=YES
listen_port=21
tcp_wrappers=YES //支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny)
listen=YES的意思是使用standalone启动vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推荐使用standalone方式),注意事项请参看匿名用户的配置。
anonymous_enable=NO
local_enable=YES //这两项配置说不允许匿名用户登陆,允许本地用户登陆
# /usr/local/sbin/vsftpd-loc /etc/vsftpd-loc.conf & //以后台方式启动vsftpd

测试搭建好的匿名用户方式,先测试root用户吧 :)
# ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 2.0.3)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (127.0.0.1:root): root
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/root"
ftp> quit
221 Goodbye.
我们看到root用户可以登陆到ftp,他的登陆目录就是自己的主目录。
再测试一个系统用户,那我们先建立一个用户名叫xuchen的
# useradd xuchen
# passwd xuchen
Changing password for user xuchen.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
建立好了,让我们开始测试吧!!
# ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 2.0.3)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (127.0.0.1:root): xuchen
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/home/xuchen"
ftp> quit
221 Goodbye.
我们看到xuchen用户可以登陆到ftp,他的登陆目录也是自己的主目录。哈哈,又完成了!
高级配置
细心的朋友可能已经看出来如果我们不支持PAM认证方式,那么本地用户就可以登陆,而默认编译的vsftpd支持PAM认证方式,所以是不支持本地用户登陆的。恩,从这点说,这也是vsftp安全的一个表现----禁止本地用户登陆。
我们登陆后进行测试,传一个文件上去,得,失败了,那下载个文件下来吧,恩,这是成功的(见图2),而且我们发现我们可以进入到系统根目录(见图3),这样很危险。

那么改配置文件吧,为了测试方便,我们先建立一个名为kill-loc的脚本,也是为了杀掉FTP程序的
#!/bin/bash
$1}'`   a=`/bin/ps -A | grep vsftpd-loc | awk '{print
$a   kill -9

现在提供我的本地用户验证服务器配置文件吧(在匿名里写过的注释我就不在这里写了)
listen=YES
listen_port=21
tcp_wrappers=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022 //本地用户文件上传后的权限是-rw-r-r
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
connect_from_port_20=YES
chroot_local_user=YES //限制用户在自己的主目录
#local_root=/ftp //你可以指定所有本地用户登陆后的目录,如果不设置此项,用户都会登陆于自己的主目录,就跟咱们前面测试的结果是一样的
local_max_rate=500000 //本地用户的下载速度为500KBytes/s
idle_session_timeout=600
data_connection_timeout=120
nopriv_user= nobody //设定服务执行者为nobody,vsftpd推荐使用一个权限很低的用户,最好是没有家目录(/dev/null),没有登陆shell(/sbin/nologin),系统会更安全
ftpd_banner=Welcome to d-1701.com FTP service.
check_shell=NO

userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.denyuser
以上三条设定不允许登陆的用户,用户列表存放在/etc/vsftpd.denyuser中,一行一个帐号如果我把xuchen这个用户加到vsftpd.denyuser里,那么登陆时会出现如下错误:
# ftp 127.0.0.1
Connected to 127.0.0.1.
220 Welcome to d-1701.com FTP service.
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (127.0.0.1:root): xuchen
530 Permission denied.
Login failed.
呵呵,有意思吧,自己测试吧,本地用户登陆方式就介绍到这里吧!

3、虚拟用户形式实现(db及mysql形式)
# cd /home/xuchen/vsftpd-2.0.3 //进入vsftpd-2.0.3的源代码目录
# make clean //清除编译环境
# vi builddefs.h \\继续编辑builddefs.h 文件,文件内容如下:
#ifndef VSF_BUILDDEFS_H

#define VSF_BUILDDEFS_H
#define VSF_BUILD_TCPWRAPPERS
#undef VSF_BUILD_PAM
#define VSF_BUILD_SSL

#endif /* VSF_BUILDDEFS_H */
将以上define VSF_BUILD_PAM行的undef改为define,支持tcp_wrappers,支持PAM认证方式,支持SSL,和匿名用户形式是一样的。

# make //直接在vsftpd-2.0.3里用make编译
# ls -l vsftpd
-rwxr-xr-x 1 root root 86088 Jun 6 22:26 vsftpd //可执行程序已被编译成功

创建必要的帐号,目录:
# useradd nobody //可能你的系统已经存在此帐号,那就不用建立
# mkdir /usr/share/empty //可能你的系统已经存在此目录,那就不用建立
# mkdir /var/ftp //可能你的系统已经存在此目录,那就不用建立
# useradd -d /var/ftp ftp //可能你的系统已经存在此帐号,那就不用建立
# chown root:root /var/ftp
# chmod og-w /var/ftp
请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,比如以上的nobody和ftp我就设置成/sbin/nologin

⑽ 在RedHat Linux上搭建ftp服务器的步骤

1、下载源码到服务器,其下载地址是 ftp://vsftpd.beasts.org/users/cevans/,当前的版本是vsftpd-2.0.6.tar.gz 。强烈建议使用源码安装,即可摆脱类似rpm包依赖的困惑,又可以实现在不同unix/linux下自如的工作。2、解压安装:tar zxvf vsftpd-2.0.5.tar.gz ; make; make install3、添加ftp的用户,如果用户数目不多,简单些,用系统用户吧。Useradd –d /home/sery sery ;passwd ******.4、拷贝配置文件,这里有2个。Cp vsftpd.conf /etc/vsftpd.conf ;cp Redhat/vsftpd.pam /etc/pam.d/ftp .不拷贝vsftpd.pam这个文件,将导致ftp用户不能登陆的问题。这个文件在debian下也是可以的。5、修改配置文件/etc/vsftpd.conf。这个配置文件是vsftpd的关键所在,修改下列值,以实现不同的功能:(1)修改的部分:把 local_enable=yes write_enable=yes和local_umask=022前面的注释取消。(2)增加部分:listen=YES(ftp作为独立的守护进程)chroot_local_user=yes(用户被定位在自己的主目录里,用cd / 并不能切换到根目录)cmds_allowed=ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,RMD,RNFR,RNTO,SITE,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST(只许上传文件和目录,但不许删除。注意:这些必须一行写完)6、启动ftp服务。Vsftpd&我安装完成后,却无法运行:报错如下:500 00PS: could not bind listening IPv4 socket端口有冲突。查看下:#netstat -utl |grep 21 是不是被占用还真有耶。因为是redhat9所以想到了xinetd因为xinetd已经启动了vsftpd,而vsftpd设置成了stardalone模式,所以,先停止xinetd服务, service xinetd stop ,然后:/usr/local/sbin/vsftpd &OK启动正常。改端口:在vsftpd.conf最后加:listen_port=2121取消anonymous 登入 anonymous_enable=NO老大原文提到,让用户不能切换到别的目录,需要添加一个文件:vim /etc/vsftpd/chroot_list 加入你所要限制的用户vsftpd.conf也去掉相应的注释:chroot_list_file=/etc/vsftpd/chroot_list