blob: 9b582daa31a78ed66c730705bed026032872fd82 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
<chapter id="terms">
<title>Terminology</title>
<sect1>
<title>Session</title>
<para>
A session is a collection of all processes that share knowledge of a
secret. In the typical (or ideal) case, these processes all originate
from a single common ancestor.
</para>
<para>
As an implementation detail, for now, this secret should be stored in
the process environment by the session leader under the name
XDG_SESSION_COOKIE. When and if we are able to take advantage of a
mechanism in the underlying system to store session registration
information - we will. However, such a mechanism is not known at the
present time.
</para>
<para>
Using an environment variable does have certain advantages. For one,
it is quite easy for a process to opt-out of a Session by simply
unsetting the XDG_SESSION_COOKIE variable.
</para>
<para>
Limitations of using an environment variable implementation include
not being able to strictly limit visibility of the secret to a particular
process ancestry. So, it is not possible to enforce session boundaries
other than on a per-user basis. For example, we don't yet have a way
to prevent a process from moving between sessions owned by the same
user.
</para>
</sect1>
<sect1>
<title>Session leader</title>
<para>
The session leader is the process that requests that a new session be
opened. It does this by connecting to the D-Bus system bus and using
either org.freedesktop.ConsoleKit.Manager.OpenSession() or
org.freedesktop.ConsoleKit.Manager.OpenSessionWithParameters(). The session
that it registers will be remain open until the connection to the system
bus is lost or it calls org.freedesktop.ConsoleKit.Manager.CloseSession().
</para>
<para>
The session leader is the only process for which CloseSession() will
be allowed.
</para>
</sect1>
<sect1>
<title>Seat</title>
<para>
A seat is a collection of sessions and a set of hardware (usually at
least a keyboard and mouse). Only one session may be active on a
seat at a time.
</para>
<para>
At the present time, all Sessions that are considered "local" to
a system will be added the the first Seat and every other Session
will be added to its own Seat.
</para>
<para>
True, hardware, multi-seat capabilities will be added in a later release.
</para>
</sect1>
</chapter>
|