3天时间搞的sloaris9下的自带ftp、wu的实现!!!!
发表于:2007-05-26来源:作者:点击数:
标签:
我可是一个超级菜鸟,有不对的地方欢迎大家批评指正,一个操作有不同的实现方法的也请大家贴出来。 另外请高手给我指点一下我还没有解决的问题。 1。solaris下自带的wu-ftp版本怎么看? 2。如果我要限制用户目录且我的ftp目录为/export/home/ftp那么,我在这
我可是一个超级菜鸟,有不对的地方欢迎大家批评指正,一个操作有不同的实现方法的也请大家贴出来。
另外请高手给我指点一下我还没有解决的问题。
1。solaris下自带的wu-ftp版本怎么看?
2。如果我要限制用户目录且我的ftp目录为/export/home/ftp那么,我在这个目录里要怎么实现,简明点,比如说我只要实现ls,mkdir,mkfile就ok.
3。我的sun工作在一个局网里,怎么向外提供服务。是不是要陆游一下,或者是于名一下。
我是一个以后长期作sun服务的菜鸟,希望和大家多交流。qq:24221085
1. 如果你在安装操作系统时已经安装了ftp server,那么inetd自动包含ftp的启动命令,否则先要设置/etc/serveices,有关ftp的行是: ftp 21/tcp
2. 设置/etc/inetd.conf,有关行是ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a,然后重起inetd,就可以提供ftp服务了。
wu-ftpd的命令选项:
-d 当FTP
服务器出错时,将错误入系统的syslog中;
-l 将每次FTP客户端进行连接的入系统的syslog中;
-t 设置FTP客户端连接几分钟无操作就切断连接;
-a 使wu-ftp使用/etc/ftpa
clearcase/" target="_blank" >ccess的设定;
-A 使wu-ftp不使用/etc/ftpaccess的设定;
-L 将FTP客户端连线后所执行的程序记录在系统的syslog中;
-I 将FTP客户端上载文件的日志记录在/usr/adm.xferlog文件中将FTP客户端上载文件的日志记录在/usr/adm.xferlog文件中
-o 将FTP客户端
下载文件的日志记录在/usr/adm/xferlog文件中。
文件/var/adm/messages中记录了用户访问ftp时的一些信息。
3. 设置ftp用户目录,缺省是/home/ftp,可以通过更改ftp用户的属性(修改/etc/passwd文件中的用户访问字段即可)来改变这个目录。
4. 编写/etc/ftpaccess文件对ftp服务加上限制
4.1 class anonclass anonymous *
关键字class(定义一个类)表示本行描述ftp用户的访问方式以及允许访问的范围;第二字段包括:realusers(系统中注册的用户),guestusers(guest用户),anonusers(anonymous用户),local(局域用
户);第三字段(定义访问方式)包括:real,guest,anonymous;第三字段定义允许访问的范围,可以是‘*’表示任意,也可以是一个ip。guest用户存在很大的
安全隐患,只有非local用户可以在
网络的
任何地方建立ftp连接。
4.2 restricted-uid * 限制用户只能在指定的目录执行允许的操作。
4.3 message /etc/ftpd/welcome.msg login
当ftp用户发生某个动作时进行第二个字段指定的操作,第三个字段指定操作的名称,可以是cwd=*(*表示登陆的目录)也可以是象login(登陆时)这样的指定。
4.4 compress yes all
tar yes realusers
允许压缩-解压模式,使用户可以通过服务器得到解压的版本。
4.5 chmod no guest,anonymous
delete no guest,anonymous
overwrite no guest,anonymous
rename no guest,anonymous
umask no anonymous
定义用户在ftp服务器上操作文件的权限。
4.6 log transfers anonymous,real inbound,outbound
log指定用户在ftp服务器上的操作记录,第二字段指定的操作可以是commands,security,transfers等,第三字段指定不同访问方式的用户,第四字段指定记录方向(inbound-上传,outbound-下载,
可以为空)。
4.7 passwd-check trivial warn
对匿名用户的口令进行校验,trival表示口令中至少有一个@符号,还可以选择的另外两个选项是none(不检查)和rfc822(必须是一个标准的email帐号);warn表示发现口令不合法时对用户产生警告
信息,但仍然允许登录,可以使用enforce选项表示一旦口令形式不合法就禁止登录。
4.8 upload class=anonusers * * no nodirs
定义上载方式,no/yes表示是否允许上传,nodirs/dirs表示是否允许自建上传目录。
格式:upload [根目录] [上载目录] [yes/no] [用户] [权限] [dirs/nodirs]
功能:对可以上载的目录进行更加详细的设置。
实例:upload /home/ftpd * no:表示在子目录/home/ftpd下不允许上载;
upload /home/ftpd /bin no:表示在子目录/home/ftpd/bin下不允许上载;
upload /home/ftpd /etc no:表示在子目录/home/ftpd/etc下不允许上载;
upload /home/ftpd /pub yes real 0644 dirs:允许用服务器上的合法用户在子目录/home/ftpd/pub目录下能上载权限为0644(也就是-rw-r--r--)的文件,而且在这个目录下可以新建子目录。
upload /home/ftpd /incoming yes real guest anonymous 0644 dirs:允许所有的用户在子目录/home/ftpd/incoming下能上载权限为0644的文件,而且在这个目录下可以新建子目录。
4.9 limit-time anonymous 30
limit anonusers 10 Wk0730-1800 /etc/ftpd/toomany.msg
limit-time限制用户的在线时间,limit限制在线的用户数。实例:limit remote 100 Any /etc/ftpd/toomany.msg 在任何时间内,remote类的访问用户达到100人时,将不再允许无法产生新的
连接,当第101位客户要连接时,连接将失败,并向用户出示文件/etc/ftpd/toomany.msg的内容。
4.10 loginfails 3
当用户登录到FTP服务器时,允许用户输错密码的次数。
4.11 private no
是否支持群组对文件的取用。
4.12 alias [目录别名] [目录名]
功能:给指定目录设置一个别名,在切换目录时就可以使用较短的目录别名。
实例:alias inc: /incoming:为子目录incoming设置一个别名inc:。 格式:deny [IP地址/域名] [说明文件]
功能:这个设置可以限制哪一些IP地址或域名的用户无法登入FTP服务器。
实例:deny *.com.tw /etc/ftpd/deny.msg:设置凡是域名是以“.com.tw”结束的域名,都禁止其访问。而将/etc/ftpd/deny.msg的内容显示给用户看。
4.13 格式:deny [IP地址/域名] [说明文件]
功能:这个设置可以限制哪一些IP地址或域名的用户无法登入FTP服务器。
实例:deny *.com.tw /etc/ftpd/deny.msg:设置凡是域名是以“.com.tw”结束的域名,都禁止其访问。
而将/etc/ftpd/deny.msg的内容显示给用户看。
4.14 path-filter anonymous /etc/ftpd/filename.msg ^[-A-Za-z0-9._]*$ ^[.-]
文件路径名过虑对anonymous用互来说文件名可以是任意大小写字母,点和下划线的组合,但是点和下划线不能在文件名的开头。如果过滤失败则显示/etc/ftpd/deny.msg
4.15 banner /etc/ftpd/banner.msg
显示机器当前配置情况cpu/hostid/EtherNet/内存
4.16 noretrieve relative class=anonusers /
禁止class指定的用户对某个目录文件的访问。第二个字段可以是absolute用以指定是相对还是绝对目录。例:noretrieve /etc/passwd 禁止任何用户对/etc/passwd的访问。
allow-retrieve relative class=anonusers /pub
对应noretrieve。
4.17 greeting brief readme README* cwd=*
readme README* login
readme README* cwd=*
任何README*将在用户登陆和转换目录时被列出。
5. /etc/init.d/ftpusers 列出禁止访问ftp的用户。设置/etc/ftphosts,禁止某些来自指定机器上的登录,如果你需要拒绝来自某些主机的登录,一种方法就是在/etc/ftpaccess中设置deny命令,另
一种更加简单的方法就是在/etc/ftphosts中写入你要禁止的主机的IP地址或域名。
6. 匿名用户的建立:在passwd中新增一个名为ftp的用户,最好再建立一个单独的名为ftp的用户组,其中只有一个用户ftp。参考4.1设置允许匿名访问的范围。
7. 使新的配置生效。一般的,对/etc/ftpaccess的配置是直接作用于设置后的下一次FTP服务进程,而其它的则要对inetd进程重新启动。命令#ps -eaf列出进程的详细信息,#kill -1 inetd-pid命令
使inetd重读配置文件而不用重起。#kill -9 inetd-pid命令杀死inetd进程,关闭ftp服务。# /usr/sbin/inetd -s命令启动ftp服务。
kill命令用来向系统中的进程发送信号,这里用到的-1,-9分别代表SIGHUP(挂起),SIGKILL(杀死)。
8. 版本wu-ftpd,操作系统solaris9.
9. /usr/sbin下的关于ftp的可执行文件:tpconfig ftpcount ftprestart ftpshut ftpwho
/var/run/ftp.pids
9. 在ftp目录下一般会建立几个子目录。
/home/ftp/bin 存放一些供FTP用户使用的可执行文件
/home/ftp/etc 存放一些供FTP用户使用的配置文件
/home/ftp/pub 存放供下载的信息
/home/ftp/incoming 存放供上载信息的空间
10. 管理wu-ftp的一些命令
10.1 连接数统计命令ftpcount可以统计出当前连接到FTP服务器上的用户数目,并且同时列出上限。命令输出如下所示:
Service class local 0 Users(20maximum)
Service class remote 5 Users(100maximum)
10.2 在线用户查看命令ftpwho可以列出当前连接的用户的详细情况。
10.3 FTP关闭文件生成命令ftpshut可以生成一个在/etc/ftpaccess中设置的shut.msg文件,用于关机设定。ftpshut命令的格式为:
Ftpshut <-l min> <-d min> time <说明>
-l 这个参数设定在关闭FTP服务器功能前多少分钟时停止用户的连接;
-d 这个参数设定在关闭FTP服务器功能前多少分钟时切断用户连接;
time 指定关闭FTP服务器的时间。例如6:20分则写为0620;
11.ftp内部命令
! 进入默认的shell
$ 运行一个预先定义的宏
account 向远程服务器发送帐户信息
append 把服务器输出添加到一个文件中
ascii 设置ascii传输模式。ASCII模式是默认的传输模式,用来传输文本文件。
bell 当指定的命令完成后发出蜂鸣。循环执行,若在bell状态下再运行bell即停止bell。
binary 设置二进制传输模式。一般用来传输二进制文件,象.zip文件、.gif文件和.Z文件。
bye 终止FTP对话,从客户机断开。
case 转换mget大写/小写映射。
cd 改变远程工作目录。改变到指定的目录中。如果目录名不是当前目录的子目录就要输入路径。
cdup 将远程工作目录转到父目录。
close 终止FTP对话,但是不从客户机退出。
delete 删除指定的远程文件。
de
bug 转换/设置服务器的调试模式。
dir 列出远程目录下的内容。
disconnect 终止当前得FTP对话。
form 设置文件传输格式为二进制或ASCII
get 将文件从服务器下载到本地客户机。
glob 转换本地文件名的元字符扩展
hash 转换为每个传输的缓冲打印“#”。每1024字节传输后,在屏幕上显示一个“#”字符。这使FTP传送过程可以交互式地追踪。
help给除FTP客户机中命令的本地帮助信息。
lcd 改变本地工作目录到指定的目录中。
ls 列出当前远程远程目录中的内容。
macdef 交互式地定义一个宏。
mdelete 指定删除多个文件(如:"mdelete *.txt")。
mdir 一次列出多个远程目录的内容。
mget 下载多个文件,文件名用通配符“*”指定。
mkdir 在远程机器中建立一个相对于当前目录的子目录。
mls 一次列出多个远程目录的内容。
mode 将文件传输模式指定为ASCII或二进制。
mput 把当地文件系统的多个文件上传到远程服务器。
nmap 为默认文件名映射设定模板。
ntrans 为默认文件名映射设定转换表。
open 连接到一台远程服务器。
prompt 强迫用多个命令来进行交互式提示。
proxy 在替代连接中发出命令。
sendport 转换每次数据连接的端口。
put 每次上传一个文件。
pwd 显示出当前远程机器上的工作目录。
quit 终止FTP对话并退出。
quote 发出任意的FTP命令。
recv 接收文件。
remotehelp 从远程服务器上得到帮助。
rename 为文件该名。
reset 清楚命令回应队列。
rmdir 删除远程机器中的目录。
runique 转换本地文件“store unique”标志。
send 上传一个文件。
status 显示当前状态。
struct 设置文件传输结构。
sunique 转换远程机器中的“store unique”标志。
tenex 设置tenex文件传输形式。
trace 转换数据包追踪。
type 设置文件传输类型
user 发送新用户信息。
verbose 转换详细模式。
? 显示本地帮助信息。
110 重新开始标记回复。
120 服务在NNN分钟后就绪。
125 数据连接已经打开;开始传输。
150 文件状态错误。
200 命令完成。
202 命令没有被执行,站点忙。
211 系统状态,或系统帮助回应。
212 目录状态。
213 文件状态。
214 帮助信息。
215 名字系统类型。
220 新用户服务就绪。
221 服务关闭控制连接。
225 数据连接打开;没有传输进行。
226 关闭数据连接。
227 进入被动模式(h1,h2,h3,h4,p1,p2)。
230 用户已登陆,继续。
250 请求的文件行为成功完成。
257 “PATHNAME”重复。
331 用户名无误,需要密码。
332 需要登陆的帐户。
350 请求的文件行为需要更多的信息。
421 服务不可用。
425 不能打开数据连接。
426 连接关闭;传输失败。
450 请求的文件行为没有被接受。
451 请求的文件行为失败。
452 请求的行为没有被接受。
500 语法错误未知的命令。
501 参数或变量语法错误。
502 命令没有被执行。
503 命令次序错误。
504 命令没有按参数执行。
530 登陆失败。
532 需要帐户来存储文件。
550 请求的行为没有被接受。
551 请求行为失败;页面类型未知。
552 请求的文件行为失败。
553 请求的行为没有被接受。
fwizard 回复于:2004-03-11 20:50:25
|
怎么没有人回应一下。郁闷ing.
|
nimysun 回复于:2004-03-11 21:14:38
|
放心吧,兄弟,这帖早晚是精华。
|
henryqu 回复于:2004-03-11 22:40:32
|
支持
|
C.Arthur 回复于:2004-03-11 22:45:38
|
很好啊,有时间丰富一下,非常感谢!
|
fyx2008 回复于:2004-03-12 09:56:49
|
支持
|
fansogoo 回复于:2004-03-12 17:35:53
|
ding!写的不错
|
fwizard 回复于:2004-03-12 20:52:51
|
4.15 为防止误解,给出4.15 实例说名。
在用户已经提交连接请求但是没有用用户名和密码登陆时给出提示信息。
# ftp sun
Connected to sun.
220-test-banner.msg★●■
220-
220 sun FTP server ready.
Name (sun:root): # ftp sun
220-test-banner.msg★●■这一行内容是我在/etc/ftpd/banner.msg中保存的内容。可以自行修改或者是自建。
其他的msg文件类似,一试便知。
Connected to sun.
|
nopalh 回复于:2004-03-12 21:00:09
|
没收~! :mrgreen:
|
子小水獸 回复于:2004-03-13 15:09:35
|
唉,自己學的太少,希望有自己的服務器呀!
好東西,但是我沒有地方試
|
fwizard 回复于:2004-03-16 21:48:32
|
自我回答一问:
版本查看solaris9自带wu-ftp:
#ftp hostname
ftp>quote stat
211-sun FTP server status:
Version wu-2.6.2+Sun
Connected to sun (192.168.0.3)
Logged in as myname
TYPE: Image; STRUcture: File; transfer MODE: Stream
|
原文转自:http://www.ltesting.net
|