在最近安装的 OpenBSD 中,我注意到smtpd
守护进程存在。
gelima# ps aux
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
[...]
root 90899 0.0 0.0 1720 2236 ?? Ip 10:26PM 0:00.02 /usr/sbin/smtpd
_smtpd 46484 0.0 0.0 1452 3244 ?? Ipc 10:26PM 0:00.02 smtpd: crypto (smtpd)
_smtpd 24355 0.0 0.0 1656 3484 ?? Ipc 10:26PM 0:00.03 smtpd: control (smtpd)
_smtpd 2198 0.0 0.0 1524 3356 ?? Ip 10:26PM 0:00.04 smtpd: lookup (smtpd)
_smtpd 10223 0.0 0.1 1932 4700 ?? Ipc 10:26PM 0:00.05 smtpd: dispatcher (smtpd)
_smtpq 87986 0.0 0.0 1652 3464 ?? Ipc 10:26PM 0:00.03 smtpd: queue (smtpd)
_smtpd 9288 0.0 0.0 1456 3304 ?? Ipc 10:26PM 0:00.04 smtpd: scheduler (smtpd)
_sndiop 14528 0.0 0.0 2656 996 ?? IpU 10:26PM 0:00.00 sndiod: helper (sndiod)
如何找到/usr/sbin/smtpd
属于的包并将其从系统中删除。我不想smtpd
从系统中禁用服务,我想删除它。
我看到它在二进制包中不可用。
# pkg_info -mz
htop--
nginx--
pkglocatedb--
quirks--
vim--no_x11
那么它在哪里呢?
smtpd
是 OpenBSD 基础安装的一部分,还有许多其他守护进程(nsd
、unbound
、httpd
、relayd
、dhcpd
等)。它是系统的一个组成部分,并不意味着要被删除。这就是为什么在包中搜索它是没有用的。与所有其他守护进程一样,它可以被禁用(一个简单的“rcctl disable smtpd”就足够了),但这意味着您将不会收到任何与系统管理相关的自动电子邮件,即作业失败时的警报或
cron
结果的daily
和weekly
脚本。后者包括更改文件列表(请参阅 参考资料man changelist
)、二进制文件更改setuid
等内容。查看man
页面daily
以weekly
了解您将错过的所有内容。这些邮件是在本地投递的,除非你root
改变。mbox
/etc/mail/aliases
请注意,默认情况下,
smtpd
仅侦听lo0
,因此它不接受来自其他主机的任何消息。它只接受来自本地用户的邮件,并将它们传送到本地mbox
帐户,或将它们中继到目标域的 MTA。如果您想阻止本地用户向外部域发送邮件,您只需删除/etc/mail/smtpd.conf
. 虽然这不会阻止用户发送到本地地址,但您可以进行一些过滤(例如,通过发件人或目标地址)。您没有具体说明为什么要实际删除
smtpd
,所以我只能猜测,而且我发现很难找到这样做的理由。如上所述,您可以简单地禁用它。它只能通过以下方式启动root
(然后以广泛的权限分离运行),因此如果您担心有人可能会恶意启动它,那您就只见树木不见森林了。对于能够启动的人来说,smtpd
他们必须具有root
访问权限,如果是这样的话,您遇到的问题比邮件守护程序要大得多。通过禁用它,系统将无法发送上述cron
输出等消息,所以如果出现问题,请不要感到惊讶。如果你仍然想这样做,你可以只使用
rm
二进制文件,当然(只要rcctl disable smtpd
先运行,否则每次启动系统时都会出错)。只是不要去抱怨一些疼痛和脚上的子弹形孔,事后。