FTP issue

发表于:2007-05-26来源:作者:点击数: 标签:
Solaris9里面的FTP跟Solaris8还是有一定差别的 原来放在/etc/default/目录里面,改成了在/etc/ftpd/目录下了。 %ls-l total14 -rw-r--r--1rootsys1518May2800:46ftpaccess -rw-r--r--1rootsys551May2800:46ftpconversions -rw-r--r--1rootsys104May2800:46ft

Solaris 9 里面的FTP跟Solaris 8 还是有一定差别的
原来放在/etc/default/目录里面,改成了在 /etc/ftpd/目录下了。

% ls -l
total 14
-rw-r--r--   1 root     sys         1518 May 28 00:46 ftpaclearcase/" target="_blank" >ccess
-rw-r--r--   1 root     sys          551 May 28 00:46 ftpconversions
-rw-r--r--   1 root     sys          104 May 28 00:46 ftpgroups
-rw-r--r--   1 root     sys          108 May 28 00:46 ftphosts
-rw-r--r--   1 root     sys          114 May 28 00:46 ftpservers
-rw-r--r--   1 root     sys          185 May 28 00:46 ftpusers

FTP 默认使用端口21,设置存在于文件[color=red:d10b72ef27]/etc/services[/color:d10b72ef27]

% grep ftp services
[color=blue:d10b72ef27]ftp-data        20/tcp
ftp             21/tcp[/color:d10b72ef27]
tftp            69/udp



进程存在于 [color=red:d10b72ef27]/etc/.netd.conf[/color:d10b72ef27]

% grep ftp inetd.conf
#       ftp telnet shell login exec tftp finger printer
[color=blue:d10b72ef27]ftp     stream  tcp6    nowait  root    /usr/sbin/in.ftpd       in.ftpd -a[/color:d10b72ef27]
# TFTPD - tftp server (primarily used for booting)
#tftp   dgram   udp6    wait    root    /usr/sbin/in.tftpd      in.tftpd -s /tftpboot



如果想要修改ftp的端口号,可以直接在/etc/inetd.conf修改
(不用额外修改/etc/services)

格式如下:

# vi /etc/inetd.conf
# FTPD - FTP server daemon
ftp  stream tcp6 nowait root /usr/sbin/ftpd.sh  in.ftpd [color=red:d10b72ef27]-P 221 [/color:d10b72ef27]



当然需要重新启动inetd

# ps -ef|grep inetd
    root   219     1   0 20:33:53 ?           0:01 /usr/sbin/inetd -s
    root   597   596   1 23:28:44 pts/5       0:00 grep inetd
# kill -HUP 219     <------- 219 PID of inetd

 iricyan 回复于:2004-06-30 23:34:28
FTP Session的时间设置:

# vi /etc/ftpd/ftpaccess

limit-time anonymous 30
limit-time guest 60 

单位是分钟。


# ftp ftpserver
Connected to ftpserver.
220 ftpserver FTP server ready.
Name (ftpserver:user1): anonymous
331 Guest login ok, send your complete e-mail address as password.
Password:
230 Guest login ok, access restrictions apply.
ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for file list.
bin
dev
etc
pub
usr
226 Transfer complete.
25 bytes received in 0.0029 seconds (8.50 Kbytes/s)
ftp>

Wait 30 minutes

ftp> ls
421 Timeout (900 seconds): closing control connection.
ftp>



对real用户不起作用。

 procrus 回复于:2004-06-30 23:38:38
好东西!我顶~~~~~

 iricyan 回复于:2004-06-30 23:44:47
ftp mask设置

ftp> site umask 000

200 UMASK set to 000 (was 022)

ftp> mkdir testdir1

257 "/tmp/testdir1" new directory created.

ftp> dir 

drwxrwxrwx 2 root other 117 Jul 25 12:05 testdir1

ftp> site chmod 777 foo

200 CHMOD command successful.




在solaris 6 7 8 中用下面方式

# vi [color=blue:ed98b842d9]/etc/default/ftpd[/color:ed98b842d9]

UMASK=nnn

 iricyan 回复于:2004-07-01 00:02:18
设置 FTP loging

1. 取消/etc/ftpd/ftpaccess 文件中下面这行的注释: 

        log      commands          real,guest,anonymous 

2. 在/etc/syslog.conf 中添加: 

        daemon.info                 /var/log/ftplog 

3. touch the file /var/log/ftplog
 
# touch /var/log/ftplog


