Merging casper 1.216.
[live-boot-grml.git] / scripts / live-bottom / 10adduser
1 #!/bin/sh
2
3 #set -e
4
5 # initramfs-tools header
6
7 PREREQ=""
8
9 prereqs()
10 {
11         echo "${PREREQ}"
12 }
13
14 case "${1}" in
15         prereqs)
16                 prereqs
17                 exit 0
18                 ;;
19 esac
20
21 # live-initramfs header
22
23 if [ -n "${NOUSER}" ]
24 then
25         exit 0
26 fi
27
28 . /scripts/live-functions
29 load_confmodule
30
31 log_begin_msg "Adding live session user"
32
33 # live-initramfs script
34
35 user_crypted="8Ab05sVQ4LLps" # as in $(echo "live" | mkpasswd -s)
36
37 # U6aMy0wojraho is just a blank password
38 db_set passwd/make-user true
39 db_set passwd/root-password-crypted '*'
40 db_set passwd/user-password-crypted ${user_crypted}
41 db_set passwd/user-fullname "$USERFULLNAME"
42 db_set passwd/username "$USERNAME"
43 db_set passwd/user-uid 999
44
45 chroot /root /usr/bin/env -i HOME="/root" \
46         TERM="${TERM}" PATH="/usr/sbin:/usr/bin:/sbin:/bin" \
47         /usr/lib/user-setup/user-setup-apply 2>&1 \
48                 | grep -v "Shadow passwords are now on"
49
50 # Clear out debconf database again to avoid confusing ubiquity later.
51 db_set passwd/make-user
52 db_set passwd/root-password-crypted
53 db_set passwd/user-password-crypted
54 db_set passwd/user-fullname
55 db_set passwd/username
56 db_set passwd/user-uid
57
58 if ! grep -qs "${USERNAME}" /root/etc/passwd
59 then
60         echo "The default user (${USERNAME}) is not present,"
61         first_user=$(grep '^[^:]*:[^:]*:[12]\?[0-9][0-9][0-9][0-9]:' /root/etc/passwd | head -1 | cut -f1 -d ':')
62         if [ -n "${first_user}" ];
63         then
64                 echo "setting default user to: ${first_user}."
65                 USERNAME="${first_user}"
66                 really_export USERNAME
67         else
68                 echo "no other valid users found, disabling autologin."
69                 NOAUTOLOGIN="Yes"
70                 NOXAUTOLOGIN="Yes"
71                 USERNAME=""
72                 really_export NOAUTOLOGIN
73                 really_export NOXAUTOLOGIN
74                 really_export USERNAME
75                 log_end_msg
76                 exit 0
77         fi
78 fi
79
80 if [ -z "${NOSUDO}" ]
81 then
82         if ! grep -q "${USERNAME}" /root/etc/sudoers
83         then
84                 echo "${USERNAME}  ALL=(ALL) NOPASSWD: ALL" >> /root/etc/sudoers
85
86                 chroot /root sudo -u "${USERNAME}" sh -c "echo 'SU_TO_ROOT_SU=sudo' >> /home/${USERNAME}/.su-to-rootrc"
87
88                 if [ -x /root/usr/bin/gconftool-2 ]
89                 then
90                         chroot /root sudo -u "${USERNAME}" gconftool-2 -s -t bool /apps/gksu/sudo-mode true
91                         chroot /root sudo -u "${USERNAME}" gconftool-2 -s -t bool /apps/gksu/display-no-pass-info false
92                 fi
93
94 chroot /root sudo -u "${USERNAME}" sh -c "umask 0077 && mkdir -p /home/${USERNAME}/.kde/share/config && cat > /home/${USERNAME}/.kde/share/config/kdesurc" << EOF
95 [super-user-command]
96 super-user-command=sudo
97 EOF
98
99                 if [ -f /root/usr/share/apps/konsole/sumc.desktop ]
100                 then
101                         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"
102                 fi
103
104                 if [ -f /root/usr/share/apps/konsole/su.desktop ]
105                 then
106                         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"
107                 fi
108         fi
109 fi
110
111 if [ -L /root/home/${USERNAME}/Examples ]
112 then
113         chroot /root install -o ${USERNAME} -g ${USERNAME} -d /home/${USERNAME}/Desktop/
114         mv /root/home/${USERNAME}/Examples /root/home/${USERNAME}/Desktop/
115 fi
116
117 if [ -f /root/home/$USERNAME/examples.desktop ]; then
118     chroot /root install -o $USERNAME -g $USERNAME -d /home/$USERNAME/Desktop/
119     mv /root/home/$USERNAME/examples.desktop /root/home/$USERNAME/Desktop/
120 fi
121
122 if [ -e /root/usr/share/applications/live-installer-launcher.desktop ]
123 then
124         chroot /root install -D -o ${USERNAME} -g ${USERNAME} /usr/share/applications/live-installer-launcher.desktop /home/${USERNAME}/Desktop/live-installer-launcher.desktop
125 fi
126
127 log_end_msg