Files
xamxam/nginx/ADMIN_USERS.md
2026-02-05 17:37:07 +01:00

5.1 KiB

Managing Admin Users - Post-ERG

Quick guide to manage admin users for the Post-ERG admin panel.


🎯 Quick Commands

ssh posterg
sudo bash /tmp/manage-admin-users.sh

This gives you an interactive menu to:

  1. List all users
  2. Add new user
  3. Change user password
  4. Delete user
  5. Reset all (start fresh)

📝 Manual Commands

List Current Users

ssh posterg
sudo cut -d: -f1 /etc/nginx/.htpasswd-posterg

Change Password for Existing User

ssh posterg
sudo htpasswd /etc/nginx/.htpasswd-posterg username_here

You'll be prompted to enter the new password twice.

Add New User

ssh posterg
sudo htpasswd /etc/nginx/.htpasswd-posterg new_username

Delete User

ssh posterg
sudo htpasswd -D /etc/nginx/.htpasswd-posterg username_to_delete

Reset Everything (Start Fresh)

ssh posterg
sudo htpasswd -c /etc/nginx/.htpasswd-posterg new_username

⚠️ Warning: The -c flag creates a new file, deleting all existing users!


🚀 Deploy Management Script

To upload the interactive management script to the server:

# From your local machine
just deploy-admin-tools

# Or manually:
rsync -vur ./nginx/manage-admin-users.sh posterg:/tmp/manage-admin-users.sh

🔑 Current Setup

After deployment, your admin panel has:


💡 Common Scenarios

Scenario 1: Change Current Password

ssh posterg
sudo htpasswd /etc/nginx/.htpasswd-posterg test_posterg_22@
# Enter new password when prompted

Scenario 2: Change Username

Since you can't rename users, you need to:

ssh posterg
# Add new user
sudo htpasswd /etc/nginx/.htpasswd-posterg new_username
# Delete old user
sudo htpasswd -D /etc/nginx/.htpasswd-posterg test_posterg_22@

Scenario 3: Forgot Username

ssh posterg
sudo cut -d: -f1 /etc/nginx/.htpasswd-posterg

Scenario 4: Multiple Admins

ssh posterg
# Add second admin
sudo htpasswd /etc/nginx/.htpasswd-posterg admin2
# Add third admin
sudo htpasswd /etc/nginx/.htpasswd-posterg admin3

All users can log into /formulaire/ with their own credentials.

Scenario 5: Start Over with New Username

ssh posterg
# This will DELETE ALL existing users and create a new one
sudo htpasswd -c /etc/nginx/.htpasswd-posterg new_admin

🧪 Testing

After changing users/passwords:

# Test that password is required
curl -I https://posterg.erg.be/formulaire/
# Should return: 401 Unauthorized

# Test with credentials
curl -u username:password https://posterg.erg.be/formulaire/
# Should return: 200 OK

No nginx reload needed - changes take effect immediately!


📊 Password File Details

Location: /etc/nginx/.htpasswd-posterg

Format: Standard Apache htpasswd format

username:$apr1$encrypted_password_hash

Permissions:

-rw-r--r-- root root /etc/nginx/.htpasswd-posterg

🔒 Security Tips

  1. Use Strong Passwords

    # Generate a strong password
    openssl rand -base64 32
    
  2. Avoid Common Usernames

    • Bad: admin, administrator, root
    • Good: posterg_admin, erg_webmaster
  3. Regular Password Changes

    • Change passwords every 3-6 months
    • Change immediately if compromised
  4. Monitor Access

    # Check who's accessing the admin panel
    ssh posterg
    sudo grep "formulaire" /var/log/nginx/posterg_access.log
    
  5. Backup Password File

    ssh posterg
    sudo cp /etc/nginx/.htpasswd-posterg /etc/nginx/.htpasswd-posterg.backup
    

🆘 Troubleshooting

"401 Unauthorized" even with correct password

Check file exists:

ssh posterg
ls -la /etc/nginx/.htpasswd-posterg

Verify user exists:

sudo cat /etc/nginx/.htpasswd-posterg

Check nginx config:

sudo grep -A 5 "auth_basic" /etc/nginx/sites-available/posterg

Can't change password - "command not found"

Install apache2-utils:

ssh posterg
sudo apt update
sudo apt install apache2-utils

Password file got deleted

Recreate it:

ssh posterg
sudo htpasswd -c /etc/nginx/.htpasswd-posterg new_admin

📞 Quick Reference

Task Command
Interactive menu sudo bash /tmp/manage-admin-users.sh
List users sudo cut -d: -f1 /etc/nginx/.htpasswd-posterg
Change password sudo htpasswd /etc/nginx/.htpasswd-posterg username
Add user sudo htpasswd /etc/nginx/.htpasswd-posterg newuser
Delete user sudo htpasswd -D /etc/nginx/.htpasswd-posterg username
Reset all sudo htpasswd -c /etc/nginx/.htpasswd-posterg newuser
Generate password openssl rand -base64 32

After Making Changes

No action needed! Changes to the password file take effect immediately.

You can verify with:

curl -u username:password https://posterg.erg.be/formulaire/

Remember: Store passwords securely using a password manager! 🔐