To make other applications accessible to console users, a bit
more work is required.
First of all, console access only works
for applications which reside in /sbin/
or /usr/sbin/, so the application that
you wish to run must be there. After verifying that, do the
following steps:
-
Create a link from the name of your application, such as our
sample foo
program, to the /usr/bin/consolehelper
application:
cd /usr/bin
ln -s consolehelper foo
|
-
Create the file /etc/security/console.apps/foo:
touch /etc/security/console.apps/foo
|
-
Create a PAM configuration file for the foo service in
/etc/pam.d/. An easy way to do this is to
start with a copy of the halt service's PAM configuration file, and
then modify the file if you want to change the behavior:
cp /etc/pam.d/halt /etc/pam.d/foo
|
Now, when /usr/bin/foo is executed, consolehelper is called, which authenticates the
user with the help of /usr/sbin/userhelper. To authenticate the user,
consolehelper asks for the user's password
if /etc/pam.d/foo is a copy of /etc/pam.d/halt (otherwise, it does precisely what
is specified in /etc/pam.d/foo) and then runs /usr/sbin/foo with
root permissions.
In the PAM configuration file, an application can be configured
to use the pam_timestamp module to
remember (or cache) a successful authentication attempt. When an
application is started and proper authentication is provided (the
root password), a timestamp file is created. By default, a
successful authentication is cached for five minutes. During this
time, any other application that is configured to use pam_timestamp and run from the same session is
automatically authenticated for the user — the user does not
have to enter the root password again.
This module is included in the pam
package. To enable this feature, the PAM configuration file in
etc/pam.d/ must include the following
lines:
auth sufficient /lib/security/pam_timestamp.so
session optional /lib/security/pam_timestamp.so
|
The first line that begins with auth should be after any other auth sufficient lines, and the line that
begins with session should be
after any other session
optional lines.
If an application configured to use pam_timestamp is successfully authenticated from
the (on the Panel), the
icon is displayed in
the notification area of the panel if you are running the GNOME or
KDE desktop environment. After the authentication expires (the
default is five minutes), the icon disappears.
The user can select to forget the cached authentication by
clicking on the icon and selecting the option to forget
authentication.