4. 从新启动syslogd.

       # kill -HUP `pgrep syslogd`

5. 登陆并验证: 

   test # cat ftplog
   Nov 4 17:10:00 netlab11 ftpd[18885]: [ID 165209 daemon.info] USER root
   Nov 4 17:10:02 netlab11 ftpd[18885]: [ID 125383 daemon.info] PASS
password
   Nov 4 17:10:02 netlab11 ftpd[18885]: [ID 539042 daemon.info] failed
login from kerouac.East.Sun.COM [129.148.192.158]
   Nov 4 17:10:04 netlab11 ftpd[18885]: [ID 225560 daemon.info] QUIT
   Nov 4 17:10:10 netlab11 ftpd[18886]: [ID 165209 daemon.info] USER root
   Nov 4 17:10:11 netlab11 ftpd[18886]: [ID 125383 daemon.info] PASS
password 


因为ftplog使用的是 debug.info (facility/level) , 如果syslog.conf文件前面已经有其他行使用了 debug.info,那么相应的ftplog就会被记录到那一行所对应的log文件中。
如:
 *.err;kern.debug;daemon.notice;mail.crit;daemon.info       /var/adm/messages

 iricyan 回复于:2004-07-01 00:18:06
Solaris 9 里面添加了wu-ftp,配置匿名ftp变得更加简单。
wu-ftp (SUNWftpr, SUNWftpu) 两个文件包。

执行 /usr/sbin/ftpconfig命令。
可以参考man手册

# ftpconfig -d /pub
Creating directory /pub
Updating directory /pub
#

 iricyan 回复于:2004-07-01 11:41:07
Solaris 小于8 的 FTP log 设置



a: 创建ftp log文件 
# touch /var/adm/ftpd. 

b:  编辑inet服务配置文件
#vi  /etc/inetd.conf. 

# Ftp and telnet are standard Internet services.  
ftp stream  tcp     nowait  root    /usr/sbin/in.ftpd      in.ftpd
修改成:
ftp     stream  tcp     nowait  root    /usr/sbin/in.ftpd    [color=red:6543230988]in.ftpd -d -l[/color:6543230988]

-d: 从syslogd得到 debug.info
-l: list 每一个FTP session


c: restart inetd daemons: 

          # ps -ef | grep inetd
          root 14017     1  0 15:15:27 ?        0:01 /usr/sbin/inetd -s
          # [color=blue:6543230988]kill -1 <pid_inetd>[/color:6543230988]
          #
note: -1 ,重新读取配置文件并初始化进程,等于 kill -HUP <pid of inetd>.
  


d: 修改syslogd.conf并从新启动
# vi  /etc/syslog.conf 


 daemon.debug              /var/adm/ftpd   <<-----增加这一行

note: 中间用tap,不能用空格,会出错的。

# ps -ef | grep syslogd
root 14076     1  0 15:33:07 ?        0:08 /usr/sbin/syslogd
root 16039 16001  0 12:27:03 pts/5    0:00 /usr/bin/grep syslogd 
# kill -1 <PID-syslogd>
         



f: 验证

# ps -ef | grep syslogd
root 14076     1  0 15:33:07 ?        0:08 /usr/sbin/syslogd

       
# fuser /var/adm/ftpd
/var/adm/ftpd:    14076o
#

 iricyan 回复于:2004-07-01 14:07:48
自动get文件的教本~


#!/usr/bin/sh
# Change HOSTNAME, USER, PASSWD and FILENAME appropriately
# Do NOT include any comment lines between LABELs
# The only thing that can appear between LABELs are valid ftp commands
# the -n switch is necessary
/usr/bin/ftp -n << LABEL
open HOSTNAME
user USER PASSWD
binary
get FILENAME
bye
LABEL

 iricyan 回复于:2004-07-01 14:15:08
自动获得多个文件的脚本 ~

#!/usr/bin/sh
# Change HOSTNAME, USER, and PASSWD appropriately.  The mput *.html file could be anything (*.txt, file*, etc)
# Do NOT include any comment lines between LABELs
# The only thing that can appear between LABELs are valid ftp commands
# the -n switch is necessary.  The -i switch turns off interactive prompting during multiple  file transfers.
/usr/bin/ftp -in << LABEL
open HOSTNAME
user USER PASSWD
binary
mput *.html
bye
LABEL

 南非蜘蛛 回复于:2004-07-01 14:19:55
note: 中间用tap,不能用空格,会出错的。

