可插拔认证模块 系统可以用来给通过控制台登录的用户赋予特殊权限。它被用来使控制台用户可以挂载像软盘这样的设备;通常他们需要成为超级用户才能挂载磁盘。
PAM 配置文件/etc/security/console.perms包含<console>变量。对于 Red Hat Linux 7.1<console>是正则表达式
图 7-9。默认<console>在console.perms指的是连接的键盘和屏幕
<console>=tty[0-9][0-9]* vc/[0-9][0-9]* :[0-9]\.[0-9] :[0-9] |
在文件后面<console>用户被授予使用一些设备的权限。这是通过在登录和注销时更改设备权限来完成的。
图 7-10。默认设备列表在console.perms
<console> 0660 <floppy> 0660 root.floppy <console> 0600 <sound> 0600 root <console> 0600 <cdrom> 0660 root.disk <console> 0600 <pilot> 0660 root.uucp <console> 0600 <jaz> 0660 root.disk <console> 0600 <zip> 0660 root.disk <console> 0600 <ls120> 0660 root.disk <console> 0600 <scanner> 0600 root <console> 0600 <camera> 0600 root <console> 0600 <memstick> 0600 root <console> 0600 <flash> 0600 root <console> 0600 <fb> 0600 root <console> 0600 <kbd> 0600 root <console> 0600 <joystick> 0600 root <console> 0600 <v4l> 0600 root <console> 0700 <gpm> 0700 root <console> 0600 <mainboard> 0600 root <console> 0600 <rio500> 0600 root |
上面列出了两种类型的设备:一种是连接附加键盘和显示器的人员所需的设备,另一种是允许方便访问设备的设备。配置文件未能区分 第 1.3 节 中提到的逻辑控制台和物理控制台。修改配置文件是为了创建这种区分。
图 7-11。设备在console.perms连接附加键盘和屏幕所需
<console> 0600 <fb> 0600 root <console> 0600 <kbd> 0600 root <console> 0600 <joystick> 0600 root <console> 0600 <v4l> 0600 root <console> 0700 <gpm> 0700 root |
剩余的设备应该被修改为仅允许从串行控制台连接的人员控制。例如,我们不希望在托管地点的非特权用户挂载软盘。为串行控制台定义一个新的控制台类型,例如<sconsole>.
现在修改剩余的条目从<console>到<sconsole>.
图 7-13。剩余设备在console.perms修改为指代串行控制台
<sconsole> 0660 <floppy> 0660 root.floppy <sconsole> 0600 <sound> 0600 root <sconsole> 0600 <cdrom> 0660 root.disk <sconsole> 0600 <pilot> 0660 root.uucp <sconsole> 0600 <jaz> 0660 root.disk <sconsole> 0600 <zip> 0660 root.disk <sconsole> 0600 <ls120> 0660 root.disk <sconsole> 0600 <scanner> 0600 root <sconsole> 0600 <camera> 0600 root <sconsole> 0600 <memstick> 0600 root <sconsole> 0600 <flash> 0600 root <sconsole> 0600 <mainboard> 0600 root <sconsole> 0600 <rio500> 0600 root |