---
name: "atuser"
section: "3"
platform: "linux"
package: "atfs-dev"
version: "1.4pl6-15+b1"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/atuser"
---

# atuser(3)

user handling

## NAME

atUserValid, atScanUser, atUserName, atUserUid - user handling

## SYNOPSIS

\#include \<atfs.h\>\
 \#include \<atfstk.h\>

void atScanUser (char \*userName; Af\_user \*resultUser);

char\* atUserName (Af\_user \*user);

Uid\_t atUserUid (Af\_user \*user);

int atUserValid (Af\_user \*user);

## DESCRIPTION

*atScanUser* scans the given string *userName* and tries to derive an AtFS user identification (*resultUser*) from it. It does *not* verify the existence of a corresponding UNIX (/etc/passwd) user entry. Use atUserUid to test that. atScanUser understands the following formats:

- *user*

  When the string does not contain an at sign, it is considered to be a plain user name from the current host and domain.

- *user@host*

  In the case that the part after the at sign doe not contain a period, it is assumed to be a hostname. Domain is the current domain.

- *user@host.domain*

  This format can only be recognized, when the given domain is equal to the current domain, and the hostname remains as *rest* between the at sign and domain name.

- *user@domain*

  An user identification string with a domain name different to the local domain is treated as user@domain, although this might be wrong.

*atUserName* returns a string of the form *user@domain* generated from the given *user* structure. If no domain name is given in the structure, it returns *user@host* instead. With no host and no domain name, just *user* is returned. The result string resides in static memory and will be overwritten on subsequent calls.

*atUserUid* tries to map the given *user* structure to a UNIX user identification. It returns the uid on success, -1 otherwise.

*atUserValid* checks the given *user* structure for plausibility. It returns FALSE on fauilure, a non null value on success.
