GGATED(8)
πΈ GGATED(8) β the GEOM Gate network daemon, bestie edition πΈ
okay so first things first: this is a page from the System Manager's Manual, and the utility itself is ggated β the GEOM Gate network daemon. yes that's a lot of capital letters, we'll get through it together π«Ά
β¨ NAME β¨
ggated β the GEOM Gate network daemon π
π SYNOPSIS π
ggated [-h] [-n] [-v] [-a address] [-p port] [-F pidfile] [-R rcvbuf]
[-S sndbuf] [exports file]
π¦ DESCRIPTION π¦
So ggated is a network server for the GEOM Gate class. It lives on a server machine and its whole job is servicing GEOM Gate requests coming from workers that are hanging out on a client machine. Very main character, very "I'm the one holding it down" energy π
β οΈ Real talk though, and I need you to hear me: connections betweenggatec(8)andggatedare not encrypted. Not encrypted. zero. nada. no cap. Keep that in mind before you go exporting your whole life over the network π
π available options
-aaddress β picks the IP address to bind to. you're choosing where it lives β¨-hβ prints the available options. the classic "help me help you" flag π-nβ do not use theTCP_NODELAYoption on TCP sockets. justβ¦ no delay-ing, periodt.-pport β the portggatedlistens on for connections. default is3080π₯-Fpidfile β the PID file thatggateduses.-Rrcvbuf β size of the receive buffer to use. default is131072(which is128 KiB, if you're a "please give me units" girlie) πΈ-Ssndbuf β size of the send buffer to use. default is131072(128 KiB, same vibe) πΈ-vβ do not fork, run in the foreground, and print debug information on standard output. chaotic but transparent, we love a no-hiding narrator π- exports file β an alternate location for the exports file. you can absolutely move it, it's giving "my house my rules" π
π the exports file format, iykyk
The format of an exports file is literally as follows:
1.2.3.4 RO /dev/cd0
1.2.3.0/24 RW /tmp/test.img
hostname WO /tmp/image
hostname RW,DIRECT /tmp/direct-image
hostname RW,NODIRECT /tmp/nodirect-image
Let's break down the columns, because yes there are three and yes you need all of them π
The first column specifies the ip, the network with netmask, or the hostname that the export applies to. That's your "who gets to touch this" column π
The next column is the access flags that apply to the export:
ROβ Read-Only. the path specified will be exported to the client read only. look, don't touch πWOβ Write-Only. the path specified will be exported to the client write only. touch, don't look πRWβ Read-Write. the path specified will be exported to the client read-write. the full experience, the whole buffet πDIRECTβ the path specified will always be opened withO_DIRECTfor clients.NODIRECTβ the path specified will never be opened withO_DIRECTfor clients.
The final column specifies the path to export. that's it, that's the one π
β how access actually gets decided (the group-chat drama)
Files are opened with the least common flags between the client and the server. Like, the intersection where everybody agrees. A client may request read or write only to a read-write export, and the server will honor the client request and open the file in the requested mode. Very "you asked nicely, so sure" π But a client requesting greater access than the permissions listed in the file will be rejected. ma'am, this is a RO, please do not π
π₯ DIRECT vs NODIRECT, explained with feeling
DIRECT and NODIRECT are used to coerce the use of the O_DIRECT flag to open(2) when the specified path is opened.
- If
DIRECTis specified, the path is always opened withO_DIRECT. - If
NODIRECTis specified, the path is never opened withO_DIRECT.
DIRECT access limits the cache effects of IO operaions on the file. The effect here is that clients accessing exports will not impact the cache of the local machine β cute, considerate, respectful of your local cache's boundaries β¨ β however it will cause greater IO utilization to the devices on which the files reside. so like, you're trading one vibe for another, choose wisely π¦
If neither is specified, the server will use the preference specified by the client, with the default to not use O_DIRECT. And if the client specifies a preference against the server's configuration, the client preference will be silently ignored. no argument, no text back, just read receipt and nothing else π
πΈ FILES πΈ
/var/run/ggated.pidβ the default location of theggatedPID file. that's its little home π
π EXIT STATUS π
Exit status is 0 on success, or 1 if the command fails. And to get details about the failure, ggated should be called with the -v option β that's your "okay but why" flag, use it π
π EXAMPLES π
Export a CD-ROM device, a file, and a file with the O_DIRECT option β all in one go, we love a combo:
# echo "1.2.3.0/24 RO /dev/cd0" > /etc/gg.exports
# echo "client RW /image" >> /etc/gg.exports
# echo "client RW,DIRECT /image2" >> /etc/gg.exports
# echo "client RW,NODIRECT /image3" >> /etc/gg.exports
# ggated
ate. no crumbs. π½οΈ
π§ SEE ALSO π§
open(2), geom(4), ggatec(8), ggatel(8) β go read the whole friend group, they're all connected π
π HISTORY π
The ggated utility appeared in FreeBSD 5.3. a legend was born β¨
π AUTHORS π
The ggated utility as well as this manual page was written by Pawel Jakub Dawidek <pjd@FreeBSD.org>. thank you king π«Ά
π okay that's the whole page, you made it, I'm so proud of you. go export something responsibly. and remember: not encrypted. love you, bye π
signing off from the Debian edition, dated September 8, 2016, from your favorite GGATED(8) girlie β mwah π
π¦ where this page comes from
- freebsd 15.1: base 15.1
- Copyright (c) 2004 Pawel Jakub Dawidek <pjd@FreeBSD.org>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms