|
| 1 | +<<<<<<< HEAD |
1 | 2 | #!/bin/bash |
2 | 3 | # info: rebuild system user |
3 | 4 | # options: USER [RESTART] |
|
155 | 156 | log_event "$OK" "$EVENT" |
156 | 157 |
|
157 | 158 | exit |
| 159 | +======= |
| 160 | +#!/bin/bash |
| 161 | +# info: rebuild system user |
| 162 | +# options: USER [RESTART] |
| 163 | +# |
| 164 | +# The function rebuilds system user account. |
| 165 | + |
| 166 | + |
| 167 | +#----------------------------------------------------------# |
| 168 | +# Variable&Function # |
| 169 | +#----------------------------------------------------------# |
| 170 | + |
| 171 | +# Argument defenition |
| 172 | +user=$1 |
| 173 | +restart=$2 |
| 174 | + |
| 175 | +# Includes |
| 176 | +source $VESTA/conf/vesta.conf |
| 177 | +source $VESTA/func/main.sh |
| 178 | + |
| 179 | + |
| 180 | +#----------------------------------------------------------# |
| 181 | +# Verifications # |
| 182 | +#----------------------------------------------------------# |
| 183 | + |
| 184 | +check_args '1' "$#" 'USER [RESTART]' |
| 185 | +validate_format 'user' |
| 186 | +is_object_valid 'user' 'USER' "$user" |
| 187 | +is_object_unsuspended 'user' 'USER' "$user" |
| 188 | + |
| 189 | + |
| 190 | +#----------------------------------------------------------# |
| 191 | +# Action # |
| 192 | +#----------------------------------------------------------# |
| 193 | +export PATH=$PATH:/usr/sbin |
| 194 | + |
| 195 | +# Get user variables |
| 196 | +source $USER_DATA/user.conf |
| 197 | + |
| 198 | +# Rebuild user |
| 199 | +shell=$(chsh --list-shells | grep -w "$SHELL" |head -n1) |
| 200 | +adduser "$user" -s "$shell" -c "$CONTACT" -m -d "$HOMEDIR/$user" &>/dev/null |
| 201 | + |
| 202 | +# Update password |
| 203 | +shadow='/etc/shadow' |
| 204 | +shdw=$(grep ^$user: $shadow) |
| 205 | +shdw3=$(echo "$shdw" | cut -f3 -d :) |
| 206 | +shdw4=$(echo "$shdw" | cut -f4 -d :) |
| 207 | +shdw5=$(echo "$shdw" | cut -f5 -d :) |
| 208 | +shdw6=$(echo "$shdw" | cut -f6 -d :) |
| 209 | +shdw7=$(echo "$shdw" | cut -f7 -d :) |
| 210 | +shdw8=$(echo "$shdw" | cut -f8 -d :) |
| 211 | +shdw9=$(echo "$shdw" | cut -f9 -d :) |
| 212 | +chmod u+w $shadow |
| 213 | +sed -i "/^$user:*/d" $shadow |
| 214 | +echo "$user:$MD5:$shdw3:$shdw4:$shdw5:$shdw6:$shdw7:$shdw8:$shdw9" >> $shadow |
| 215 | +chmod u-w $shadow |
| 216 | + |
| 217 | +# Building directory tree |
| 218 | +mkdir -p $HOMEDIR/$user/conf |
| 219 | +chmod a+x $HOMEDIR/$user |
| 220 | +chmod a+x $HOMEDIR/$user/conf |
| 221 | +chown $user:$user $HOMEDIR/$user |
| 222 | +chown $user:$user $HOMEDIR/$user/conf |
| 223 | + |
| 224 | +if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then |
| 225 | + mkdir -p $HOMEDIR/$user/conf/web |
| 226 | + mkdir -p $HOMEDIR/$user/web |
| 227 | + mkdir -p $HOMEDIR/$user/tmp |
| 228 | + chmod 751 $HOMEDIR/$user/conf/web |
| 229 | + chmod 751 $HOMEDIR/$user/web |
| 230 | + chmod 771 $HOMEDIR/$user/tmp |
| 231 | + chown $user:$user $HOMEDIR/$user/web |
| 232 | + $BIN/v-rebuild-web-domains $user $restart |
| 233 | +fi |
| 234 | + |
| 235 | +if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then |
| 236 | + mkdir -p $HOMEDIR/$user/conf/dns |
| 237 | + chmod 751 $HOMEDIR/$user/conf/dns |
| 238 | + $BIN/v-rebuild-dns-domains $user $restart |
| 239 | +fi |
| 240 | + |
| 241 | +if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then |
| 242 | + mkdir -p $HOMEDIR/$user/conf/mail |
| 243 | + mkdir -p $HOMEDIR/$user/mail |
| 244 | + chmod 751 $HOMEDIR/$user/mail |
| 245 | + chmod 751 $HOMEDIR/$user/conf/mail |
| 246 | + $BIN/v-rebuild-mail-domains $user |
| 247 | +fi |
| 248 | + |
| 249 | + |
| 250 | +if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then |
| 251 | + $BIN/v-rebuild-databases $user |
| 252 | +fi |
| 253 | + |
| 254 | +if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON_SYSTEM" != 'no' ]; then |
| 255 | + $BIN/v-rebuild-cron-jobs $user $restart |
| 256 | +fi |
| 257 | + |
| 258 | + |
| 259 | +#----------------------------------------------------------# |
| 260 | +# Vesta # |
| 261 | +#----------------------------------------------------------# |
| 262 | + |
| 263 | +# Creating configuration files and pipes |
| 264 | +chmod 770 $USER_DATA |
| 265 | +touch $USER_DATA/backup.conf |
| 266 | +chmod 660 $USER_DATA/backup.conf |
| 267 | +touch $USER_DATA/history.log |
| 268 | +chmod 660 $USER_DATA/history.log |
| 269 | +touch $USER_DATA/stats.log |
| 270 | +chmod 660 $USER_DATA/stats.log |
| 271 | + |
| 272 | +sed -i "/ $user$/d" $VESTA/data/queue/disk.pipe |
| 273 | +echo "v-update-user-disk $user" >> $VESTA/data/queue/disk.pipe |
| 274 | + |
| 275 | +if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then |
| 276 | + mkdir -p $USER_DATA/ssl |
| 277 | + chmod 770 $USER_DATA/ssl |
| 278 | + touch $USER_DATA/web.conf |
| 279 | + chmod 660 $USER_DATA/web.conf |
| 280 | + if [ "$(grep -w $user $VESTA/data/queue/traffic.pipe)" ]; then |
| 281 | + echo "$BIN/v-update-web-domains-traff $user" \ |
| 282 | + >> $VESTA/data/queue/traffic.pipe |
| 283 | + fi |
| 284 | + echo "v-update-web-domains-disk $user" >> $VESTA/data/queue/disk.pipe |
| 285 | +fi |
| 286 | + |
| 287 | +if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then |
| 288 | + mkdir -p $USER_DATA/dns |
| 289 | + chmod 770 $USER_DATA/dns |
| 290 | + touch $USER_DATA/dns.conf |
| 291 | + chmod 660 $USER_DATA/dns.conf |
| 292 | +fi |
| 293 | + |
| 294 | +if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then |
| 295 | + mkdir -p $USER_DATA/mail |
| 296 | + chmod 770 $USER_DATA/mail |
| 297 | + touch $USER_DATA/mail.conf |
| 298 | + chmod 660 $USER_DATA/mail.conf |
| 299 | + echo "v-update-mail-domains-disk $user" >> $VESTA/data/queue/disk.pipe |
| 300 | +fi |
| 301 | + |
| 302 | +if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then |
| 303 | + touch $USER_DATA/db.conf |
| 304 | + chmod 660 $USER_DATA/db.conf |
| 305 | + echo "v-update-databases-disk $user" >> $VESTA/data/queue/disk.pipe |
| 306 | +fi |
| 307 | + |
| 308 | +if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON_SYSTEM" != 'no' ]; then |
| 309 | + touch $USER_DATA/cron.conf |
| 310 | + chmod 660 $USER_DATA/cron.conf |
| 311 | +fi |
| 312 | + |
| 313 | +# Logging |
| 314 | +log_event "$OK" "$EVENT" |
| 315 | + |
| 316 | +exit |
| 317 | +>>>>>>> e81fb6c7307a777644ccaaf4dd15c5ac51b84ebc |
0 commit comments