You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1020 B
64 lines
1020 B
#!/bin/bash
|
|
|
|
ACCESSDIR=/var/lib/calculate/calculate-access/
|
|
SKELDIR=/usr/share/calculate/access
|
|
USERNAME=access
|
|
|
|
die() {
|
|
echo $* 1>&2
|
|
exit 1
|
|
}
|
|
|
|
create_user() {
|
|
useradd -d $ACCESSDIR -m $USERNAME -k $SKELDIR
|
|
chmod 700 $ACCESSDIR/bin/access-shell
|
|
}
|
|
|
|
is_user_exists() {
|
|
id $USERNAME &>/dev/null || return 1
|
|
}
|
|
|
|
is_homedir_exists() {
|
|
[[ -d $ACCESSDIR ]] || return 1
|
|
}
|
|
|
|
prepare_homedir() {
|
|
mkdir -p $ACCESSDIR
|
|
rsync -a $SKELDIR/ $ACCESSDIR/
|
|
chmod 700 $ACCESSDIR
|
|
chown access. -R $ACCESSDIR
|
|
chmod 700 $ACCESSDIR/bin/access-shell
|
|
}
|
|
|
|
if is_user_exists
|
|
then
|
|
if is_homedir_exists
|
|
then
|
|
echo "Access configured already"
|
|
exit 0
|
|
else
|
|
if prepare_homedir
|
|
then
|
|
echo "Access configured successful!"
|
|
exit 0
|
|
else
|
|
die "Failed to prepare $ACCESSDIR"
|
|
fi
|
|
fi
|
|
else
|
|
if is_homedir_exists
|
|
then
|
|
echo "Failed to configure access. Directory $ACCESSDIR is not empty"
|
|
exit 1
|
|
else
|
|
if create_user
|
|
then
|
|
echo "Access configured successful!"
|
|
exit 0
|
|
else
|
|
die "Failed to prepare $ACCESSDIR"
|
|
fi
|
|
fi
|
|
fi
|
|
|