---
name: "user"
section: "3bobcat"
platform: "linux"
package: "libbobcat-dev"
version: "6.07.01-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/user"
---

# user(3bobcat)

Provides the /etc/passwd info of the current user

## NAME

FBB::User - Provides the */etc/passwd* info of the current user

## SYNOPSIS

**#include \<bobcat/user\>**\
 Linking option: *-lbobcat*

## DESCRIPTION

This class retrieves the information of the current user from the information in */etc/passwd*. The class is a simple wrapper class around the [**getpwent**(3)](/getpwent/3.md) function.

## NAMESPACE

**FBB**\
 All constructors, members, operators and manipulators, mentioned in this man-page, are defined in the namespace **FBB**.

## INHERITS FROM

\-

## CONSTRUCTORS

- o

  **User()**:\
   The default constructor determines the current user’s data. This constructor throws an *Exception* exception if it did not properly complete because the current user name could not be found in */etc/passwd*.

-

  - o

  **User(size\_t uid)**:\
   The data of the user whose user-id is *uid* are determined. If the data could not be found an *Exception* is thrown.

-

  - o

  **User(std::string const &name)**:\
   The data of the user whose user-name is *name* are determined. If the data could not be found an *Exception* is thrown.

Copy and move constructors (and assignment operators) are available.

## MEMBER FUNCTIONS

- o

  **size\_t eGroupid() const**:\
   Returns the user’s *effective* group-id.

- o

  **size\_t eUserid() const**:\
   Returns the user’s *effective* user-id.

- o

  **size\_t groupid() const**:\
   Returns the user’s group-id.

- o

  **std::string homedir() const**:\
   Returns the user’s home directory (including a trailing */*).

- o

  **bool inGroup(size\_t gid, bool useEffective = true) const**:\
   Returns *true* if the current user is a member of group *gid*, otherwise *false* is returned. The user’s effective group id is also checked if *useEffective* is specified as *true* (which is provided as default function argument).

- o

  **std::string name() const**:\
   Returns the user’s user-name.

- o

  **std::string password() const**:\
   Returns the user’s encrypted password. But see also the **BUGS** section.

- o

  **std::string realname() const**:\
   Returns the user’s real name, as listed in the */etc/passwd*’s *gecos* field.

- o

  **std::string shell() const**:\
   Returns the user’s shell.

- o

  **size\_t userid() const**:\
   Returns the user’s user-id.

## EXAMPLE

```
#include <bobcat/user>
#include <iostream>
using namespace std;
using namespace FBB;
int main()
{
    User  user;
    cout << "\n"
        "name       : " << user.name()      << "\n" <<
        "password   : " << user.password()  << "\n" <<
        "user id    : " << user.userid()    << "\n" <<
        "group id   : " << user.groupid()   << "\n" <<
        "real name  : " << user.realname()  << "\n" <<
        "home dir   : " << user.homedir()   << "\n" <<
        "shell      : " << user.shell()     << "\n" << endl;
}
```

## FILES

*bobcat/user* - defines the class interface

## SEE ALSO

[**bobcat**(7)](/bobcat/7.md), [**getpwent**(3)](/getpwent/3.md)

## BUGS

If the user is a member of multiple groups, only the group id listed in */etc/passwd* is returned by **groupid()**.

If shadow passwording is used, the string returned by **password()** will probably not contain the encrypted password.

## BOBCAT PROJECT FILES

- o

  *https://fbb-git.gitlab.io/bobcat/*: gitlab project page;

Debian Bobcat project files:

- o

  *libbobcat6*: debian package containing the shared library, changelog and copyright note;

- o

  *libbobcat-dev*: debian package containing the static library, headers, manual pages, and developer info;

## BOBCAT

Bobcat is an acronym of \`Brokken’s Own Base Classes And Templates’.

## COPYRIGHT

This is free software, distributed under the terms of the GNU General Public License (GPL).

## AUTHOR

Frank B. Brokken (**f.b.brokken@rug.nl**).
