RPC_CLNT_AUTH(3)
π RPC_CLNT_AUTH(3) π
okay bestie, so this is a Library Functions Manual page, section 3 of the manual, and the whole vibe is client side RPC authentication. no cap. let's get into it π¦
β¨ NAME β¨
auth_destroy, authnone_create, authsys_create, authsys_create_default β library routines for client side remote procedure call authentication π
πΈ SYNOPSIS πΈ
#include <rpc/rpc.h>
void
auth_destroy(AUTH *auth);
AUTH *
authnone_create(void);
AUTH *
authsys_create(const char *host, const uid_t uid, const gid_t gid,
const int len, const gid_t *aup_gids);
AUTH *
authsys_create_default(void);
like. look at those signatures. they're serving π
π DESCRIPTION π
so these routines are part of the RPC library, and what that library does is let C language programs make procedure calls on other machines across the network β with whatever authentication you want. desired authentication. your choice, your rules. β¨
the way these get called is normally after you've created the CLIENT handle. like, CLIENT first, auth second, that's the order, don't fight it.
then: the cl_auth field of the CLIENT structure should be initialized by the AUTH structure that some of the following routines hand back to you. π
and the client's authentication information? it gets passed to the server when the RPC call is made. that's the whole point. that's the moment. π
heads up bestie: only the NULL and the SYS style of authentication is discussed here. the others are simply not this page's business. iykyk.
π§ Routines π§
auth_destroy()β okay so this one is a function macro (yes, a macro, not a regular function, stay woke) that destroys the authentication information associated with auth. destruction usually involves deallocation of private data structures. and here's the scary part: the use of auth is undefined after callingauth_destroy(). undefined!! so like, do NOT touch it afterwards. it's gone. it's in the past. move on. πauthnone_create()β create and return an RPC authentication handle that passes nonusable authentication information with each remote procedure call. and fun fact: this is the default authentication used by RPC. the default. the moment. the icon. πauthsys_create()β create and return an RPC authentication handle that containsAUTH_SYSauthentication information. now let's break down the arguments, bestie, because there's a lot:- host β the name of the machine on which the information was created π₯οΈ
- uid β the user's user ID
- gid β the user's current group ID
- len and aup_gids β these two refer to a counted array of groups to which the user belongs. len is the count, aup_gids is the array. they're a package deal, you can't split them up, that's the rules π«Ά
authsys_create_default()β literally just callsauthsys_create()with the appropriate arguments. that's it. that's the whole job. lowkey the easiest one here, and honestly? slay. β¨
π AVAILABILITY π
these functions are part of libtirpc. π§ββοΈ
π SEE ALSO π
rpc(3), rpc_clnt_calls(3), rpc_clnt_create(3)
go read those too, bestie, they're all connected, it's giving β¨loreβ¨
and that's the page!! π this one came from Debian and it's dated May 7, 1993 β yes, 1993, this manual page is older than basically everyone you know and it's still running things. iconic behavior honestly. periodt. π ππΈ
π¦ where this page comes from
- alpine 3.22: libtirpc-doc 1.3.5-r0 Β· BSD-3-Clause
- alpine 3.23: libtirpc-doc 1.3.5-r1 Β· BSD-3-Clause
- alpine 3.24: libtirpc-doc 1.3.5-r1 Β· BSD-3-Clause
- arch rolling: libtirpc 1.3.8-1 Β· SISSL AND BSD-3-Clause
- centos-stream 10: libtirpc-devel 1.3.5-1.el10 Β· SISSL AND BSD-3-Clause
- centos-stream 9: libtirpc-devel 1.3.3-9.el9 Β· SISSL and BSD
- centos-stream 9: libtirpc-devel 1.3.3-9.el9 Β· SISSL and BSD
- debian bookworm: libtirpc-dev 1.3.3+ds-1 Β· BSD-3-Clause
- debian trixie: libtirpc-dev 1.3.6+ds-1 Β· BSD-3-Clause
- fedora 43: libtirpc-devel 1.3.7-0.fc43 Β· SISSL AND BSD-3-Clause
- fedora 43: libtirpc-devel 1.3.7-0.fc43 Β· SISSL AND BSD-3-Clause
- fedora 43: libtirpc-devel 1.3.7-1.rc1.fc43 Β· SISSL AND BSD-3-Clause
- fedora 43: libtirpc-devel 1.3.7-1.rc1.fc43 Β· SISSL AND BSD-3-Clause
- fedora 44: libtirpc-devel 1.3.7-2.fc44 Β· SISSL AND BSD-3-Clause
- fedora 44: libtirpc-devel 1.3.7-2.fc44 Β· SISSL AND BSD-3-Clause
- fedora 44: libtirpc-devel 1.3.8-0.fc44 Β· SISSL AND BSD-3-Clause
- fedora 44: libtirpc-devel 1.3.8-0.fc44 Β· SISSL AND BSD-3-Clause
- nixos 26.05: libtirpc 1.3.7
- nixpkgs unstable: libtirpc 1.3.7
- opensuse-leap 16.0: libtirpc-devel 1.3.6-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: libtirpc-devel 1.3.6-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: libtirpc-devel 1.3.6-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: libtirpc-devel 1.3.6-160000.2.2 Β· BSD-3-Clause
- ubuntu jammy: libtirpc-dev 1.3.2-2build1 Β· BSD-3-Clause
- ubuntu jammy: libtirpc-dev 1.3.2-2ubuntu0.1 Β· BSD-3-Clause
- ubuntu noble: libtirpc-dev 1.3.4+ds-1.1build1 Β· BSD-3-Clause
- ubuntu questing: libtirpc-dev 1.3.6+ds-1
- ubuntu resolute: libtirpc-dev 1.3.7-0.1 Β· BSD-3-Clause
- ubuntu stonking: libtirpc-dev 1.3.7+ds-1 Β· BSD-3-Clause
- Copyright 1989 AT&T
- Copyright (c) 1988 Sun Microsystems, Inc. - All Rights Reserved
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms