6180b1fe2433dbb2f683b3ebfbbf166c18eb117a
[debian/amanda] / packaging / deb / preinst
1 #!/bin/sh 
2
3 amanda_user=amandabackup
4 amanda_group=disk
5
6 TMPFILE=`mktemp /tmp/deb-amanda.XXXXXXXXXXX`
7 if [ $? -ne 0 ]; then
8         echo "Unable to mktemp!" 1>&2
9         exit 1
10 fi
11 LOGDIR="/var/log/amanda"
12 INSTALL_LOG="${LOGDIR}/install.log"
13 INSTALL_ERR="${LOGDIR}/install.err"
14
15 echo "`date +'%b %e %Y %T'`: Preparing to install Amanda" >${TMPFILE}
16
17 # Check for the '${amanda_user}' user
18 echo "`date +'%b %e %Y %T'`: Checking for ${amanda_user} user..." >>${TMPFILE}
19 if [ "`id -u ${amanda_user} >/dev/null 2>&1 && echo 0 || echo 1`" != "0" ] ; then
20         useradd -c "Amanda" -g ${amanda_group} -d /var/lib/amanda -s /bin/bash ${amanda_user}
21         # Lock the ${amanda_user} account until admin sets password
22         passwd -l ${amanda_user} >>/dev/null
23         PASSWD_EXIT=$?
24         if [ ${PASSWD_EXIT} -eq 0 ] ; then
25                 echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
26                 echo "`date +'%b %e %Y %T'`:  The ${amanda_user} user account has been successfully created." >>${TMPFILE}
27                 echo "`date +'%b %e %Y %T'`:  Furthermore, the account has been automatically locked for you" >>${TMPFILE}
28                 echo "`date +'%b %e %Y %T'`:  for security purposes.  Once a password for the  '${amanda_user}'" >>${TMPFILE}
29                 echo "`date +'%b %e %Y %T'`:  account has been set, the user can be unlocked by issuing" >>${TMPFILE}
30                 echo "`date +'%b %e %Y %T'`:  the following command as root.:" >>${TMPFILE}
31                 echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
32                 echo "`date +'%b %e %Y %T'`:  # passwd -u ${amanda_user}" >>${TMPFILE}
33                 echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
34                 echo "`date +'%b %e %Y %T'`:  If this is not a new installation of Amanda and you have" >>${TMPFILE}
35                 echo "`date +'%b %e %Y %T'`:  pre-existing Amanda configurations in /etc/amanda" >>${TMPFILE}
36                 echo "`date +'%b %e %Y %T'`:  you should ensure that 'dumpuser' is set to '${amanda_user}'" >>${TMPFILE}
37                 echo "`date +'%b %e %Y %T'`:  in those configurations.  Additionally, you should ensure" >>${TMPFILE}
38                 echo "`date +'%b %e %Y %T'`:  that /var/lib/amanda/.amandahosts on your client systems" >>${TMPFILE}
39                 echo "`date +'%b %e %Y %T'`:  is properly configured to allow connections for the user" >>${TMPFILE}
40                 echo "`date +'%b %e %Y %T'`:  '${amanda_user}'." >>${TMPFILE}
41                 echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
42                 PASSWD_OK=0
43         else
44                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
45                 echo "`date +'%b %e %Y %T'`:  !!!                                                       !!!" >>${TMPFILE}
46                 echo "`date +'%b %e %Y %T'`:  !!!  The '${amanda_user}' user account for this system has been   !!!" >>${TMPFILE}
47                 echo "`date +'%b %e %Y %T'`:  !!!  created, however the user has no password set. For   !!!" >>${TMPFILE}
48                 echo "`date +'%b %e %Y %T'`:  !!!  security purposes this account  is normally locked   !!!" >>${TMPFILE}
49                 echo "`date +'%b %e %Y %T'`:  !!!  after creation.  Unfortunately,  when locking this   !!!" >>${TMPFILE}
50                 echo "`date +'%b %e %Y %T'`:  !!!  account an error occurred.  To ensure the security   !!!" >>${TMPFILE}
51                 echo "`date +'%b %e %Y %T'`:  !!!  of your system  you should set a password  for the   !!!" >>${TMPFILE}
52                 echo "`date +'%b %e %Y %T'`:  !!!  user account '${amanda_user}' immediately!  To set  such a   !!!" >>${TMPFILE}
53                 echo "`date +'%b %e %Y %T'`:  !!!  password, please issue the following command.:       !!!" >>${TMPFILE}
54                 echo "`date +'%b %e %Y %T'`:  !!!                                                       !!!" >>${TMPFILE}
55                 echo "`date +'%b %e %Y %T'`:  !!!   # passwd ${amanda_user}" >>${TMPFILE}
56                 echo "`date +'%b %e %Y %T'`:  !!!                                                       !!!" >>${TMPFILE}
57                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
58                 PASSWD_OK=1
59         fi
60 else
61         # log information about '${amanda_user}' user parameters
62         echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
63         echo "`date +'%b %e %Y %T'`:  The Amanda backup software is configured to operate as the" >>${TMPFILE}
64         echo "`date +'%b %e %Y %T'`:  user '${amanda_user}'.  This user exists on your system and has not" >>${TMPFILE}
65         echo "`date +'%b %e %Y %T'`:  been modified.  To ensure that Amanda functions properly," >>${TMPFILE}
66         echo "`date +'%b %e %Y %T'`:  please see that the following parameters are set for that" >>${TMPFILE}
67         echo "`date +'%b %e %Y %T'`:  user.:" >>${TMPFILE}
68         echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
69         echo "`date +'%b %e %Y %T'`:  SHELL:          /bin/bash" >>${TMPFILE}
70         echo "`date +'%b %e %Y %T'`:  HOME:           /var/lib/amanda" >>${TMPFILE}
71         echo "`date +'%b %e %Y %T'`:  Default group:  ${amanda_group}" >>${TMPFILE}
72         echo "`date +'%b %e %Y %T'`:  Verifying ${amanda_user} user parameters :" >>${TMPFILE}
73         
74
75         if [ "`id -gn ${amanda_user}`" != "${amanda_group}" ] ; then
76                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
77                 echo "`date +'%b %e %Y %T'`:  !!! user '${amanda_user}' is not part of the ${amanda_group} group, !!!" >>${TMPFILE}
78                 echo "`date +'%b %e %Y %T'`:  !!! please make sure it is corrected before start using amanda  !!!" >>${TMPFILE}
79                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
80         else
81                 echo "`date +'%b %e %Y %T'`:  Verified group name of user '${amanda_user}'" >>${TMPFILE}
82         fi
83
84         echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
85         PASSWD_OK=0
86 fi
87 if [ -d /var/lib/amanda ] ; then
88         echo -n "`date +'%b %e %Y %T'`:  Checking ownership of '/var/lib/amanda'... " >>${TMPFILE}
89         if [ "`ls -dl /var/lib/amanda | awk '//{split($_,x); print x[3]}'`" = "${amanda_user}" ] && \
90            [ "`ls -dl /var/lib/amanda | awk '//{split($_,x); print x[4]}'`" = "${amanda_group}" ] ; then
91                 echo "correct." >>${TMPFILE}
92                 VARLIB_OK=0
93         else
94                 echo "incorrect!" >>${TMPFILE}
95                 echo "`date +'%b %e %Y %T'`:  Please ensure that the directory '/var/lib/amanda' is owned by" >>${TMPFILE}
96                 echo "`date +'%b %e %Y %T'`:  the user '${amanda_user}' and group '${amanda_group}'." >>${TMPFILE}
97                 VARLIB_OK=1
98         fi
99 else
100         VARLIB_OK=0
101 fi
102 echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
103 if [ ! -e ${LOGDIR} ] ; then
104         # create log directory
105         mkdir -m 0750 ${LOGDIR} >>${TMPFILE} 2>&1
106         chown ${amanda_user}:${amanda_group} ${LOGDIR} >>${TMPFILE} 2>&1
107 fi
108
109 if [ ${PASSWD_OK} -eq 1 ] || [ ${VARLIB_OK} -eq 1 ] ; then
110         cat ${TMPFILE}
111         cat ${TMPFILE} >>${INSTALL_ERR}
112         echo "Please review '${INSTALL_ERR}' to correct errors which have prevented the Amanda installation." >&2
113         echo "Amanda installation log can be found in '${INSTALL_LOG}' and errors (if any) in '${INSTALL_ERR}'."
114         exit 1
115 else
116         cat ${TMPFILE}
117         cat ${TMPFILE} >>${INSTALL_LOG}
118 fi
119
120 echo "`date +'%b %e %Y %T'`: === Amanda installation started. ===" >${TMPFILE}
121
122 cat ${TMPFILE}
123 cat ${TMPFILE} >>${INSTALL_LOG}
124 if [ -f "${TMPFILE}" ]; then
125         rm -f "${TMPFILE}"
126 fi
127