22 #include <sbuild/sbuild-config.h> 23 #include <sbuild/sbuild-custom-error.h> 24 #include <sbuild/sbuild-environment.h> 25 #include <sbuild/sbuild-types.h> 26 #include <sbuild/sbuild-util.h> 31 #include <sys/types.h> 97 typedef std::shared_ptr<auth>
ptr;
108 auth (std::string
const& service_name);
481 if (newauth > oldauth)
std::string const & get_home() const
Get the home directory.
Definition: sbuild-auth.cc:238
string_list command
The command to run.
Definition: sbuild-auth.h:504
std::string home
The home directory.
Definition: sbuild-auth.h:506
Debian source builder components.
Definition: sbuild-auth-null.h:24
environment const & get_user_environment() const
Get the user environment to use in the session.
Definition: sbuild-auth.cc:262
auth(std::string const &service_name)
The constructor.
Definition: sbuild-auth.cc:72
std::string rgroup
The group name requesting authentication.
Definition: sbuild-auth.h:520
PAM error.
Definition: sbuild-auth.h:89
void set_wd(std::string const &wd)
Set the working directory.
Definition: sbuild-auth.cc:250
std::string user
The user name to run as.
Definition: sbuild-auth.h:502
virtual void setupenv()
Import the user environment into PAM.
Definition: sbuild-auth.cc:372
virtual void stop()
Stop the PAM system.
Definition: sbuild-auth.cc:362
gid_t get_gid() const
Get the gid of the user.
Definition: sbuild-auth.cc:170
gid_t get_rgid() const
Get the "remote gid" of the user.
Definition: sbuild-auth.cc:339
virtual void start()
Start the PAM system.
Definition: sbuild-auth.cc:357
Authentication handler.
Definition: sbuild-auth.h:69
virtual environment get_auth_environment() const =0
Get the PAM environment.
Container of environment variables.
Definition: sbuild-environment.h:38
const std::string service
The PAM service name.
Definition: sbuild-auth.h:496
void set_user_environment(char **environment)
Set the user environment to use in the session.
Definition: sbuild-auth.cc:268
string_list const & get_command() const
Get the command to run in the session.
Definition: sbuild-auth.cc:226
Authentication is required by the user.
Definition: sbuild-auth.h:76
uid_t uid
The uid to run as.
Definition: sbuild-auth.h:498
std::string ruser
The user name requesting authentication.
Definition: sbuild-auth.h:518
gid_t gid
The gid to run as.
Definition: sbuild-auth.h:500
void set_ruser(uid_t ruid)
Set the "remote" name of the user.
Definition: sbuild-auth.cc:113
void set_user(uid_t uid)
Set the name of the user.
Definition: sbuild-auth.cc:182
Authentication is not required.
Definition: sbuild-auth.h:75
uid_t get_uid() const
Get the uid of the user.
Definition: sbuild-auth.cc:164
std::string shell
The user shell to run.
Definition: sbuild-auth.h:510
PAM failed to shut down cleanly.
Definition: sbuild-auth.h:90
std::string const & get_service() const
Get the PAM service name.
Definition: sbuild-auth.cc:107
uid_t ruid
The uid requesting authentication.
Definition: sbuild-auth.h:514
environment get_complete_environment() const
Get the complete environment.
Definition: sbuild-auth.cc:313
std::string const & get_wd() const
Get the working directory.
Definition: sbuild-auth.cc:244
std::string wd
The directory to run in.
Definition: sbuild-auth.h:508
std::vector< std::string > string_list
A string vector.
Definition: sbuild-types.h:38
Custom error.
Definition: sbuild-custom-error.h:32
static status change_auth(status oldauth, status newauth)
Set new authentication status.
Definition: sbuild-auth.h:477
Authentication has failed.
Definition: sbuild-auth.h:77
virtual void authenticate(status auth_status)
Perform PAM authentication.
Definition: sbuild-auth.cc:367
environment get_minimal_environment() const
Get the minimal environment.
Definition: sbuild-auth.cc:280
uid_t get_ruid() const
Get the "remote uid" of the user.
Definition: sbuild-auth.cc:333
virtual void open_session()
Open a PAM session.
Definition: sbuild-auth.cc:392
virtual void cred_delete()
Use PAM to delete credentials.
Definition: sbuild-auth.cc:387
status
Authentication status.
Definition: sbuild-auth.h:73
std::string const & get_shell() const
Get the name of the shell.
Definition: sbuild-auth.cc:256
Authentication failed.
Definition: sbuild-auth.h:86
virtual void close_session()
Close a PAM session.
Definition: sbuild-auth.cc:397
System passwd database entry.
Definition: sbuild-util.h:718
error_code
Error codes.
Definition: sbuild-auth.h:81
std::shared_ptr< auth > ptr
A shared_ptr to a auth object.
Definition: sbuild-auth.h:97
virtual bool is_initialised() const =0
Check if PAM is initialised (i.e.
environment user_environment
The user environment to set.
Definition: sbuild-auth.h:512
User not found.
Definition: sbuild-auth.h:84
PAM was already initialised.
Definition: sbuild-auth.h:88
Authorisation failed.
Definition: sbuild-auth.h:87
std::string const & get_rgroup() const
Get the "remote" name of the group.
Definition: sbuild-auth.cc:351
gid_t rgid
The gid requesting authentication.
Definition: sbuild-auth.h:516
virtual void account()
Do PAM account management (authorisation).
Definition: sbuild-auth.cc:377
std::string const & get_ruser() const
Get the "remote" name of the user.
Definition: sbuild-auth.cc:345
Group not found.
Definition: sbuild-auth.h:85
std::string const & get_user() const
Get the name of the user.
Definition: sbuild-auth.cc:176
virtual ~auth()
The destructor.
Definition: sbuild-auth.cc:93
custom_error< error_code > error
Exception type.
Definition: sbuild-auth.h:94
void set_command(string_list const &command)
Set the command to run in the session.
Definition: sbuild-auth.cc:232
virtual void cred_establish()
Use PAM to establish credentials.
Definition: sbuild-auth.cc:382
Failed to get hostname.
Definition: sbuild-auth.h:83