KDEsuClient Class Reference

`#include <client.h>`

## Public Member Functions

int | exec (const QCString &command, const QCString &user, const QCString &options=0, const QCStringList &env=QCStringList())
int | exitCode ()
int | setPass (const char *pass, int timeout)
int | setHost (const QCString &host)
int | setPriority (int priority)
int | setScheduler (int scheduler)
int | delCommand (const QCString &command, const QCString &user)
int | setVar (const QCString &key, const QCString &value, int timeout=0, const QCString &group=0)
QCString | getVar (const QCString &key)
QValueList< QCString > | getKeys (const QCString &group)
bool | findGroup (const QCString &group)
int | delVar (const QCString &key)
int | delVars (const QCString &special_key)
int | delGroup (const QCString &group)
int | ping ()
int | stopServer ()
int | startServer ()
bool | isServerSGID ()

## Detailed Description

A client class to access kdesud, the KDE su daemon.

Kdesud can assist in password caching in two ways:

- For high security passwords, like for su and ssh, it executes the password requesting command for you. It feeds the password to the command, without ever returning it to you, the user. The daemon should be installed setgid nogroup, in order to be able to act as an inaccessible, trusted 3rd party. See exec, setPass, delCommand.

- For lower security passwords, like web and ftp passwords, it can act as a persistent storage for string variables. These variables are returned to the user, and the daemon doesn't need to be setgid nogroup for this. See setVar, delVar, delGroup.

Definition at line 50 of file client.h.

## Member Function Documentation

int KDEsuClient::delCommand | ( | const QCString & | command,
|  | const QCString & | user
| ) |  |

Remove a password for a user/command.

Parameters

  command | The command.
  user | The user.

Returns
  zero on success, -1 on an error

Definition at line 268 of file client.cpp.

int KDEsuClient::delGroup | ( | const QCString & | group | ) |

Delete all persistent variables in a group.

Parameters

  group | the group name. See setVar.

Returns

Definition at line 353 of file client.cpp.

int KDEsuClient::delVar | ( | const QCString & | key | ) |

Delete a persistent variable.

Parameters

  key | The name of the variable.

Returns
  zero on success, -1 on failure.

Definition at line 345 of file client.cpp.

int KDEsuClient::delVars | ( | const QCString & | special_key | ) |

Delete all persistent variables with the given key.

A specicalized variant of delVar(QCString) that removes all subsets of the cached varaibles given by `key`. In order for all cached variables related to this key to be deleted properly, the value given to the `group` argument when the setVar function was called, must be a subset of the argument given here and the key

Note
  Simply supplying the group key here WILL not necessarily work. If you only have a group key, then use delGroup instead.

Parameters

  special_key | the name of the variable.

Returns
  zero on success, -1 on failure.

Definition at line 361 of file client.cpp.

int KDEsuClient::exec | ( | const QCString & | command,
|  | const QCString & | user,
|  | const QCString & | options = `0`,
|  | const QCStringList & | env = `QCStringList()`
| ) |  |

Lets kdesud execute a command.

If the daemon does not have a password for this command, this will fail and you need to call setPass().

Parameters

  command | The command to execute.
  user | The user to run the command as.
  options | Extra options.
  env | Extra environment variables.

Returns
  Zero on success, -1 on failure.

Definition at line 224 of file client.cpp.

int KDEsuClient::exitCode | ( |  | ) |

Wait for the last command to exit and return the exit code.

Returns
  Exit code of last command, -1 on failure.

Definition at line 374 of file client.cpp.

bool KDEsuClient::findGroup | ( | const QCString & | group | ) |

Returns true if the specified group exists is cached.

Parameters

  group | the group key

Returns
  true if the group is found

Definition at line 335 of file client.cpp.

QValueList< QCString > KDEsuClient::getKeys | ( | const QCString & | group | ) |

Gets all the keys that are membes of the given group.

Parameters

  group | the group name of the variables.

Returns
  a list of the keys in the group.

Definition at line 302 of file client.cpp.

QCString KDEsuClient::getVar | ( | const QCString & | key | ) |

Get a persistent variable.

Parameters

  key | The name of the variable.

Returns
  Its value.

Definition at line 292 of file client.cpp.

bool KDEsuClient::isServerSGID | ( |  | ) |

Returns true if the server is safe (installed setgid), false otherwise.

Definition at line 401 of file client.cpp.

int KDEsuClient::ping | ( |  | ) |

Ping kdesud.

This can be used for diagnostics.

Returns
  Zero on success, -1 on failure

Definition at line 369 of file client.cpp.

int KDEsuClient::setHost | ( | const QCString & | host | ) |

Set the target host (optional).

Definition at line 246 of file client.cpp.

int KDEsuClient::setPass | ( | const char * | pass,
|  | int | timeout
| ) |  |

Set root's password, lasts one session.

Parameters

  pass | Root's password.
  timeout | The time that a password will live.

Returns
  Zero on success, -1 on failure.

Definition at line 214 of file client.cpp.

int KDEsuClient::setPriority | ( | int | priority | ) |

Set the desired priority (optional), see StubProcess.

Definition at line 254 of file client.cpp.

int KDEsuClient::setScheduler | ( | int | scheduler | ) |

Set the desired scheduler (optional), see StubProcess.

Definition at line 261 of file client.cpp.

int KDEsuClient::setVar | ( | const QCString & | key,
|  | const QCString & | value,
|  | int | timeout = `0`,
|  | const QCString & | group = `0`
| ) |  |

Set a persistent variable.

Parameters

  key | The name of the variable.
  value | Its value.
  timeout | The timeout in seconds for this key. Zero means no timeout.
  group | Make the key part of a group. See delGroup.

Returns
  zero on success, -1 on failure.

Definition at line 277 of file client.cpp.

int KDEsuClient::startServer | ( |  | ) |

Try to start up kdesud.

Definition at line 417 of file client.cpp.

int KDEsuClient::stopServer | ( |  | ) |

Stop the daemon.

Definition at line 383 of file client.cpp.

The documentation for this class was generated from the following files:

- client.h
- client.cpp

KDE Home | KDE Accessibility Home | Description of Access Keys