24. 控制台访问

当普通用户(非根用户)在本地登录到计算机上,他们被授予两类特殊权限:

  1. 他们可以运行某些通常无法运行的程序

  2. 他们可以访问某些通常无法访问的文件(通常是用来访问磁盘、光盘等的特殊设备文件)

由于单个计算机有多个控制台,多位用户可以在同一时间内在计算机上本地登录,其中之一必定在访问这些文件的角逐中“获胜”。第一个在控制台登录的用户完全拥有那些文件。一旦第一个用户注销,下一个登录的用户就会拥有这些文件。

与之相反,每个在控制台登录的用户都被允许运行通常只限于根用户的程序来完成任务。如果 X 在运行,这些行动可以被包括在图形化用户界面的菜单内。在该发行版本中,可从控制台访问的程序包括 haltpoweroff、和 reboot

24.1. 禁用通过 Ctrl-Alt-Del 关机

按照默认设置,/etc/inittab 文件指定你的系统可在控制台使用 [Ctrl]-[Alt]-[Del] 键组合来关闭并重启系统。如果你想完全禁用这项能力,你需要把 /etc/inittab 文件中下面一行变成注释,方法是在句前加一个井号(#):

ca::ctrlaltdel:/sbin/shutdown-t3-rnow

另外,你可能只是想授予个别非根用户从控制台使用 [Ctrl]-[Alt]-[Del] 来重启系统的权利。你可以通过下面的步骤来把该特权仅限定给某些用户使用:

  1. 在上面显示的 /etc/inittab 的那一行中添加 -a 选项,如下所示:

    ca::ctrlaltdel:/sbin/shutdown -a -t3 -r now

    -a 标志通知 shutdown 命令去寻找 /etc/shutdown.allow 文件,我们在下一步骤中将会创建该文件。

  2. /etc 目录中创建一个叫做 shutdown.allow 的文件。shutdown.allow 文件应该列出允许使用 [Ctrl]-[Alt]-[Del] 来关闭系统的用户名。 /etc/shutdown.allow 文件使用列表格式,每行列出一名用户,如下所示:

    stephen
    jack
    sophie

根据以上 shutdown.allow 文件的例子,stephen、jack、和 sophie 被允许使用 [Ctrl]-[Alt]-[Del] 来从控制台关闭系统。当这个键组合被使用时,/etc/inittab 中的 shutdown -a 就会查看 /etc/shutdown.allow 中列出的用户(或根用户)是否在虚拟控制台上登录了。如果登录者是其中之一,系统关闭就会继续;否则,系统控制台上就会显示出错误消息。

关于 shutdown.allow 的详细信息,请参阅 shutdown 的说明书(man)页。