史以来第一次,您可以敲打一下计算机并得到有意义的响应!使用 Linux® 和 Hard Drive Active Protection System(硬盘活动保护系统,HDAPS)内核驱动程序,我们可以访问 Lenovo(以前称为 IBM®)ThinkPads 上的嵌入式加速器,然后处理加速器的数据来读取特定 “敲打” 事件序列(也就是您使用关节敲打笔记本的事件序列),并基于这些敲打事件运行一些命令。双击锁定屏幕,然后敲入密码来解锁。敲打显示屏一次就可以让 MP3 播放器前进一个音轨。这类可能事物是无穷无尽的。
2003 年,IBM 开始发行集成了加速器和相关软件的 ThinkPad 笔记本,以便在笔记本掉到地上时对硬盘进行保护。来自 IBM 和其他地方的黑客已经为 Linux 内核开发了一些模块来利用这些传感器的优点。屏幕显示方向、桌面切换、甚至是游戏控制和实时的笔记本倾斜度 3D 模块现在都已经可以使用了。本文将展示 “敲打代码” 这种新技术和一个简单程序,该程序在检测到特定的敲打代码时会运行一些命令。
使用带有 HDAPS 驱动的已更新的内核,我们就可以用一个简单程序 knockAge 来生成敲打代码了。我们也可以下载并使用一个 Perl 脚本来定制自己的敲打输入环境。
硬件需求
很多在 2003 年以及这以后生产的 IBM(现在是 Lenovo)的 ThinkPads 中都有 HDAPS 硬件。如果您不确定自己的硬件配置,可以检查 Lenovo 的 Web 站点上关于您自己型号的机器的技术细节。如果您的机器上没有 ThinkPad,那么这段代码可能无法在您的笔记本上正常工作。
本文是在 x86 体系架构上编写的。本文中的代码是在 ThinkPad T42p 的两个不同模块上进行开发和测试的。有关 ThinkPad 硬件的链接。
如果您有一台 Apple MacBook,那么您可能也有这种加速器,并且可以使用相同的方法,通过内核访问它们。然而,本文中的代码并没有在 Apple 硬件上进行测试。
软件要求
HDAPS 驱动程序必须包括在内核中才能启用对加速器的访问。试图对现有内核增加补丁也不会获得成功,因此我们建议从自己喜欢的镜像站点上下载最新的内核。新内核发行版中已经包含了对 HDAPS 驱动程序的支持。
启动内核配置选择程序,并在配置中包含 HDAPS 驱动程序。HDAPS 驱动程序位于 Device Drivers > Hardware Monitoring Support > IBM Hard Drive Active Protection System (hdaps) 选项中。更多的内核配置和安装过程已经超出了本文的范围,但是在 Web 站点上有很多教程可以提供具体的帮助;有关可以帮助我们入门的链接。
本文是在 2.6.15.1 版本的内核上进行开发和测试的。
创建简单的敲打序列
从 下载 一节的链接中下载源代码,并从中找到 knockAge.pl 脚本。这就是让我们可以创建敲打序列的主要 Perl 程序,它还允许监听特殊的敲打序列并运行命令。下面让我们来介绍一下这个用户空间程序的用法,以及 knockAge.pl 程序的配置,然后再对这个函数进行回顾。
使用下面的命令运行 knockAge.pl 程序:
perl knockAge.pl -c
这会启动 Perl 程序来监听敲打事件并记录下它们之间的间距以供将来使用。一旦程序开始运行之后,对笔记本进行的敲打操作就会产生效果。我们并不需要在物理上移动自己的 ThinkPad 来注册敲打事件,如果 ThinkPad 在一个平面上,只要对其进行一些移动和滑行即可。我建议您用左右握住 ThinkPad 左边接近连接轴的地方,同时用右手在距离 LCD 底部 3 英寸的地方敲打显示屏即可。
体验不同的敲打幅度和力度,从而了解 knockAge 程序能够捕获的事件判断率。对于创建复杂的敲打事件来说,这非常重要。
第一次真正尝试敲打应该非常简单,两次双击之间停留 0.5 秒,然后再次运行 perl knockAge.pl -c,在看到 “enter a knock sequence” 时稳定地敲打 LCD 边上两次,中间停留 0.5 秒。在 4 秒之后会自动超时(这是可以配置的),您所敲打的序列会被打印出来,这类似于下面的例子:
cassia:x:502:502::/home/cassia:/bin/bash
#silent:x:600:100::/home/silent/bin/bash ←在账号最前面加上“#”
2,删除账号
当确定用户已不再需要使用本系统,或列为拒绝来往用户时,可以考虑将该账号完全删除。
1,使用userdel命令或编辑passwd与shadow文件
使用userdel命令可以很方便地将用户删除,范例如下:
[root@free root]# userdel –r silent
加上参数“-r”表示删除账号时,一并将该账号的用户的用户目录及邮件文件都删除。若不加“-r”参数,则只会删除而保留该账号的相关目录。
当然也可编辑passwd和shadow文件,直接将账号删除,随后删除账号该账号的主目录与邮件目录。
删除后台执行程序
为避免用户还有程序遗留在系统中,请执行下列命令检查后台执行的程序,并把在后台中执行的程序删除:
[root@free root]# ps aux grep “silent”
删除计时器
此外还有一点相当重要,就是要将用户所设置的计时器去掉。在Linux系统中,用户可以自行设置计时器,时间一到就自动执行某些命令。这些计时器所执行的命令,有的可能会影响系统的安全与保密,因此必须特别注意用户所留下来的计时器。执行下列命令检查计时器:
[root@free root]# crontab –u silent -1
当发现用户自行设置的计时器还在系统中时,直接执行crontab –u silent –r 命令,便能删除该用户的计时器文件。
六,创建组
创建组的方法和创建账号几乎相同,且过程更简单。可执行groupadd命令来创建组。例如要创建GID编号700、名称为staff的组:
[root@free root]# groupadd –g 700 staff ← 执行命令
[root@free root]# more/etc/group ← 查看结果
…
Lambert:x:501
Cassia:x:502
Staff:x:700 ← 加进来了
参数-g用来指定组标识符,0~499则留给系统使用。若省略此参数,系统会自动指定GID,使用从编号500开始尚未用掉的号码。
七,删除组
当不在需要某一个组时,可执行groupdel命令删除组(再删除某个组前,要执行find/-group组名称命令,检查系统中隶属于该组的目录及文件,并利用chown命令改变其所属组):
[root@free root]#groupdel staff
RSS订阅
已有