+40
-59
@@ -2,21 +2,21 @@
|
||||
set -e
|
||||
|
||||
PREFIX="/usr/local"
|
||||
ELOG_SRC="/tmp/elog-src"
|
||||
INSTANCE_DIR="$PREFIX/elog"
|
||||
PASSWORD="testpassword"
|
||||
|
||||
# =======================
|
||||
# 1. Installer dépendances
|
||||
# =======================
|
||||
sudo apt update
|
||||
sudo apt install -y make gcc git curl openssl
|
||||
sudo apt install -y make gcc git curl openssl whois
|
||||
|
||||
# =======================
|
||||
# 2. Télécharger et compiler ELOG
|
||||
# =======================
|
||||
rm -rf "$ELOG_SRC"
|
||||
mkdir -p "$ELOG_SRC"
|
||||
cd "$ELOG_SRC"
|
||||
rm -rf /tmp/elog-src
|
||||
mkdir -p /tmp/elog-src
|
||||
cd /tmp/elog-src
|
||||
git clone --recursive https://bitbucket.org/ritt/elog
|
||||
cd elog
|
||||
make -j"$(nproc)"
|
||||
@@ -25,11 +25,20 @@ sudo mkdir -p "$PREFIX/sbin" "$INSTANCE_DIR/logbooks/demo"
|
||||
sudo cp elogd "$PREFIX/sbin/"
|
||||
|
||||
# =======================
|
||||
# 3. Créer users.xml avec mot de passe SHA256
|
||||
# 3. Générer le hash SHA256-crypt trimmed
|
||||
# =======================
|
||||
PASSWORD="testpassword"
|
||||
PASSWORD_HASH=$(printf "%s" "$PASSWORD" | openssl dgst -sha256 -binary | openssl base64)
|
||||
# Génération en SHA256-crypt complet
|
||||
HASH_FULL=$(mkpasswd -m sha-256 "$PASSWORD")
|
||||
# Exemple: $5$$me1T.2jUUqQNa1wNuey9zNBOmOa4eILOaPb.ZSZjpn4
|
||||
# On coupe après le 3e '$'
|
||||
PASSWORD_HASH=$(echo "$HASH_FULL" | cut -d'$' -f4)
|
||||
|
||||
echo "[DEBUG] Full hash : $HASH_FULL"
|
||||
echo "[DEBUG] Trimmed : $PASSWORD_HASH"
|
||||
|
||||
# =======================
|
||||
# 4. Créer users.xml
|
||||
# =======================
|
||||
sudo tee "$INSTANCE_DIR/users.xml" > /dev/null <<EOF
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!-- created by MXML on $(date) -->
|
||||
@@ -48,7 +57,7 @@ EOF
|
||||
sudo chmod 644 "$INSTANCE_DIR/users.xml"
|
||||
|
||||
# =======================
|
||||
# 4. Créer configuration elogd.cfg
|
||||
# 5. Créer configuration elogd.cfg
|
||||
# =======================
|
||||
sudo tee "$INSTANCE_DIR/elogd.cfg" > /dev/null <<EOF
|
||||
[global]
|
||||
@@ -69,75 +78,47 @@ Required Attributes = Author
|
||||
EOF
|
||||
|
||||
# =======================
|
||||
# 5. Installer script init
|
||||
# 6. Script init simple
|
||||
# =======================
|
||||
sudo tee /etc/init.d/elogd > /dev/null <<'EOF'
|
||||
#!/bin/sh
|
||||
# chkconfig: 3 90 10
|
||||
# description: ELOG is a weblog with integrated database
|
||||
# processname: elogd
|
||||
# config: /usr/local/elog/elogd.cfg
|
||||
# pidfile: /var/run/elogd.pid
|
||||
|
||||
[ -f /etc/init.d/functions ] && . /etc/init.d/functions
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
if [ -f /var/run/elogd.pid ] ; then
|
||||
pid=`cat /var/run/elogd.pid`
|
||||
if [ -d /proc/$pid ] ; then
|
||||
echo "elogd already running"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
echo -n "Starting elogd: "
|
||||
/usr/local/sbin/elogd -D -c /usr/local/elog/elogd.cfg > /dev/null 2>&1 &
|
||||
echo $! > /var/run/elogd.pid
|
||||
RETVAL=$?
|
||||
[ $RETVAL -eq 0 ] && echo "OK" || echo "FAIL"
|
||||
;;
|
||||
echo "Starting elogd..."
|
||||
/usr/local/sbin/elogd -D -c /usr/local/elog/elogd.cfg > /dev/null 2>&1 &
|
||||
echo $! > /var/run/elogd.pid
|
||||
;;
|
||||
stop)
|
||||
if [ -f /var/run/elogd.pid ] ; then
|
||||
echo -n "Stopping elogd: "
|
||||
kill `cat /var/run/elogd.pid`
|
||||
rm -f /var/run/elogd.pid
|
||||
echo "OK"
|
||||
else
|
||||
echo "No elogd running"
|
||||
fi
|
||||
;;
|
||||
status)
|
||||
if [ -f /var/run/elogd.pid ] && kill -0 `cat /var/run/elogd.pid` 2>/dev/null; then
|
||||
echo "elogd is running"
|
||||
else
|
||||
echo "elogd is stopped"
|
||||
fi
|
||||
;;
|
||||
restart|reload)
|
||||
$0 stop
|
||||
sleep 1
|
||||
$0 start
|
||||
;;
|
||||
echo "Stopping elogd..."
|
||||
kill $(cat /var/run/elogd.pid)
|
||||
rm -f /var/run/elogd.pid
|
||||
;;
|
||||
restart)
|
||||
$0 stop
|
||||
sleep 1
|
||||
$0 start
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|status|restart}"
|
||||
exit 1
|
||||
echo "Usage: $0 {start|stop|restart}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
|
||||
sudo chmod +x /etc/init.d/elogd
|
||||
|
||||
# =======================
|
||||
# 6. Lancer ELOG via init
|
||||
# 7. Lancer ELOG
|
||||
# =======================
|
||||
sudo service elogd start
|
||||
sudo service elogd restart
|
||||
sleep 3
|
||||
|
||||
echo "✅ ELOG démarré sur http://localhost:8080"
|
||||
echo " → Utilisateur : robot"
|
||||
echo " → Mot de passe : $PASSWORD"
|
||||
|
||||
# =======================
|
||||
# 7. Test de connexion
|
||||
# 8. Test connexion
|
||||
# =======================
|
||||
COOKIEJAR=$(mktemp)
|
||||
curl -s -L --max-time 5 -c "$COOKIEJAR" \
|
||||
|
||||
Reference in New Issue
Block a user