48.4.7. PAM and Device Ownership
In Red Hat Enterprise Linux, the first user who logs in at the physical console of the machine can manipulate certain devices and perform certain tasks normally reserved for the root user. This is controlled by a PAM module called
220.127.116.11. Device Ownership
When a user logs in to a Red Hat Enterprise Linux system, the
pam_console.somodule is called by
loginor the graphical login programs, gdm, kdm, and xdm. If this user is the first user to log in at the physical console — referred to as the console user — the module grants the user ownership of a variety of devices normally owned by root. The console user owns these devices until the last local session for that user ends. After this user has logged out, ownership of the devices reverts back to the root user.
The devices affected include, but are not limited to, sound cards, diskette drives, and CD-ROM drives.
This facility allows a local user to manipulate these devices without obtaining root access, thus simplifying common tasks for the console user.
You can modify the list of devices controlled by
pam_console.soby editing the following files:
You can change the permissions of different devices than those listed in the above files, or override the specified defaults. Rather than modify the
50-default.permsfile, you should create a new file (for example,
xx-name.perms) and enter the required modifications. The name of the new default file must begin with a number higher than 50 (for example,
51-default.perms). This will override the defaults in the
If the gdm, kdm, or xdm display manager configuration file has been altered to allow remote users to log in and the host is configured to run at runlevel 5, it is advisable to change the
<xconsole>directives in the
/etc/security/console.permsto the following values:
<console>=tty[0-9][0-9]* vc/[0-9][0-9]* :0\.[0-9] :0 <xconsole>=:0\.[0-9] :0
This prevents remote users from gaining access to devices and restricted applications on the machine.
If the gdm, kdm, or xdm display manager configuration file has been altered to allow remote users to log in and the host is configured to run at any multiple user runlevel other than 5, it is advisable to remove the
<xconsole>directive entirely and change the
<console>directive to the following value: