summaryrefslogtreecommitdiff
path: root/scripts/live-bottom/10adduser
blob: c7adad28d11c23b7680d308b33df1edd1b2a3549 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/bin/sh

#set -e

# initramfs-tools header

PREREQ=""

prereqs()
{
	echo "${PREREQ}"
}

case "${1}" in
	prereqs)
		prereqs
		exit 0
		;;
esac

# live-initramfs header

if [ -n "${NOUSER}" ]
then
	exit 0
fi

. /scripts/live-functions

log_begin_msg "Adding live session user"

# live-initramfs script

user_crypted="8Ab05sVQ4LLps" # as in $(echo "live" | mkpasswd -s)

# U6aMy0wojraho is just a blank password
chroot /root debconf-communicate -fnoninteractive live-initramfs > /dev/null << EOF
set passwd/make-user true
set passwd/root-password-crypted *
set passwd/user-password-crypted ${user_crypted}
set passwd/user-fullname ${USERFULLNAME}
set passwd/username ${USERNAME}
set passwd/user-uid 1000
EOF

chroot /root /usr/bin/env -i HOME="/root" \
	TERM="${TERM}" PATH="/usr/sbin:/usr/bin:/sbin:/bin" \
	/usr/lib/user-setup/user-setup-apply 2>&1 \
		| grep -v "Shadow passwords are now on"

# Clear out debconf database again to avoid confusing ubiquity later.
chroot /root debconf-communicate -fnoninteractive live-initramfs > /dev/null << EOF
set passwd/make-user
set passwd/root-password-crypted
set passwd/user-password-crypted
set passwd/user-fullname
set passwd/username
set passwd/user-uid
EOF

if ! grep -qs "${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
	then
		echo "${USERNAME}  ALL=(ALL) NOPASSWD: ALL" >> /root/etc/sudoers

		chroot /root sudo -u "${USERNAME}" sh -c "echo 'SU_TO_ROOT_SU=sudo' >> /home/${USERNAME}/.su-to-rootrc"

		if [ -x /root/usr/bin/gconftool-2 ]
		then
			chroot /root sudo -u "${USERNAME}" gconftool-2 -s -t bool /apps/gksu/sudo-mode true
			chroot /root sudo -u "${USERNAME}" gconftool-2 -s -t bool /apps/gksu/display-no-pass-info false
		fi

chroot /root sudo -u "${USERNAME}" sh -c "umask 0077 && mkdir -p /home/${USERNAME}/.kde/share/config && cat > /home/${USERNAME}/.kde/share/config/kdesurc" << EOF
[super-user-command]
super-user-command=sudo
EOF

		if [ -f /root/usr/share/apps/konsole/sumc.desktop ]
		then
			chroot /root sudo -u "${USERNAME}" sh -c "umask 0077 && mkdir -p /home/${USERNAME}/.kde/share/apps/konsole && sed -e's/Exec=su.*$/Exec=sudo mc -c/' /usr/share/apps/konsole/sumc.desktop > /home/${USERNAME}/.kde/share/apps/konsole/sumc.desktop"
		fi

		if [ -f /root/usr/share/apps/konsole/su.desktop ]
		then
			chroot /root sudo -u "${USERNAME}" sh -c "umask 0077 && mkdir -p /home/${USERNAME}/.kde/share/apps/konsole && sed -e's/Exec=su.*$/Exec=sudo -i/' /usr/share/apps/konsole/su.desktop > /home/${USERNAME}/.kde/share/apps/konsole/su.desktop"
		fi
	fi
fi

if [ -L /root/home/${USERNAME}/Examples ]
then
	chroot /root install -o ${USERNAME} -g ${USERNAME} -d /home/${USERNAME}/Desktop/
	mv /root/home/${USERNAME}/Examples /root/home/${USERNAME}/Desktop/
fi

if [ -f /root/home/$USERNAME/examples.desktop ]; then
    chroot /root install -o $USERNAME -g $USERNAME -d /home/$USERNAME/Desktop/
    mv /root/home/$USERNAME/examples.desktop /root/home/$USERNAME/Desktop/
fi

if [ -e /root/usr/share/applications/live-installer-launcher.desktop ]
then
	chroot /root install -D -o ${USERNAME} -g ${USERNAME} /usr/share/applications/live-installer-launcher.desktop /home/${USERNAME}/Desktop/live-installer-launcher.desktop
fi

log_end_msg