| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Deny first and then allow. Add a simple test
script to check method access policy.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Also enable reporting this information with ck-history.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch makes polkit an optional dependency. If present
it builds with it. If not, polkit support is disabled.
This patch also adds a --enable-rbac-shutdown=<key> option.
If set, then ConsoleKit will allow shutdown/reboot if the
user has the RBAC key authorization defined. For example,
since the GDM GUI program runs as the "gdm" user, setting
the key for the "gdm" user allows the login program to
shutdown and reboot via ConsoleKit.
Also this patch modifies the tools/solaris/ck-system-restart
and tools/solaris/ck-system-stop scripts to call "/sbin/init 6"
and "/sbin/init 5", which are the right commands for Solaris.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Add Stop and Restart methods to the Manager object. We'll rename the
Manager object to System in the near future. Use libpolkit to
determine authorization.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ConsoleKit tries to find a valid fd it can issue
VT_WAITACTIVE against by iterating across a file list and issuing
ioctl(fd, KDGKBTYPE, &arg), then checking the return value. Not all console
devices support this ioctl, so in some cases it never finds a valid file
descriptor to use, and from then on never marks any session active.
We probably ought to be using something like VT_GETSTATE instead of a keyboard
ioctl, but that's not sufficient to fix it. One fix that seems to work, though
I'm not completely sure if it's the best answer, is to add /dev/tty0 to the list
of files to try before /dev/console.
|
| |
|
| |
|
|
|
|
| |
This will make it easier to dump/restore.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Refactor some event logging code to share with ck-history. At the
moment the command only prints the events.
|
|
|
|
|
|
|
|
| |
This adds the ability to log events to a history file. One idea
is to be able to provide wtmp like functionality. The next step
is to add a seat-aware "last" command. This will be very useful
for creating graphical logins that remember the most recent/frequent
logins.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
We should remove the session or seat from the lists before
calling out or emitting a signal. We steal from the lists
and then unref the objects when the signal is complete.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
| |
In FreeBSD the device number is always one less than the VT number (e.g.
VT 1 is /dev/ttyv0). Account for this. Also, fix up reading console
entries from /etc/ttys, and make sure the full TTY device name is returned
for a given process stat.
|
| |
|
|
|
|
| |
Based on patch from Joe Marcus Clarke
|
| |
|
|
|
|
|
|
| |
Allow this test to properly determine the current tty device.
Signed-off-by: Florent Thoumie <flz@FreeBSD.org>
|
|
|
|
|
|
|
| |
Fix make dist by making sure ck-sysdeps-freebsd.c is available on all
platforms.
Signed-off-by: Florent Thoumie <flz@FreeBSD.org>
|
|
|
|
|
|
|
|
|
| |
Restore copyright in ck-sysdeps-freebsd.c since Marcus
"used a lot of the existing functions".
Submitted by: marcus
Signed-off-by: Florent Thoumie <flz@FreeBSD.org>
|
|
|
|
|
|
| |
Submitted by: marcus
Signed-off-by: Florent Thoumie <flz@FreeBSD.org>
|
|
|
|
|
|
|
|
|
|
| |
- Add Marcus' FreeBSD backend for ConsoleKit. Compiles fine but
test-vt-monitor doesn't seem to work correctly.
- Remove TODO entry.
Submitted by: marcus
Signed-off-by: Florent Thoumie <flz@FreeBSD.org>
|
|
|
|
|
|
|
|
| |
- Add some ifdef's to make the code compile.
- Add ck-sysdeps-freebsd.c, based on the Linux version, which
means it's using linprocfs right now.
Signed-off-by: Florent Thoumie <flz@FreeBSD.org>
|
| |
|
| |
|
|
|
|
| |
based on patch from Brian Cameron.
|
| |
|
| |
|
| |
|
| |
|