在这个示例的第一部分,我们可以将FTP配置为记录FTP服务器系统A上的每次登录。注意该ftp服务在系统A上的初始状态为禁用。
A # svcs ftp
STATE STIME FMRI
disabled Jan_10 svc:/network/ftp:default
A # inetadm -l svc:/network/ftp:default
SCOPE NAME=VALUE
name="ftp"
endpoint_type="stream"
proto="tcp6"
isrpc=FALSE
wait=FALSE
exec="/usr/sbin/in.ftpd -a"
user="root"
...
default tcp_trace=FALSE
default tcp_wrappers=FALSE
default connection_backlog=10
用于ftp服务的注册记录属性是tcp-trace。我们可以将其值从FALSE改为TURE,然后启用该服务并验证服务是否在线。
A # inetadm -m svc:/network/ftp:default tcp_trace=TRUE
A # inetadm -l svc:/network/ftp:default
SCOPE NAME=VALUE
name="ftp"
tcp_trace=TRUE
A # svcadm enable svc:/network/ftp:default
A # svcs ftp
STATE STIME FMRI
online 07:07:07 svc:/network/ftp:default
而后,以普通用户身份在B机上运行ftp命令
B $ ftp A
Connected to A.
220 A FTP server ready.
Name (A:testftp):
331 Password required for testftp.
Password:
230 User testftp logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
作为超级用户,再检查A机上记录文件中的注册记录。
A # tail -1 /var/adm/messages
Jan 10 07:20:20 A inetd[16208]: [ID 317013 daemon.notice] ftp[6036] from B 49822
要继续这一示例,应禁用该服务。假设你想在服务上线前创建监控。
A # svcadm disable ftp
A # svcs -x ftp
svc:/network/ftp:default (FTP server)
State: disabled since January 20, 2009 07:20:22 AM PST
Reason: Disabled by an administrator.
See: http://sun.com/msg/SMF-8000-05
See: in.ftpd(1M)
See: ftpd(1M)
Impact: This service is not running.
用于ftp服务的exec属性包含启动服务的命令。该命令的手册页描述了命令可接受的参数。我们可以选择参数添加到exec属性中,以便该服务启动时,命令按这些参数运行。因此,若想修改运行服务的命令,可按照如下步骤操作:
1. 列出服务的exec属性。
2. 在手册页,确定要加入exec命令的参数。
3. 将选定参数添加到服务的exec属性。
4. 验证exec属性是否更改。
5. 启用服务。
6. 测试并使用服务。
在下列示例中,我们可以修改ftp服务,以提供调试信息和每次连接的详细记录。若想修改ftp服务的exec属性,首先要列出exec属性,然后阅读exec命令的手册页以确定要添加的参数。
# inetadm -l svc:/network/ftp:default | grep exec
exec="/usr/sbin/in.ftpd -a"
# man in.ftpd
在in.ftpd(1M)手册页,选择提供详细信息的选项。
-v为syslogd(1M)写调试信息。
-w 记录wtmpx(4) file中每位用户登录,登出的记录。
-i记录FTP服务器到xferlog(4)所接收的所有文件名。
修改exec属性,验证属性是否更改成功。
# inetadm -m ftp exec="/usr/sbin/in.ftpd -a -i -v -w"
# inetadm -l ftp | grep exec
exec="/usr/sbin/in.ftpd -a -i -v -w"