* Handle the case in which an user is present but the default user could not
be created (e.g. when configuring another user at build time in the
chroot). If the default user could not be created or assigned, disable
autologins (which previously just fails leaving without console login
capabilities), and propagate that information to the scripts thinking that a
default user will always be available.
Note for live-helper documentation: The latter case could leave the system
accessible only if root password is set in other ways or via ssh rsa/dsa
passwordless accesses.
+if ! grep "${USERNAME}" /root/etc/passwd
+then
+ echo "The default user (${USERNAME}) is not present,"
+ first_user=$(grep '^[^:]*:[^:]*:[12]\?[0-9][0-9][0-9][0-9]:' /root/etc/passwd | head -1 | cut -f1 -d ':')
+ if [ -n "${first_user}" ];
+ then
+ echo "setting default user to: ${first_user}."
+ USERNAME="${first_user}"
+ really_export USERNAME
+ else
+ echo "no other valid users found, disabling autologin."
+ NOAUTOLOGIN="Yes"
+ NOXAUTOLOGIN="Yes"
+ USERNAME=""
+ really_export NOAUTOLOGIN
+ really_export NOXAUTOLOGIN
+ really_export USERNAME
+ log_end_msg
+ exit 0
+ fi
+fi
+
if [ -z "${NOSUDO}" ]
then
if ! grep -q "${USERNAME}" /root/etc/sudoers
if [ -z "${NOSUDO}" ]
then
if ! grep -q "${USERNAME}" /root/etc/sudoers
-if [ -n "${NOXAUTOLOGIN}" ]
+. /scripts/live-functions
+
+if [ -n "${NOXAUTOLOGIN}" ] || [ -z "${USERNAME}" ]
-. /scripts/live-functions
-
log_begin_msg "Setting up automatic login"
# live-initramfs script
log_begin_msg "Setting up automatic login"
# live-initramfs script
panel_version=$(chroot /root /usr/bin/dpkg-query -W --showformat='${Version}' gnome-panel-data 2>/dev/null) || panel_version=""
panel_version=$(chroot /root /usr/bin/dpkg-query -W --showformat='${Version}' gnome-panel-data 2>/dev/null) || panel_version=""
-if [ -n "${panel_version}" ]
+if [ -n "${panel_version}" ] && [ -n "${USERNAME}" ]
then
chroot /root sudo -u "${USERNAME}" gconftool-2 -s -t bool /apps/panel/global/disable_lock_screen true
fi
then
chroot /root sudo -u "${USERNAME}" gconftool-2 -s -t bool /apps/panel/global/disable_lock_screen true
fi
. /scripts/live-functions
. /scripts/live-functions
+if [ -z "${USERNAME}" ]
+then
+ echo "No default user for accessibility options."
+ exit 0
+fi
+
log_begin_msg "Configuring accessibility options"
# live-initramfs script
log_begin_msg "Configuring accessibility options"
# live-initramfs script
gpm_version=$(chroot /root /usr/bin/dpkg-query -W --showformat='${Version}' gnome-power-manager 2>/dev/null) || panel_version=""
gpm_version=$(chroot /root /usr/bin/dpkg-query -W --showformat='${Version}' gnome-power-manager 2>/dev/null) || panel_version=""
-if [ -n "${gpm_version}" ]
+if [ -n "${gpm_version}" ] && [ -n "${USERNAME}" ]
then
#live-reconfigure /root gnome-power-manager
# Gnome < 2.20
then
#live-reconfigure /root gnome-power-manager
# Gnome < 2.20
<match user="root">
<return result="yes"/>
</match>
<match user="root">
<return result="yes"/>
</match>
+EOF
+
+if [ -n "${USERNAME}" ]
+then
+ cat << EOF >> /root/etc/PolicyKit/PolicyKit.conf
<!-- don't ask password for user in live session -->
<match user="$USERNAME">
<return result="yes"/>
</match>
<!-- don't ask password for user in live session -->
<match user="$USERNAME">
<return result="yes"/>
</match>
+EOF
+fi
+
+cat << EOF >> /root/etc/PolicyKit/PolicyKit.conf
<define_admin_auth group="admin"/>
</config>
EOF
<define_admin_auth group="admin"/>
</config>
EOF