燕子妹妹,这里写错了,是tab,不是tap

 iricyan 回复于:2004-07-01 14:25:20
如果有防火墙,那么需要用到rftp来自动获取文件 ~~

#!/usr/bin/sh
# Change HOSTNAME, USER, PASSWD and FILENAME appropriately
# Do NOT include any comment lines between LABELs
# The only thing that can appear between LABELs are valid ftp commands
# the -n switch is necessary
# rftp is a SOCKS client version of ftp. Happily provided at Sun in /usr/dist/exe.
# Do not know where rftp can be obtained but a man page is at:
# http://support.qnx.com/support/docs/qnx_neutrino/utilities/r/rftp.html
/usr/sbin/rftp -n << LABEL
open HOSTNAME
user USER PASSWD
binary
get FILENAME
bye
LABEL

 吹拂的晨风 回复于:2004-07-01 14:47:30
燕子姐姐总结得不错啊!收下了!
我为什么叫姐姐啊,郁闷ing!

 fwizard 回复于:2004-07-01 15:05:12
solaris9简单一些,我更希望看到solaris8下的使用和配置。
期待ing................................

 nimysun 回复于:2004-07-01 15:28:14
绝对的好帖啊。

 iricyan 回复于:2004-07-01 16:50:49
[quote:1de857c12b="南非蜘蛛"]note: 中间用tap,不能用空格,会出错的。

燕子妹妹,这里写错了,是tab,不是tap[/quote:1de857c12b]
 :oops:  :oops:  :oops: 
 :roll:  :roll:  :roll: 
你倒过来看就OK了~~

 iricyan 回复于:2004-07-01 16:56:43
还有一种情况是ftp传送到一部分会停止掉,不是因为session时间的话,就是因为patch问题了。




Note: 上面几个脚本包含了用户的password,最好设置成别人看不了D
 :em06:  :em06:

 fwizard 回复于:2004-07-01 17:22:07
好事作到底,燕子mm再给solaris8下的吧
先谢谢了哦

 iricyan 回复于:2004-07-01 17:51:52
嗯,我要好好看看,努力学习ing

记得叫JJ,not MM

 nimysun 回复于:2004-07-01 17:54:56
“fwizard”这哥们听说快40了,能叫你姐姐吗?
好奇中。。。。。。。
:)

 iricyan 回复于:2004-07-01 18:07:12
[quote:2db2010f10="nimysun"]“fwizard”这哥们听说快40了,能叫你姐姐吗?
好奇中。。。。。。。
:)[/quote:2db2010f10] :emn28:  :emn13:  :emn15: 
原来是大叔.....
 :em23:  :em23:

 nimysun 回复于:2004-07-01 18:12:26
呵呵,凑了个笑话,我也没有见过fwizard呀。
^_^

 iricyan 回复于:2004-07-01 18:16:43
帅哥,可惜你在山东,要不可以一起晚餐~

顺便向你学习  :)

 fwizard 回复于:2004-07-01 18:21:39
偶晕,几分钟没看我长这么大了?。。。。。。。。。。。

 iricyan 回复于:2004-07-01 18:22:39
建立只能ftp不能telnet的用户:


1   给该用户一个系统不存在的shell
# more /etc/passwd
user:x:1111:10::/user1:/bin/nothish

2 创建该shell文件
# touch /bin/nothish

3 将/bin/nothish 加入 /etc/shells.   <------如果需要的话

note:/etc/shells 系统可以使用的shell,某用户的shell不在此文件将不被允许登陆。



就可以了。

 iricyan 回复于:2004-07-01 21:31:57
再解释一下
ftp的两个端口,一个是传输命令的,一个是传输数据的。

如果能登陆,也能输入命令,但是没有显示的,一般是ftp_data的端口设置不当造成的。

 吹拂的晨风 回复于:2004-07-01 22:18:57
[quote:255d77e98f="iricyan"]嗯,我要好好看看,努力学习ing

记得叫JJ,not MM[/quote:255d77e98f]
女孩子应该都喜欢别人叫MM才对呀,是不是啊iricyanJJ,期待你8下的总结!

 iricyan 回复于:2004-07-01 23:53:21
压力呀,回头读读文档,看是不是有东西可以续上。

 procrus 回复于:2004-07-01 23:57:22
期待下回分解

 chenyajun5 回复于:2004-07-02 10:44:34
go on please

 noah007 回复于:2004-07-05 09:24:57
:oops: 第一次知道燕子jj也是做技术的呀。

原文转自:http://www.ltesting.net