ZEPHYRD(8)
π ZEPHYRD π
okay bestie, gather round, because today we're talking about zephyrd β a page from the System Manager's Manual (section 8, the big-girl sysadmin section, we love her) π«Ά
β¨ NAME β¨
zephyrd β the Zephyr server daemon. that's it, that's the girl. she's the server. π
πΈ SYNOPSIS πΈ
/usr/sbin/zephyrd [ -d ]
π¦ DESCRIPTION π¦
okay so zephyrd is the central server for the Zephyr Notification System. main character energy, no notes. π
she keeps two things alive at all times:
- a location database of every single user who's currently logged in (she knows where you are, bestie, she's not creepy she's just thorough π)
- a subscription database for each user's Zephyr clients
zephyrd also talks to the daemons running on the other Zephyr server hosts, so that the whole service stays reliable. it's giving group project, except everyone actually does their part. π
while she's running, any unusual conditions get recorded via syslog(3) to facility local6, at various levels. and if you pass the -d option? she logs additional debugging information. yes she's nosy. yes it's for your own good. π₯
when a zephyrd gets executed, she asks Hesiod for a list of server machines, and she initializes her state from any zephyrds that are already running on the other known servers. but β and this is the important part β that initialization only happens after the zephyrds have authenticated themselves to each other via Kerberos. no vibes-based trust here, we do credentials. π
then she enters a dispatch loop, servicing requests from clients and from other servers. forever. like a queen on her throne. π
π SIGNALS π
she responds to signals, and honestly the range is iconic:
SIGUSR1β enables logging of additional debugging information β¨SIGUSR2β disables the logging of additional debugging information πSIGHUPβ causeszephyrdto re-read the default subscription file, and to re-query Hesiod about valid peers. any peers which are not responding and are no longer mentioned in Hesiod get flushed; any peers not previously named by Hesiod get added. it's a roster update, basically. πSIGINTandSIGTERMβ causezephyrdto gracefully shut down π«Ά (she exits with dignity, unlike some daemons)SIGFPEβ causeszephyrdto dump the location and subscription databases to/var/tmp/zephyr.dbin an ASCII format π like ok emergency but make it legible
π ACCESS CONTROL π
so certain notice classes are restricted by the Zephyr server. each such class has access control lists enumerating who may transmit (xmt-*.acl) or who may subscribe to that particular class.
subscriptions may be restricted either:
- absolutely β via
sub-*.aclfiles - by instance restrictions
and then we have the specific ones, listen up:
iws-*.aclfiles control subscriptions to wildcarded instancesiui-*.aclfiles control subscriptions to instances which are not the Kerberos principal identity of the subscriber
if an access control list of a given type is absent, there is no restriction of that type on the class β with one exception: any notices of the class must be authenticated. so no acl = no gatekeeping, but you still gotta prove who you are. periodt. π
and the class registry lists all classes which are restricted. π
π FILES π
here's where everything lives, bestie. memorize the paths, iykyk:
/etc/zephyr/acl/class-registry.aclβ list of classes which are restricted/etc/zephyr/acl/iws-*.aclβ access control lists for instance-wildcard restrictions/etc/zephyr/acl/iui-*.aclβ access control lists for instance-identity restrictions/etc/zephyr/acl/sub-*.aclβ access control lists for subscribing/etc/zephyr/acl/xmt-*.aclβ access control lists for transmitting/etc/zephyr/srvtabβ Kerberos 4 Service keys/etc/zephyr/krb5.keytabβ Kerberos V Service keys/var/run/zephyrd.tkt4β current Kerberos 4 tickets for exchange with other servers/var/run/zephyrd.tktβ current Kerberos 5 tickets for exchange with other servers/var/tmp/zephyr.dbβ file containing an ASCII dump of the database
π BUGS π
not me having to report this but okay: the current implementation of the Zephyr server (zephyrd(8)) makes no distinction between realm-announced, net-visible and net-announced exposure levels. it just... doesn't. we're aware. we're all aware. π
π SEE ALSO π
also go read the Athena Technical Plan, specifically:
- Section E.4.1 (Zephyr Notification Service)
- Section E.2.1 (Kerberos Authentication and Authorization System)
homework but make it educational πΈ
β AUTHOR β
John T. Kohl, MIT Project Athena and Digital Equipment Corporation. a legend, frankly. π«Ά
π RESTRICTIONS π
Copyright (c) 1987,1988 by the Massachusetts Institute of Technology. All Rights Reserved.
zephyr(1) specifies the terms and conditions for redistribution. so like, read that one before you start redistributing, bestie, it's all in there. π
and that's the whole page!! this beauty came out of MIT Project Athena and is dated July 1, 1988 β yes she's vintage, yes she still runs the notification system, we stan an elder icon πβ¨π
π¦ where this page comes from
- debian bookworm: zephyr-server 3.1.2-1.1+b1
- debian bookworm: zephyr-server-krb5 3.1.2-1.1+b1
- debian trixie: zephyr-server 3.1.2-1.1+b2
- debian trixie: zephyr-server-krb5 3.1.2-1.1+b2
- ubuntu jammy: zephyr-server 3.1.2-1build3
- ubuntu jammy: zephyr-server-krb5 3.1.2-1build3
- ubuntu noble: zephyr-server 3.1.2-1.1build1
- ubuntu noble: zephyr-server-krb5 3.1.2-1.1build1
- ubuntu questing: zephyr-server 3.1.2-1.1build1
- ubuntu questing: zephyr-server-krb5 3.1.2-1.1build1
- ubuntu resolute: zephyr-server 3.1.2-4 Β· MIT
- ubuntu resolute: zephyr-server-krb5 3.1.2-4 Β· MIT
- ubuntu stonking: zephyr-server 3.1.2-4 Β· MIT
- ubuntu stonking: zephyr-server-krb5 3.1.2-4 Β· MIT
- Copyright 1987 by the Massachusetts Institute of Technology
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms