当一个用户登录到一个 红帽企业 Linux 系统时,pam_console.so 模块会被 login 或图形化的登录程序(gdm、kdm 和 xdm)调用。如果这个用户是第一个通过物理控制台登录的用户 — 称为 控制台用户 — 模块会把一些通常的拥有者是根用户的设备的所有权分配给这个用户。这个控制台用户会拥有这些设备,直到这个用户的最后一个本地会话结束。在这个用户退出系统后,这些设备的拥有者身份则被交回给根用户。
这些设备包括,但不限于,声卡、软驱和 CD-ROM 驱动器。
这个设施允许一个本地用户在不需要获得根权限的情况下来使用这些设备,因此可以简化控制台用户完成一些常用任务的程序。
你可以通过编辑以下文件来修改由 pam_console.so 控制的设备列表:
/etc/security/console.perms
/etc/security/console.perms.d/50-default.perms
你可以修改在以上文件中列出的不同设备的访问权限,或覆盖已经指定的默认设置。你应该创建一个新文件(如 xx-name.perms)并输入需要修改的值,而不是修改 50-default.perms 文件。新的默认文件的文件名必须以一个大于 50 的数值开始,如 51-default.perms。这样会覆盖 50-default.perms 文件的默认值。
如果 gdm、kdm 或 xdm 的配置文件已经被修改来允许远程用户登录,而且 主机被配置为使用运行级别 5,建议你把 /etc/security/console.perms 文件的 <console> 和 <xconsole> 命令项的值改为:
<console>=tty[0-9][0-9]* vc/[0-9][0-9]* :0\.[0-9] :0 <xconsole>=:0\.[0-9] :0
这将防止远程用户获得设备的访问权,并限制他们在该机器上对应用程序的使用。
如果 gdm、kdm 或 xdm 的配置文件被修改为允许远程用户登录,并且主机被配置为使用运行级别 5 以外的运行级别,建议你删除 整个 <xconsole> 命令,并把 <console> 命令改为:
<console>=tty[0-9][0-9]* vc/[0-9][0-9]*