在最近安装的 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
那么它在哪里呢?
答案1
smtpd
是 OpenBSD 基本安装的一部分,还有许多其他守护进程(nsd
、unbound
、httpd
、relayd
、dhcpd
等)。它是系统的一个组成部分,并且不应该被删除。这就是为什么在包中搜索它是没有用的。
与所有其他守护进程一样,它可以是残疾人(简单的“rcctl禁用smtpd”就足够了),但这意味着您将不会收到任何与系统管理相关的自动电子邮件,即作业失败时的警报或脚本cron
的结果。后者包括诸如已更改文件列表(请参阅 参考资料)、对二进制文件的更改等内容。请参阅和的页面,了解您将错过的所有内容。这些邮件将在本地发送至's ,除非您进行更改。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
,否则每次启动系统时都会出现错误)。只是事后不要抱怨脚上有一些疼痛和弹孔。