- 论坛徽章:
- 0
|
Solaris自带的FTP服务之
九阳神功第一重
1。基本概念
今天才刚刚开始动笔写这篇文章,以后我会不断的往其中添加内容,为了保证通俗易懂,希望大家能够不断的提出不明白的地方,我也会不断的修改,同时我也列出我自己实践中没有明白的地方,希望大家能够多多指教,共同进步,也希望能够和大家交个朋友,这篇文章大部分是我自己写的,同时也参考了一些其他的文章.我想用我的思路来给初学者一个简单的方法掌握知识的要点.欢迎批评指正.Gameaya@sohu.com Gameaya@sina.com
刚开始学习的时候我总是以为Solaris自己带的FTP服务程序应该姓S而不应该姓Wu(全名是wu-ftp),在资料上查找了很长时间,一直很纳闷为什么没有关于Solairs自带Ftp服务的介绍,后来终于明白原来自带的Ftp就是Wu-ftp,也许大家笑我很笨,但是我相信还有很多为此而迷惑的朋友。因此,为了解救像我这样的人,写了这篇文章,也算是报答hinaUnix.net上兄弟们的栽培。
为了确定Solaris9自带的ftp服务到底是姓什么和具体的版本是什么,我们可以通过以下方式来确定,目前我的solairs架设在虚拟机上,因此,我需要用另一台机子登陆到Solaris,我想这对有物理机子的Solairs会更加的容易。
登陆到名称为Aya的Solaris机器上,我的目标Solairs的IP地址为192.168.1.11,ftp帐号为:test,因此命令如下:
ftp 192.168.1.11和quote stat
以下是显示的信息:
D:\>;ftp 192.168.1.11
Connected to 192.168.1.11.
220 Aya FTP server ready.
User (192.168.1.11 none)): test
331 Password required for test.
Password:
230 User test logged in.
ftp>; quote stat
211-Aya FTP server status:
Version wu-2.6.2+Sun
Connected to 192.168.1.5 (192.168.1.5)
Logged in as test
TYPE: ASCII, FORM: Nonprint; STRUcture: File; transfer MODE: Stream
No data connection
0 data bytes received in 0 files
0 data bytes transmitted in 0 files
0 data bytes total in 0 files
28 traffic bytes received in 0 transfers
487 traffic bytes transmitted in 0 transfers
564 traffic bytes total in 0 transfers
211 End of status
大家可以看到自带的ftp服务程序为wu-2.6.2
Solaris自带的FTP服务之
九阳神功第二重
2.ftp的基本配置。
wu-2.6.2配置文件在/etc/ftpd下,以下是自带wu-2.6.2默认的几个配置文件
ftpaccess ftpconversions ftpgroups ftphosts ftpservers ftpusers
首先我们打开ftpaccess文件来看一下它的配置信息:
# ident "@(#)ftpaccess 1.1 01/06/26 SMI"
#
# FTP server configuration file, see ftpaccess(4).
#
class realusers real *
class guestusers guest *
class anonusers anonymous *
loginfails 3
passwd-check trivial warn
private no
keepalive yes
shutdown /etc/ftpd/shutdown.msg
# email user@hostname
# guestuser username
# timeout idle 300
banner /etc/ftpd/banner.msg
greeting brief
message /etc/ftpd/welcome.msg login
message .message cwd=*
readme README* login
readme README* cwd=*
chmod no anonymous
delete no anonymous
overwrite no anonymous
rename no anonymous
umask no anonymous
compress yes realusers guestusers anonusers
tar yes realusers guestusers anonusers
path-filter guest,anonymous /etc/ftpd/filename.msg ^[[]._-]*$ ^[.-]
noretrieve relative class=anonusers /
allow-retrieve relative class=anonusers /pub
upload class=anonusers * * no nodirs
# upload class=anonusers * /incoming yes ftpadm ftpadm 0440 nodirs
# log commands real,guest,anonymous
# log security real,guest,anonymous
# log transfers real,guest,anonymous inbound,outbound
# limit-time anonymous 30
# limit anonusers 10 Wk0730-1800 /etc/ftpd/toomany.msg
# limit anonusers 50 SaSu|Any1800-0730 /etc/ftpd/toomany.msg
以上是最基本的配置信息,我没有做任何的改动。
以#开头的前四行为注释
class realusers real *
class guestusers guest *
class anonusers anonymous *
这三行为类的定义,格式为class [类名] [real/guest/anonymous] [有权利访问的IP地址]
wu-ftp对访问者定义了三种类型,分别是real,guest和anonymous
real 在FTP服务器中有帐号的用户;
guest 有记录的匿名用户;
anonymous 权限最低的匿名用户
第一行的含义是定义了一个具有real权力的realusers类,这个类可以在任何的IP地址上访问。
loginfails 3
指用户输入3次用户名和密码都错误后,会断开ftp服务器与用户的连接,断开时候显示如下:
Connection closed by remote host.
passwd-check () 说明:定义匿名ftp登录时密码检查的级别。
none: 不进行密码检查
trivial:密码必须包含@
rfc822: 密码必须符合rfc822中的规定
warn: 警告但让其登录
enforce:警告并终止连接
private会涉及到/etc/ftpgroups文件,我会在该文件中叙述。
keepalive 是否在对话过程中仍然保持数据通道的活动状态。
shutdown
Ftp服务的关闭
1.方法1:在/etc/ftpd/ftpaccess文件中配置
shutdown /etc/ftpd/shutdown.msg
如果/etc/ftpd/shutdown.msg文件存在,那么将按照该文件中的具体配置进行关闭ftp服务,如果该文件不存在,那么该配置命令就相当于不存在。
shutdown.msg文件配置方法原文件如下:
2005 02 23 20 55 0030 0020
/etc/ftpd/shud.msg
以上是我从Solairs服务器中提取出来的,当然是我配置过的,原来没有。各段含义如下:
年 月 日 时 分 拒绝新连接的时间 拒绝连接的时间
提示文字或者是提示文件
年:关闭的年份,资料上指出年份必须大于1970年,至于小于1970年会怎么样我没有试验过,如果大家做过的话,有什么现象告诉我一声。
月:这里注意一下,月份是从0-11来表示1-12月,例如上面的02表示三月份
日:1-31
时:0-23
分:0-59
以上的含义就是2005/03/23,20:55关闭FTP服务,并且显示shud.msg中的内容。
注意关闭Ftp服务,不表示关闭了服务器,我都没有敢写关闭ftp服务器,怕大家误会.
也可能会是以下内容,"hello the server will 关闭"是自己加的,也就是说可以直接使用消息,这里没有使用文件的形式。
2005 02 23 10 10 0030 0020
hello the server will 关闭
拒绝新连接的时间:格式是HHMM,即小时分钟
含义是20:55关闭,如果在20:25(55-30)分以前登陆的那么依然与主机连通着,如果在20:25分后没有登陆的用户想连接,那么这个新的连接将会被拒绝。
拒绝连接的时间:格式是HHMM,即小时分钟;以上含义是20:35分拒绝所有的连接,包括已经登陆的用户。
2.方法2:使用ftpshut命令
这个命令需要有一定的权利,root级别的才可以使用,如果是普通的用户,会提示找不到文件.
使用方法:
$ su
#ftpshut -l 30 -d 20 2055 "hello the server will 关闭"
结果跟以上相同
ftpshut命令的格式为:
ftpshut [-d min] [-l min] now ["message"]
ftpshut [-d min] [-l min] +dd ["message"]
ftpshut [-d min] [-l min] HHMM ["message"]
消息部分可以是文件也可以是字符串,含义大家对照一下就很容易明白的.-l和-d按照上面的习惯我对调了一下.
当然我们不仅要学会下毒,而且还得学解毒的方法.
开启关闭了的ftp服务命令为:
#ftprestart #表示你得是root级别的Boss老怪.
使用该命令之后,系统会自动删除我们在ftpaccess中指定的/etc/ftpd/shutdown.msg文件,表示启动ftp服务
然后是三行注释,以后再介绍其中被注释掉命令的含义.
banner /etc/ftpd/banner.msg
banner指明一个文件,该文件的信息将会在用户输入用户名和密码之前显示,用来作提示用。
D:\>;ftp 192.168.1.11
Connected to 192.168.1.11.
220-welcome to GameAya's ftp server!
220-
220 Aya FTP server ready.
User (192.168.1.11 none)): test
331 Password required for test.
Password:
其中banner.msg文件中的信息为:welcome to GameAya's ftp server!
greeting full|breif|terse 或greeting text 定义再用户登录前向用户显示的信息。紧接着banner显示命令后显示信息。在用户登陆之前
显示。
full 向用户显示主机名和ftp服务程序的版本为缺省设置。
breif 只向用户显示主机名。
terse 仅仅显示“FTP server ready"
greeting text 可以指定你所想显示的任何信息,例如greeting text 这段话可以不用加引号
messeage的格式为:
messeage 文件名称 事件
有两种事件发生时,显示指定文件中的信息
1.当用户登陆时候; 例如message /etc/ftpd/login.msg login
2.当用户进入某个文件夹时候 例如 message /etc/ftp/cd.msg cwd=/etc 当用户进入/etc文件夹时候,也可以使用cwd=*来指定进入任
何 的文件夹都显示指定的文件中的信息,另外,当登陆时,不仅显示login.msg也显示cd.msg
message的显示和banner、greeting显示的区别在于messeage仅在用户成功登陆以后(输入完用户名和密码)才显示信息.
readme的格式与messeage的格式用法都是一样的,但是显示的方式不一样,例如:
readme /etc/ftpd/readme1.msg cwd=*
如下显示为
ftp>; cd etc
250-Please read the file /etc/ftpd/readme1.msg
250- it was last modified on Wed Mar 23 23:05:37 2005 - 0 days ago
接下来的五行说明了匿名用户所没有的权限控制
chmod改变文件(夹)的属性 delete删除 overwrite覆盖 rename重命名 umask文件的掩码。
其中umask是最少见到的命令,他是用来控制文件的默认权限,需要结合原文件的权限来决定新文件的权限。
首先我们来了解一下umask的原理:
文件权限的格式为rwxrwxrwx;分别是文件的拥有者,拥有者所在的组和其他用户的权限。r代表可以读取,w代表可写,x代表可以执行,如果rwx
其中的某一位为-,那么他不具备该权限。
列如:rwxrw-r--表示文件的拥有者具有读写执行的权利,而所在的组有读写权利,而其他的用户只有读取的权利。如果是一个文件夹,那么rwx
表示读取,执行和浏览文件夹下的文件或文件夹。
那么rwxrw-r--这个权限用二进制数字来表示就是111 110 100,1表示有权利,0表示没有。就是8进制的764(注意8进制表示法中的二进制0为
000,1为001,2为010,。。。7为111)。
当一个新的文件产生时,文件的默认权限和文件的掩码相结合产生新文件的权限,运算的方式为,凡是掩码为1的位,对应的结果总是0,掩码
为0的位,对应的结果有原来的权限位决定。文件的默认权限为666,默认掩码为022,那么新的文件权限为644。
666的二进制为 110 110 110
022的二进制为 000 010 010
则运算的结果为 110 100 100 即644。
以下我们来验证一下。
$ umask //查看默认的umask码
022 //显示默认的值为022
$ umask 0
$ umask //再次显示默认
000
$vi psx //编辑一个新的文件
$ ls -l //显示详细信息
total 8
-rw-rw-rw- 1 test sys 18 Mar 26 10:22 psx
$
我们再来做第二个验证
$ chmod 777 psx //更改psx的默认权限
$ ls -l
total 8
-rwxrwxrwx 1 test sys 18 Mar 26 10:22 psx
$ umask 777 //更改默认的掩码
$ umask
0777
$ cp psx 23 //新建立一个文件,是psx的复制
$ ls -l //查看文件的结果
total 16
---------- 1 test sys 18 Mar 26 10:28 23
-rwxrwxrwx 1 test sys 18 Mar 26 10:22 psx |
|