petar.company/sudo_cmd/mng_user.sh

92 lines
2.1 KiB
Bash
Raw Normal View History

2025-03-01 00:58:18 +01:00
#!/bin/sh -x
. /usr/home/web/default/petar.company/cfg_apps/petar/petar.cfg
ACTION=${1}
OK="&nbsp;[ <font color=green>OK</font> ]"
KO="&nbsp;[ <font red=green>KO</font> ]"
cd ${BASEDIR}
if [ ${ACTION} = "ADD" ]
then
USER=${2}
PWD=${3}
SHELL=${4}
HOMEDIR=${5}
EMAIL=${6}
pw useradd -D -u ${UID} -g ${GID}
pw useradd ${USER} -s ${SHELL} -d ${HOMEDIR}/${USER} -c "${EMAIL}" -m
echo "${PWD}" | pw usermod -n ${USER} -h 0
fi
if [ ${ACTION} = "DEL" ]
then
USER=${2}
pw useradd -D -u ${UID} -g ${GID}
pw userdel -r -n ${USER}
fi
if [ ${ACTION} = "PWD" ]
then
USER=${2}
PWD=${3}
pw useradd -D -u ${UID} -g ${GID}
echo "${PWD}" | pw usermod -n ${USER} -h 0
fi
if [ ${ACTION} = "SHL" ]
then
USER=${2}
SHELL=${3}
pw useradd -D -u ${UID} -g ${GID}
pw usermod -n ${USER} -s ${SHELL}
fi
# mail-restart
if [ ${ACTION} = "MAL" ] || [ ${ACTION} = "FWD" ]
then
( echo -n "cp ${VIRT_FILE} ${VIRT_BAK}" && cp ${VIRT_FILE} ${VIRT_BAK} ) && echo ${OK} || echo ${KO}
( echo -n "cp ${LHN_FILE} ${LHN_BAK}" && cp ${LHN_FILE} ${LHN_BAK} ) && echo ${OK} || echo ${KO}
echo ""
( echo -n "cat ${VIRT_TOP} > ${VIRT_FILE}" && cat ${VIRT_TOP} > ${VIRT_FILE} ) && echo ${OK} || echo ${KO}
( echo -n "cat ${LHN_TOP} > ${LHN_FILE}" && cat ${LHN_TOP} > ${LHN_FILE} ) && echo ${OK} || echo ${KO}
if [ ${ACTION} = "MAL" ];
then
QUERY1="select email,login,domain from MAILUSER order by domain;";
QUERY2="select domain from MAILUSER;"
else
QUERY1="select email,fwdaddr,domain from FWDUSER order by domain;"
QUERY2="select domain from FWDUSER;"
fi
echo ""
( echo -n "${QUERY1} > ${VIRT_FILE} " && /usr/local/bin/sqlite3 db/petar.db3 "${QUERY1}" | awk -F '|' 'BEGIN{print "#\n### Petar generated using petar.db3\n#"}{printf "%-30s %s\n", $1, $2 }' >> ${VIRT_FILE} ) && echo ${OK} || echo ${KO}
( echo -n "${QUERY2} > ${LHN_FILE}" && /usr/local/bin/sqlite3 db/petar.db3 "${QUERY2}" | sort | uniq > ${LHN_FILE} ) && echo ${OK} || echo ${KO}
fi
# mail-restart
if [ ${ACTION} = "SRV" ]
then
cd /etc/mail
make && echo ${OK} || echo ${KO}
echo ""
make install && echo ${OK} || echo ${KO}
echo ""
make restart && echo ${OK} || echo ${KO}
fi