为linux

时间:2015-10-31 13:31:40

标签: c# linux user-interface

我想在Linux操作系统中自定义登录屏幕。不仅仅是bacground图片,还有从按钮到文本框的所有内容,甚至是登录方法(所以不是用户名+密码,而是我自己的东西)。

Linux的味道并不重要,它只需要一个图形界面。我有一些Ubuntu的经验。

然而,这将是我第一次为Linux开发一些东西 - 我之前已经为Windows开发了应用程序,主要是在C#中 - 但我很想学习一些新的东西。所以请尽量让我更容易一点,我现在是一个菜鸟。

那么,我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

"登录界面"在GNU / Linux系统上显示以登录图形会话是您正在使用的桌面环境的一部分。对于那里的替代环境的动物园存在各种替代方案。示例是KDE桌面环境提供的kdm,Gnome提供的gdmxdmwdm,还存在许多其他内容。首先阅读wikipedia article about kdm以获得展示。

如果现有的配置选项不够用,您必须为该部件实现相同目的的替换。所以最好的方法是开始阅读这些内容。这应该会给你一个关于要求的印象。

粗略地解释说,您必须创建一个可由系统执行的可执行文件,并将其配置为"桌面管理器"在系统配置中。该配置的确切位置又取决于分布,但一般方法总是相同的。

这样一个程序的逻辑必须以某种方式回答是否允许用户通过任何选择的方式登录系统的问题。通常,这是通过在后台使用PAM来完成的(" Pluggable authentication modules")。也许首先阅读introduction to PAM以了解事情是如何运作的,由于其无限的灵活性,乍一看可能有点令人困惑。该框架用于现代unixoid系统,以将该逻辑的要求与实际实现分开。所以你真的想了解PAM的工作原理。这是一个令人难以置信的灵活框架,其中存在无限的策略,因此无数的适配器适用于各种现有权限,如数据库,LDAP服务器,基于简单文件的权限,IMAP服务器,您可以命名:您可以想象的一切。所以很有可能你不必实现任何东西,只是可以选择其他人实现的东西,并根据你的需要配置/定制它。

逻辑本身并不复杂,只需要以明确的方式回答这个简单的问题:是否授予访问权限的用户。为此,它将(或不会)必须咨询一些现有的权威。究竟如何运作完全取决于你。真正困难的可能是访问和控制图形硬件,而没有正在运行的图形桌面环境(因为这只是在之后开始)。所以你可能不得不处理一些硬件抽象层。这也意味着您可能希望使用CC++之类的语言来完成这项工作,脚本语言不太适合这样的工作,也因为它们引入了各种各样的附加要求。安装在一个系统上,如果由于缺少登录屏幕而导致该实用程序链中的某些元素中断,该系统将变得无法使用:-)