是否可以添加GRUB配置文件以自动登录用户并启动脚本(15.10)?

我有一台15.10 64位机器,有多个用户帐户。
通常,我在GRUB中选择Ubuntu,它启动并向我显示登录屏幕,我选择一个帐户,输入密码并启动我的应用程序。

这没关系,应该保持这种状态,但我希望在GRUB菜单中有另一个选项:

如果我选择那个,它应该启动相同的Ubuntu安装,但自动登录到一个特定的用户帐户(受密码保护)并启动一个脚本,如果我正常登录,可能无法启动。
由于自动登录绕过了帐户密码,我还想密码保护这个GRUB启动选项,这样我就必须在启动这个选项之前输入我的密码(或不同的密码)到GRUB中。

有可能设置这样的东西吗? 我该怎么做?

工作正在进行中

这可以通过使用:

  1. 自定义X会话,它启动基本窗口管理器并运行脚本
  2. LightDM的自定义配置,它将为您的用户自动登录并使用上述会话
  3. LightDM的自定义服务,将使用上述配置
  4. 适当的内核参数,以禁用正常的LightDM服务并启动自定义LightDM服务
  5. GRUB配置自动创建具有上述参数的条目,具有密码保护function

在本例中,我将介绍如何使用Google Chrome设置自助服务终端模式。

剧本

 #! /bin/sh metacity & while true do google-chrome --start-maximized if zenity --question --text='Do you want to logout?' --title='Logout' then exit fi done 

保持它,比如/usr/local/bin/chrome-kiosk.sh ,让它可执行。 请注意,我使用metacity作为一个简单的窗口管理器,它为我提供了可行的设置而无需进一步配置。

X会话

 [Desktop Entry] Name=Chrome Comment=This session logs runs a Google Chrome kiosk Exec=/usr/local/bin/chrome-kiosk.sh Icon=google-chrome Type=Application X-LightDM-DesktopName=Chrome 

保存在/usr/share/xsessions/chrome.desktop 。 如果使用其他脚本,请至少更改Exec行。

LightDM配置

 [Seat:*] autologin-guest=false autologin-user=username autologin-user-timeout=0 autologin-session=chrome 

将其保存为/etc/lightdm/autologin-lightdm.conf 。 用您想要的用户名替换用户名。

LightDM服务

 systemctl cat lightdm.service | sed '/ExecStart/s/$/ --config=/etc/lightdm/autologin-lightdm.conf' | sudo tee /etc/systemd/system/autologin-lightdm.service 

这将在/etc/systemd/system创建名为autologin-lightdm.service的默认lightdm.service的自定义副本,并将ExecStart行更改为:

 ExecStart=/usr/sbin/lightdm --config /etc/lightdm/autologin-lightdm.conf 

内核参数

要对此进行测试,请在GRUB菜单中按e编辑Ubuntu条目。 找到linux行,并追加:

 systemd.mask=display-manager.service systemd.wants=autologin-lightdm.service 

(您可以省略.service扩展名。)

Ctrl X. 您应该登录用户并拥有最大化的Google Chrome窗口。

GRUB配置

TBD。