是否可以添加GRUB配置文件以自动登录用户并启动脚本(15.10)?
我有一台15.10 64位机器,有多个用户帐户。
通常,我在GRUB中选择Ubuntu,它启动并向我显示登录屏幕,我选择一个帐户,输入密码并启动我的应用程序。
这没关系,应该保持这种状态,但我希望在GRUB菜单中有另一个选项:
如果我选择那个,它应该启动相同的Ubuntu安装,但自动登录到一个特定的用户帐户(受密码保护)并启动一个脚本,如果我正常登录,可能无法启动。
由于自动登录绕过了帐户密码,我还想密码保护这个GRUB启动选项,这样我就必须在启动这个选项之前输入我的密码(或不同的密码)到GRUB中。
有可能设置这样的东西吗? 我该怎么做?
工作正在进行中
这可以通过使用:
- 自定义X会话,它启动基本窗口管理器并运行脚本
- LightDM的自定义配置,它将为您的用户自动登录并使用上述会话
- LightDM的自定义服务,将使用上述配置
- 适当的内核参数,以禁用正常的LightDM服务并启动自定义LightDM服务
- 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。