initial
This commit is contained in:
46
sync/setup-sudo.sh
Executable file
46
sync/setup-sudo.sh
Executable file
@@ -0,0 +1,46 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user