FUD(8)
π FUD β like, the Cyrus IMAP one, bestie (section 8, system admin girlies) π
okay so this is fud, and it lives in the Cyrus IMAP docs situation. no cap, it's giving very "quiet background daemon that knows things about u". let's get into it β¨
πΈ NAME πΈ
fud β Cyrus IMAP documentation, and also: Provide information about user mailboxes π«Ά
π SYNOPSIS π
fud [ -C config-file ] [ -U uses ] [ -T timeout ] [ -D ]
π¦ DESCRIPTION π¦
so fud is a long lived datagram daemon, and it gets started from master. what does it do tho?? it tells u:
- when a user last read their mail π
- when mail last arrived in a user's mailbox π¬
- how many messages are recent for that user π’
it's literally the group chat gossip of mailboxes, but make it UDP.
fud reads its config options out of the imapd.conf(5) file, unless u say otherwise with -C.
and here's the iconic part: if fud is running on a Cyrus Murder frontend machine, it will automatically proxy any and all FUD requests to the appropriate backend server. like, it just handles it. main character energy fr fr π
π§ To set up the FUD daemon, bestie
add this to your cyrus.conf:
fud cmd="fud" listen="fud" prefork=1 proto="udp"
and add this to /etc/services:
fud 4201/udp # Cyrus IMAP FUD Daemon
π Client
real talk: there is no specific FUD client. this next bit just shows how one might access FUD.
#!/usr/bin/perl
use Socket;
print( "Enter fud hostname: " );
$hostname = <>;
chomp( $hostname );
print( "Enter username to query: " );
$username = <>;
chomp( $username );
socket( FUD, PF_INET, SOCK_DGRAM, getprotobyname( "udp" ) )
or die( "failed to create udp socket: $!" );
$ipaddr = inet_aton( $hostname );
$portaddr = sockaddr_in( '4201', $ipaddr );
$fud_query = $username . '|user.' . $username;
send( FUD, "$fud_query", 0, $portaddr ) == length( $fud_query )
or die( "failed to send fud query: $!" );
recv( FUD, $fud_response, 512, 0 )
or die( "recv() failed: $!" );
print( "FUD responded: $fud_response\n" );
exit( 0 );
she's a little perl script and she's doing her best π
β¨ OPTIONS β¨
-C config-fileβ use the config file u specify as config-file instead of the defaultimapd.conf(5). like, "not that one, this one" πβοΈ-U usesβ the max number of times the process should be used for new connections before shutting down. the default is 250. so it's got a limit and it respects it π-T timeoutβ how many seconds the process will wait for a new connection before shutting down. heads up bestie: a value of 0 (zero) will disable the timeout. the default is 60 β°-Dβ run the external debugger specified indebug_command. yeah, it's debugger time π
π FILES π
/etc/imapd.conf/etc/cyrus.conf
π BUGS π
okay so, "though not really a bug", fud will silently ignore any requests that it does not consider valid. it's not mad, it's just not answering. ghosting, but in daemon form π
also not really a bug: fud requires that the anonymous user has the 0 (zero) right on the mailbox in question. the reason this is only a "bug" is that 0 is not a standard IMAP ACL bit. so like... it's a vibe, not a spec π«
and one more for the road: fud is an experimental interface, meant to provide information so u can build a finger-like service around it. eventually it should be superseded by a more standards-based protocol. so she's experimental, she's iconic, she's maybe temporary π§
π₯ SEE ALSO π₯
iykyk π
π AUTHOR π
The Cyrus Team, Nic Bernstein (Onlight) β absolute legends, no notes π
β COPYRIGHT β
1993β2026, The Cyrus Team
and that's the whole page bestie!! π this was fud(8) from Cyrus IMAP, version 3.12.4, dated Sep 09, 2026. go read ur mail, go query ur daemon, stay hydrated, and remember: the anonymous user needs the zero right. periodt. πβ¨π¦
π¦ where this page comes from
- fedora 44: cyrus-imapd 3.12.4-1.fc44 Β· BSD-Attribution-HPND-disclaimer
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms