47 lines
1.3 KiB
Bash
Executable File
47 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Setup sudo permissions for email sync script
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
SYNC_SCRIPT="$SCRIPT_DIR/sync.js"
|
|
USERNAME=$(whoami)
|
|
|
|
echo "🔐 Setting up sudo permissions for email rules sync..."
|
|
echo ""
|
|
|
|
# Create sudoers file
|
|
SUDOERS_FILE="/etc/sudoers.d/email-rules-sync"
|
|
|
|
# Check if already configured
|
|
if [ -f "$SUDOERS_FILE" ]; then
|
|
echo "⚠️ Sudoers file already exists at $SUDOERS_FILE"
|
|
echo "Remove it first if you want to recreate it"
|
|
exit 1
|
|
fi
|
|
|
|
# Create temp file
|
|
TEMP_SUDOERS=$(mktemp)
|
|
|
|
cat > "$TEMP_SUDOERS" << EOF
|
|
# Allow $USERNAME to run email-rules-sync without password
|
|
# This is needed to change file ownership to mail server user (UID 5000)
|
|
$USERNAME ALL=(ALL) NOPASSWD: /usr/bin/node $SYNC_SCRIPT
|
|
EOF
|
|
|
|
# Validate sudoers syntax
|
|
if visudo -c -f "$TEMP_SUDOERS" 2>/dev/null; then
|
|
echo "✅ Sudoers file syntax is valid"
|
|
echo "Moving to $SUDOERS_FILE..."
|
|
sudo mv "$TEMP_SUDOERS" "$SUDOERS_FILE"
|
|
sudo chmod 0440 "$SUDOERS_FILE"
|
|
echo "✅ Sudo permissions configured successfully!"
|
|
echo ""
|
|
echo "You can now run:"
|
|
echo " sudo node $SYNC_SCRIPT"
|
|
echo ""
|
|
echo "Without entering a password."
|
|
else
|
|
echo "❌ Sudoers file syntax error!"
|
|
rm -f "$TEMP_SUDOERS"
|
|
exit 1
|
|
fi
|