我想在Linux操作系统中自定义登录屏幕。不仅仅是原始图像,从按钮到文本框,甚至是登录方法(所以不是用户名+密码,而是我自己的东西)。
Linux的风格并不重要,它只需要有一个图形界面。不过,我对Ubuntu有一些经验。
然而,这将是我第一次为Linux开发一些东西--我以前开发过适用于C#的应用程序--但是我要面对挑战,去学习一些新的东西。所以,请尽量让我轻松一点,因为我现在是个菜鸟。
那我该怎么做呢?
发布于 2015-10-31 17:02:00
在GNU/Linux系统上显示的用于登录到图形会话的“登录屏幕”是您正在使用的桌面环境的一部分。在那里有各种各样的替代环境动物园。例如由KDE桌面环境提供的kdm
、Gnome、xdm
、wdm
提供的gdm
,还有许多其他的例子。从阅读kdm
开始,以获得一个印象。
如果配置该部分的现有选项不够,则必须为该部分实现一个替换,该部分具有相同的功能。所以最好的办法就是开始读这些。这应该会给你一个关于需求的印象。
粗略解释一下,您必须创建一个可由系统执行的可执行文件,并在系统配置中将其配置为“桌面管理器”。该配置的确切位置同样取决于分布,但一般方法总是相同的。
这样一个程序的逻辑必须以某种方式回答用户是否允许以任何方式登录到系统的问题。这通常是通过在后台使用PAM
(“可插入身份验证模块”)来完成的。也许从阅读PAM
开始,了解事物是如何工作的,因为它具有无限的灵活性,乍一看,这可能有点令人困惑。该框架用于现代unixoid系统,将对该逻辑的需求与实际实现分离开来。因此,您也很想了解PAM
是如何工作的。它是一个令人难以置信的灵活框架,它已经存在着无尽的策略,因此为各种现有权威机构(如数据库、LDAP服务器、简单的基于文件的权限、IMAP服务器,您可以命名为:所有您可以想象的东西)提供了无数的适配器。因此,您可能不需要实现任何东西,而只需选择由其他人实现的东西,并根据您的需要配置/调整它。
逻辑本身并不一定是复杂的,它只需要以一种清晰的方式回答这个简单的问题:请求访问的用户是否被授予了权限。为此,它将(或不)必须咨询一些现有的权威机构。这到底是怎么回事显然完全取决于你。真正困难的事情可能是访问和控制图形硬件,而不需要构建正在运行的图形桌面环境(因为这只是在之后才开始)。因此,您可能需要处理一些硬件抽象层。这再次意味着您可能希望在该工作中使用C
或C++
之类的语言,脚本语言不太适合这样的工作,也是因为它们引入了各种附加要求,要求必须在一个系统上安装的东西,如果该工具链中的某个元素由于缺少登录屏幕而中断,则该系统将无法使用:)
https://stackoverflow.com/questions/33452170
复制相似问题