| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Hit an assert if folks add env vars but don't increase the env var array
size.
|
|
|
|
|
|
|
|
| |
The CK database shall be readable by the D-Bus daemon which runs under
its own user id hence make sure it is readable for non-root processes.
To make sure this leaks no information this drops the session cookie
from the database.
|
| |
|
| |
|
| |
|
|
|
|
| |
We don't want scripts going into lib64...
|
|
|
|
|
|
|
|
| |
Linux audit session id support. Still TODO:
* determine if session id should be hidden
* export to bus
* add to event log
* figure out how to add it to non-generated sessions
|
|
|
|
| |
Also make criticals fatal when starting with --debug.
|
|
|
|
|
|
|
|
|
|
| |
Fixes two bugs I found in the code. The first is that
we need some NULL protection around the g_strdup_printf
where we build CK_SESSION_X11_DISPLAY to avoid a crash.
Second, I noticed a bug in the ck_unix_pid_get_hash
function where we weren't parsing the data right and
causing the hash to not get set properly.
|
|
|
|
|
|
|
|
| |
This feature is useful for programs wanting to read the database
without going through the D-Bus interface. This is sometimes desirable
when both performance and runtime dependencies are important.
For security reasons the file is only readable for the super user.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds support for running programs when
1. A session is added
2. A session is removed
3. The activity of a session changes
Executables with the suffix .ck in the directories
$sysconfdir/ConsoleKit/run-session.d
(typically /etc/ConsoleKit/run-session.d)
and
$libdir/ConsoleKit/run-session.d
(typically /usr/lib/ConsoleKit/run-session.d)
will be run on each event. The former directory is meant to be used
for the system administrator and the latter is meant to be used by
programs.
Only when all programs in these directories have run, ConsoleKit will
resume event processing and e.g. broadcast the event on the system
message bus. Hence, this new mechanism can be used to safely
(e.g. without race conditions) perform operations on certain resources
before programs in the desktop session are told they may use them. The
obvious example here is managing ACL's on /dev such that certain
device nodes are only available to users in local and active sessions.
The environment of the program launched is the environment that the
ConsoleKit daemon was launched with and also the following variables
(variables tagged with [*] may not be set).
CK_SESSION_ID
CK_SESSION_TYPE
CK_SESSION_SEAT_ID
CK_SESSION_USER_UID
CK_SESSION_DISPLAY_DEVICE [*]
CK_SESSION_X11_DISPLAY_DEVICE [*]
CK_SESSION_X11_DISPLAY [*]
CK_SESSION_REMOTE_HOST_NAME [*]
CK_SESSION_IS_ACTIVE
CK_SESSION_IS_LOCAL
corresponding to the properties of a Session object in question. Each
program is passed exactly one parameter that can assume one of the
following values:
- session_active_changed: is_active changed
- session_added: the session was added
- session_removed: the session was removed
As a safety hatch, there is a timeout of 15 seconds for each program;
if it hasn't exited within 15 seconds, the daemon will send it a
SIGTERM signal, and move on to the next program. The daemon is still
responsive when the program is running - this is to ensure that the
program itself can call into the org.freedesktop.ConsoleKit service.
|
| |
|
| |
|
|
|
|
|
| |
Also add ability to toggle debugging when SIGUSR1 is
received.
|
|
|
|
|
|
|
|
| |
Now that we have two properties (one deprecated) that refer
to the same thing we can't require that they are both set
during the constructor. Furthermore, we can't require
that either of them are set because we don't know which
will be used.
|
|
|
|
|
| |
Also added deprecated notes to the docs. New code should
be using GetUnixUser instead of GetUser etc.
|
| |
|
| |
|
|
|
|
|
| |
Rework the parameter parsing so it is a bit more robust and so that
parameters can get passed to the constructor.
|
| |
|
|
|
|
|
|
| |
In certain cases it is necessary to distinguish the display-device
(tty of session leader) from the x11-display-device (tty of xorg
process).
|
|
|
|
| |
Copy the iso8601 function from glib to support versions less than 2.12.
|
| |
|
|
|
|
|
| |
This makes it easier to use from C code. Also fix a bug where
we weren't emitting the argument in the idle-hint-changed signal.
|
|
|
|
|
| |
Rename GetIdle to GetIdleHint (etc) to make it clear that these
are not authoritative properties.
|
|
|
|
|
| |
Added GetCreationTime and GetIdleSince methods. And added the
output to the list-sessions tool.
|
|
|
|
|
| |
Add the GetIdle and SetIdle methods, and the IdleChanged signal.
SetIdle is restricted to the uid of the session in question.
|
| |
|
| |
|
| |
|
|
|