Compare commits
3 Commits
d95618dce9
..
master
| Author | SHA1 | Date | |
|---|---|---|---|
| aab211ea3b | |||
| 8b571ebb88 | |||
| 1fb0829979 |
+139
@@ -0,0 +1,139 @@
|
|||||||
|
# Mattermost CLI (mmctl) – Anmeldung & Admin-Nutzerverwaltung
|
||||||
|
|
||||||
|
Diese Anleitung beschreibt, wie du `mmctl` per **Login-Modus** (Variante 2) nutzt, statt über den Local-Socket-Modus. Damit brauchst du kein `sudo` und keine Serverkonfiguration anzupassen.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Voraussetzungen
|
||||||
|
|
||||||
|
- Mattermost läuft und ist unter einer URL erreichbar (lokal z. B. `http://localhost:8065`)
|
||||||
|
- Du hast bereits einen bestehenden System-Admin-Account (Username + Passwort)
|
||||||
|
- `mmctl` ist installiert (z. B. unter `/opt/mattermost/bin/mmctl`)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Bei mmctl anmelden
|
||||||
|
|
||||||
|
/opt/mattermost/bin/mmctl auth login http://localhost:8065 \
|
||||||
|
--name local-admin \
|
||||||
|
--username <dein-admin-username> \
|
||||||
|
--password <dein-admin-passwort>
|
||||||
|
|
||||||
|
# alternativ: zunächst das passwort in einer Datei speichern und dies dann bei der
|
||||||
|
# Authentifizierung einlesen:
|
||||||
|
#
|
||||||
|
cat << EOF > /tmp/.mm-admin-nd.auth
|
||||||
|
9-ULw6j-RRZsF./p
|
||||||
|
EOF
|
||||||
|
|
||||||
|
/opt/mattermost/bin/mmctl auth login http://localhost:8065 \
|
||||||
|
--name local-admin \
|
||||||
|
--username admin-nd \
|
||||||
|
--password-file /tmp/.mm-admin-nd.auth
|
||||||
|
|
||||||
|
|
||||||
|
**Parameter-Erklärung:**
|
||||||
|
|
||||||
|
| Parameter | Bedeutung
|
||||||
|
|-------------------------|-----------
|
||||||
|
| `http://localhost:8065` | URL deines Mattermost-Servers
|
||||||
|
| `--name local-admin` | Frei wählbarer Name für dieses Login-Profil (wird lokal gespeichert)
|
||||||
|
| `--username` | Dein bestehender Admin-Benutzername
|
||||||
|
| `--password` | Dein bestehendes Admin-Passwort
|
||||||
|
|
||||||
|
Nach erfolgreichem Login speichert `mmctl` die Session lokal (unter `~/.config/mmctl/`), sodass du dich nicht bei jedem Befehl neu anmelden musst.
|
||||||
|
|
||||||
|
**Kein `sudo` nötig** - die Authentifizierung läuft über die normale API, nicht über den geschützten Unix-Socket.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Login prüfen (optional)
|
||||||
|
|
||||||
|
/opt/mattermost/bin/mmctl auth list
|
||||||
|
|
||||||
|
Zeigt alle gespeicherten Login-Profile. Das aktive Profil ist markiert.
|
||||||
|
|
||||||
|
Falls du mehrere Profile hast und wechseln willst:
|
||||||
|
|
||||||
|
/opt/mattermost/bin/mmctl auth set local-admin
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Neuen System-Admin-Nutzer anlegen
|
||||||
|
|
||||||
|
/opt/mattermost/bin/mmctl user create \
|
||||||
|
--email "l.nienhaus@nd-online.de" \
|
||||||
|
--username "admin-nd" \
|
||||||
|
--password "EinSicheresPasswort123!" \
|
||||||
|
--system-admin
|
||||||
|
|
||||||
|
**Parameter-Erklärung:**
|
||||||
|
|
||||||
|
| Parameter | Bedeutung
|
||||||
|
|------------------|----------
|
||||||
|
| `--email` | E-Mail-Adresse des neuen Nutzers
|
||||||
|
| `--username` | Gewünschter Benutzername
|
||||||
|
| `--password` | Startpasswort (sollte sicher sein, Nutzer kann es später ändern)
|
||||||
|
| `--system-admin` | Vergibt sofort die System-Admin-Rolle
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Bestehenden Nutzer nachträglich zum Admin machen
|
||||||
|
|
||||||
|
Falls der Nutzer schon existiert und nur die Rolle fehlt:
|
||||||
|
|
||||||
|
/opt/mattermost/bin/mmctl roles system_admin <username-oder-email>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Kontrolle: Nutzerliste anzeigen
|
||||||
|
|
||||||
|
/opt/mattermost/bin/mmctl user list
|
||||||
|
|
||||||
|
Zeigt alle registrierten Nutzer inkl. E-Mail und Rollen.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Abmelden (optional, für saubere Sessions)
|
||||||
|
|
||||||
|
/opt/mattermost/bin/mmctl auth clean
|
||||||
|
|
||||||
|
Löscht alle gespeicherten Login-Profile.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
| Fehler | Ursache | Lösung |
|
||||||
|
|------------------------------------------------- | ------------------------- |---------------------------
|
||||||
|
| `socket file "/var/tmp/mattermost_local.socket" | mmctl versucht Local Mode | Erst `mmctl auth login`
|
||||||
|
| doesn't exist` | statt Login-Modus | ausführen (siehe Schritt 1)
|
||||||
|
------------------------------------------------------------------------------------------------------------
|
||||||
|
| `Error: You are not logged in` | Session abgelaufen oder | Schritt 1 wiederholen
|
||||||
|
| | nicht angemeldet |
|
||||||
|
------------------------------------------------------------------------------------------------------------
|
||||||
|
| `command not found: mmctl` | mmctl nicht im PATH | Vollen Pfad nutzen, z. B.
|
||||||
|
| | |`/opt/mattermost/bin/mmctl`
|
||||||
|
------------------------------------------------------------------------------------------------------------
|
||||||
|
| Verbindung schlägt fehl (`connection refused`) | Falsche URL oder Server | URL/Port prüfen,
|
||||||
|
| | läuft nicht | `systemctl status mattermost`
|
||||||
|
------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Kurzreferenz (Cheat Sheet)
|
||||||
|
|
||||||
|
# Anmelden
|
||||||
|
/opt/mattermost/bin/mmctl auth login http://localhost:8065 --name local-admin --username <user> --password <pass>
|
||||||
|
|
||||||
|
# Neuen Admin anlegen
|
||||||
|
/opt/mattermost/bin/mmctl user create --email "<email>" --username "<user>" --password "<pass>" --system-admin
|
||||||
|
|
||||||
|
# Bestehenden Nutzer zum Admin machen
|
||||||
|
/opt/mattermost/bin/mmctl roles system_admin <username-oder-email>
|
||||||
|
|
||||||
|
# Nutzerliste anzeigen
|
||||||
|
/opt/mattermost/bin/mmctl user list
|
||||||
|
|
||||||
|
# Abmelden / Session löschen
|
||||||
|
/opt/mattermost/bin/mmctl auth clean
|
||||||
@@ -0,0 +1,131 @@
|
|||||||
|
# Mattermost CLI (mmctl) – Anmeldung & Admin-Nutzerverwaltung
|
||||||
|
|
||||||
|
Diese Anleitung beschreibt, wie du `mmctl` per **Login-Modus** (Variante 2) nutzt, statt über den Local-Socket-Modus. Damit brauchst du kein `sudo` und keine Serverkonfiguration anzupassen.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Voraussetzungen
|
||||||
|
|
||||||
|
- Mattermost läuft und ist unter einer URL erreichbar (lokal z. B. `http://localhost:8065`)
|
||||||
|
- Du hast bereits einen bestehenden System-Admin-Account (Username + Passwort)
|
||||||
|
- `mmctl` ist installiert (z. B. unter `/opt/mattermost/bin/mmctl`)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Bei mmctl anmelden
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mmctl auth login http://localhost:8065 --name local-admin --username <dein-admin-username> --password <dein-admin-passwort>
|
||||||
|
```
|
||||||
|
|
||||||
|
**Parameter-Erklärung:**
|
||||||
|
|
||||||
|
| Parameter | Bedeutung |
|
||||||
|
|---|---|
|
||||||
|
| `http://localhost:8065` | URL deines Mattermost-Servers |
|
||||||
|
| `--name local-admin` | Frei wählbarer Name für dieses Login-Profil (wird lokal gespeichert) |
|
||||||
|
| `--username` | Dein bestehender Admin-Benutzername |
|
||||||
|
| `--password` | Dein bestehendes Admin-Passwort |
|
||||||
|
|
||||||
|
Nach erfolgreichem Login speichert `mmctl` die Session lokal (unter `~/.config/mmctl/`), sodass du dich nicht bei jedem Befehl neu anmelden musst.
|
||||||
|
|
||||||
|
**Kein `sudo` nötig** – die Authentifizierung läuft über die normale API, nicht über den geschützten Unix-Socket.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Login prüfen (optional)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mmctl auth list
|
||||||
|
```
|
||||||
|
|
||||||
|
Zeigt alle gespeicherten Login-Profile. Das aktive Profil ist markiert.
|
||||||
|
|
||||||
|
Falls du mehrere Profile hast und wechseln willst:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mmctl auth set local-admin
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Neuen System-Admin-Nutzer anlegen
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mmctl user create \
|
||||||
|
--email "l.nienhaus@nd-online.de" \
|
||||||
|
--username "admin-nd" \
|
||||||
|
--password "EinSicheresPasswort123!" \
|
||||||
|
--system-admin
|
||||||
|
```
|
||||||
|
|
||||||
|
**Parameter-Erklärung:**
|
||||||
|
|
||||||
|
| Parameter | Bedeutung |
|
||||||
|
|---|---|
|
||||||
|
| `--email` | E-Mail-Adresse des neuen Nutzers |
|
||||||
|
| `--username` | Gewünschter Benutzername |
|
||||||
|
| `--password` | Startpasswort (sollte sicher sein, Nutzer kann es später ändern) |
|
||||||
|
| `--system-admin` | Vergibt sofort die System-Admin-Rolle |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Bestehenden Nutzer nachträglich zum Admin machen
|
||||||
|
|
||||||
|
Falls der Nutzer schon existiert und nur die Rolle fehlt:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mmctl roles system_admin <username-oder-email>
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Kontrolle: Nutzerliste anzeigen
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mmctl user list
|
||||||
|
```
|
||||||
|
|
||||||
|
Zeigt alle registrierten Nutzer inkl. E-Mail und Rollen.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Abmelden (optional, für saubere Sessions)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mmctl auth clean
|
||||||
|
```
|
||||||
|
|
||||||
|
Löscht alle gespeicherten Login-Profile.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
| Fehler | Ursache | Lösung |
|
||||||
|
|---|---|---|
|
||||||
|
| `socket file "/var/tmp/mattermost_local.socket" doesn't exist` | mmctl versucht Local Mode statt Login-Modus | Erst `mmctl auth login` ausführen (siehe Schritt 1) |
|
||||||
|
| `Error: You are not logged in` | Session abgelaufen oder nicht angemeldet | Schritt 1 wiederholen |
|
||||||
|
| `command not found: mmctl` | mmctl nicht im PATH | Vollen Pfad nutzen, z. B. `/opt/mattermost/bin/mmctl` |
|
||||||
|
| Verbindung schlägt fehl (`connection refused`) | Falsche URL oder Server läuft nicht | URL/Port prüfen, `systemctl status mattermost` |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Kurzreferenz (Cheat Sheet)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Anmelden
|
||||||
|
mmctl auth login http://localhost:8065 --name local-admin --username <user> --password <pass>
|
||||||
|
|
||||||
|
# Neuen Admin anlegen
|
||||||
|
mmctl user create --email "<email>" --username "<user>" --password "<pass>" --system-admin
|
||||||
|
|
||||||
|
# Bestehenden Nutzer zum Admin machen
|
||||||
|
mmctl roles system_admin <username-oder-email>
|
||||||
|
|
||||||
|
# Nutzerliste anzeigen
|
||||||
|
mmctl user list
|
||||||
|
|
||||||
|
# Abmelden / Session löschen
|
||||||
|
mmctl auth clean
|
||||||
|
```
|
||||||
@@ -17,8 +17,9 @@ server {
|
|||||||
}
|
}
|
||||||
|
|
||||||
server {
|
server {
|
||||||
listen 443 ssl http2;
|
listen 443 ssl ;
|
||||||
listen [::]:443 ssl http2;
|
listen [::]:443 ssl ;
|
||||||
|
http2 on;
|
||||||
|
|
||||||
server_name @FQHN_HOSTNAME@;
|
server_name @FQHN_HOSTNAME@;
|
||||||
|
|
||||||
@@ -28,8 +29,6 @@ server {
|
|||||||
#
|
#
|
||||||
include snippets/letsencrypt-acme-challenge.conf;
|
include snippets/letsencrypt-acme-challenge.conf;
|
||||||
|
|
||||||
#ssl on;
|
|
||||||
|
|
||||||
ssl_certificate /var/lib/dehydrated/certs/@FQHN_HOSTNAME@/fullchain.pem;
|
ssl_certificate /var/lib/dehydrated/certs/@FQHN_HOSTNAME@/fullchain.pem;
|
||||||
ssl_certificate_key /var/lib/dehydrated/certs/@FQHN_HOSTNAME@/privkey.pem;
|
ssl_certificate_key /var/lib/dehydrated/certs/@FQHN_HOSTNAME@/privkey.pem;
|
||||||
ssl_trusted_certificate /var/lib/dehydrated/certs/@FQHN_HOSTNAME@/chain.pem;
|
ssl_trusted_certificate /var/lib/dehydrated/certs/@FQHN_HOSTNAME@/chain.pem;
|
||||||
@@ -51,15 +50,24 @@ server {
|
|||||||
# omit TLSv1 TLSv1.1
|
# omit TLSv1 TLSv1.1
|
||||||
ssl_protocols TLSv1.2 TLSv1.3;
|
ssl_protocols TLSv1.2 TLSv1.3;
|
||||||
|
|
||||||
|
# Enable TLSv1.3's 0-RTT. Use $ssl_early_data when reverse proxying to
|
||||||
|
# prevent replay attacks.
|
||||||
|
#
|
||||||
|
# @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data
|
||||||
|
ssl_early_data on;
|
||||||
|
|
||||||
# ECDHE better than DHE (faster) ECDHE & DHE GCM better than CBC (attacks on AES)
|
# ECDHE better than DHE (faster) ECDHE & DHE GCM better than CBC (attacks on AES)
|
||||||
# Everything better than SHA1 (deprecated)
|
# Everything better than SHA1 (deprecated)
|
||||||
#
|
#
|
||||||
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
|
ssl_ecdh_curve X25519MLKEM768:X25519:prime256v1:secp384r1;
|
||||||
ssl_prefer_server_ciphers on;
|
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;
|
||||||
|
ssl_prefer_server_ciphers off;
|
||||||
|
|
||||||
# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
|
# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
|
||||||
#
|
#
|
||||||
add_header Strict-Transport-Security max-age=15768000;
|
add_header Strict-Transport-Security max-age=15768000;
|
||||||
|
add_header X-Early-Data $tls1_3_early_data;
|
||||||
|
add_header X-Frame-Options SAMEORIGIN;
|
||||||
|
|
||||||
# OCSP Stapling ---
|
# OCSP Stapling ---
|
||||||
# fetch OCSP records from URL in ssl_certificate and cache them
|
# fetch OCSP records from URL in ssl_certificate and cache them
|
||||||
@@ -74,7 +82,6 @@ server {
|
|||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
proxy_set_header X-Frame-Options SAMEORIGIN;
|
|
||||||
proxy_buffers 256 16k;
|
proxy_buffers 256 16k;
|
||||||
proxy_buffer_size 16k;
|
proxy_buffer_size 16k;
|
||||||
client_body_timeout 60;
|
client_body_timeout 60;
|
||||||
@@ -93,7 +100,6 @@ server {
|
|||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
proxy_set_header X-Frame-Options SAMEORIGIN;
|
|
||||||
proxy_buffers 256 16k;
|
proxy_buffers 256 16k;
|
||||||
proxy_buffer_size 16k;
|
proxy_buffer_size 16k;
|
||||||
proxy_read_timeout 600s;
|
proxy_read_timeout 600s;
|
||||||
|
|||||||
Reference in New Issue
Block a user