mirror of
https://github.com/rustdesk/doc.rustdesk.com.git
synced 2025-12-25 16:52:47 +00:00
user_group.py, device_group.py python cli doc
Signed-off-by: 21pages <sunboeasy@gmail.com>
This commit is contained in:
parent
6af6ba3051
commit
9fb232d61f
|
|
@ -913,7 +913,25 @@ Die "Scroll-Stil"-Option in den Einstellungen jedes Peers steuert dann den Scrol
|
|||
|
||||
| Installation erforderlich | Werte | Standard | Beispiel |
|
||||
| :------: | :------: | :------: | :------: |
|
||||
| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` |
|
||||
| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` |
|
||||
|
||||
**Hinweis**: Die `scrolledge`-Option ist ab RustDesk 1.4.4 verfügbar.
|
||||
|
||||
### edge-scroll-edge-thickness
|
||||
|
||||
Diese Option steuert die Randdicke, wenn `scroll-style` auf `scrolledge` gesetzt ist. Die Randdicke bestimmt die Größe des scrollbaren Bereichs an den Bildschirmrändern.
|
||||
|
||||
Diese Option ist nur wirksam, wenn `scroll-style=scrolledge`.
|
||||
|
||||
**Ort**:
|
||||
|
||||
1. **Desktop** Einstellungen → Anzeige → Randscroll-Randdicke
|
||||
|
||||
| Installation erforderlich | Werte | Standard | Beispiel |
|
||||
| :------: | :------: | :------: | :------: |
|
||||
| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` |
|
||||
|
||||
**Hinweis**: Diese Option ist ab RustDesk 1.4.4 verfügbar.
|
||||
|
||||
### image-quality
|
||||
|
||||
|
|
|
|||
|
|
@ -916,7 +916,25 @@ The "scroll-style" option in each peer's settings will then control the scroll s
|
|||
|
||||
| Install required | Values | Default | Example |
|
||||
| :------: | :------: | :------: | :------: |
|
||||
| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` |
|
||||
| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` |
|
||||
|
||||
**Note**: The `scrolledge` option is available starting from RustDesk 1.4.4.
|
||||
|
||||
### edge-scroll-edge-thickness
|
||||
|
||||
This option controls the edge thickness when `scroll-style` is set to `scrolledge`. The edge thickness determines the size of the scrollable area at the screen edges.
|
||||
|
||||
This option is only effective when `scroll-style=scrolledge`.
|
||||
|
||||
**Location**:
|
||||
|
||||
1. **Desktop** Settings → Display → Edge scroll edge thickness
|
||||
|
||||
| Install required | Values | Default | Example |
|
||||
| :------: | :------: | :------: | :------: |
|
||||
| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` |
|
||||
|
||||
**Note**: This option is available starting from RustDesk 1.4.4.
|
||||
|
||||
### image-quality
|
||||
|
||||
|
|
|
|||
|
|
@ -913,7 +913,25 @@ La opción "estilo de scroll" en las configuraciones de cada par controlará lue
|
|||
|
||||
| Instalación requerida | Valores | Predeterminado | Ejemplo |
|
||||
| :------: | :------: | :------: | :------: |
|
||||
| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` |
|
||||
| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` |
|
||||
|
||||
**Nota**: La opción `scrolledge` está disponible a partir de RustDesk 1.4.4.
|
||||
|
||||
### edge-scroll-edge-thickness
|
||||
|
||||
Esta opción controla el grosor del borde cuando `scroll-style` está configurado en `scrolledge`. El grosor del borde determina el tamaño del área desplazable en los bordes de la pantalla.
|
||||
|
||||
Esta opción solo es efectiva cuando `scroll-style=scrolledge`.
|
||||
|
||||
**Ubicación**:
|
||||
|
||||
1. **Escritorio** Configuración → Pantalla → Grosor del borde de scroll
|
||||
|
||||
| Instalación requerida | Valores | Predeterminado | Ejemplo |
|
||||
| :------: | :------: | :------: | :------: |
|
||||
| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` |
|
||||
|
||||
**Nota**: Esta opción está disponible a partir de RustDesk 1.4.4.
|
||||
|
||||
### image-quality
|
||||
|
||||
|
|
|
|||
|
|
@ -913,7 +913,25 @@ L'option "style de défilement" dans les paramètres de chaque pair contrôlera
|
|||
|
||||
| Installation requise | Valeurs | Défaut | Exemple |
|
||||
| :------: | :------: | :------: | :------: |
|
||||
| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` |
|
||||
| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` |
|
||||
|
||||
**Note** : L'option `scrolledge` est disponible à partir de RustDesk 1.4.4.
|
||||
|
||||
### edge-scroll-edge-thickness
|
||||
|
||||
Cette option contrôle l'épaisseur du bord lorsque `scroll-style` est défini sur `scrolledge`. L'épaisseur du bord détermine la taille de la zone défilable aux bords de l'écran.
|
||||
|
||||
Cette option n'est effective que lorsque `scroll-style=scrolledge`.
|
||||
|
||||
**Emplacement** :
|
||||
|
||||
1. **Bureau** Paramètres → Affichage → Épaisseur du bord de défilement
|
||||
|
||||
| Installation requise | Valeurs | Défaut | Exemple |
|
||||
| :------: | :------: | :------: | :------: |
|
||||
| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` |
|
||||
|
||||
**Note** : Cette option est disponible à partir de RustDesk 1.4.4.
|
||||
|
||||
### image-quality
|
||||
|
||||
|
|
|
|||
|
|
@ -913,7 +913,25 @@ L'opzione "stile scorrimento" nelle impostazioni di ogni peer controllerà quind
|
|||
|
||||
| Installazione richiesta | Valori | Predefinito | Esempio |
|
||||
| :------: | :------: | :------: | :------: |
|
||||
| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` |
|
||||
| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` |
|
||||
|
||||
**Nota**: L'opzione `scrolledge` è disponibile a partire da RustDesk 1.4.4.
|
||||
|
||||
### edge-scroll-edge-thickness
|
||||
|
||||
Questa opzione controlla lo spessore del bordo quando `scroll-style` è impostato su `scrolledge`. Lo spessore del bordo determina la dimensione dell'area scorrevole ai bordi dello schermo.
|
||||
|
||||
Questa opzione è efficace solo quando `scroll-style=scrolledge`.
|
||||
|
||||
**Posizione**:
|
||||
|
||||
1. **Desktop** Impostazioni → Display → Spessore bordo scorrimento
|
||||
|
||||
| Installazione richiesta | Valori | Predefinito | Esempio |
|
||||
| :------: | :------: | :------: | :------: |
|
||||
| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` |
|
||||
|
||||
**Nota**: Questa opzione è disponibile a partire da RustDesk 1.4.4.
|
||||
|
||||
### image-quality
|
||||
|
||||
|
|
|
|||
|
|
@ -877,7 +877,25 @@ ar, bg, ca, cs, da, de, el, en, eo, es, et, fa, fr, he, hr, hu, id, it, ja, ko,
|
|||
|
||||
| インストール必要 | 値 | デフォルト | 例 |
|
||||
| :------: | :------: | :------: | :------: |
|
||||
| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` |
|
||||
| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` |
|
||||
|
||||
**注意**:`scrolledge` オプションは RustDesk 1.4.4 以降で利用可能です。
|
||||
|
||||
### edge-scroll-edge-thickness
|
||||
|
||||
このオプションは、`scroll-style` が `scrolledge` に設定されている場合のエッジの厚さを制御します。エッジの厚さは、画面の端でのスクロール可能な領域のサイズを決定します。
|
||||
|
||||
このオプションは、`scroll-style=scrolledge` の場合にのみ有効です。
|
||||
|
||||
**場所**:
|
||||
|
||||
1. **デスクトップ** 設定 → ディスプレイ → エッジスクロールの厚さ
|
||||
|
||||
| インストール必要 | 値 | デフォルト | 例 |
|
||||
| :------: | :------: | :------: | :------: |
|
||||
| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` |
|
||||
|
||||
**注意**:このオプションは RustDesk 1.4.4 以降で利用可能です。
|
||||
|
||||
### image-quality
|
||||
|
||||
|
|
|
|||
|
|
@ -916,7 +916,25 @@ Opcja "scroll-style" w ustawieniach każdego partnera będzie wtedy kontrolować
|
|||
|
||||
| Wymagana instalacja | Wartości | Domyślne | Przykład |
|
||||
| :------: | :------: | :------: | :------: |
|
||||
| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` |
|
||||
| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` |
|
||||
|
||||
**Uwaga**: Opcja `scrolledge` jest dostępna od RustDesk 1.4.4.
|
||||
|
||||
### edge-scroll-edge-thickness
|
||||
|
||||
Ta opcja kontroluje grubość krawędzi, gdy `scroll-style` jest ustawiony na `scrolledge`. Grubość krawędzi określa rozmiar obszaru przewijanego na krawędziach ekranu.
|
||||
|
||||
Ta opcja jest skuteczna tylko wtedy, gdy `scroll-style=scrolledge`.
|
||||
|
||||
**Lokalizacja**:
|
||||
|
||||
1. **K. stacjonarny** Ustawienia → Wyświetlanie → Grubość krawędzi przewijania
|
||||
|
||||
| Wymagana instalacja | Wartości | Domyślne | Przykład |
|
||||
| :------: | :------: | :------: | :------: |
|
||||
| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` |
|
||||
|
||||
**Uwaga**: Ta opcja jest dostępna od RustDesk 1.4.4.
|
||||
|
||||
### image-quality
|
||||
|
||||
|
|
|
|||
|
|
@ -915,7 +915,25 @@ A opção "estilo de rolagem" nas configurações de cada par controlará então
|
|||
|
||||
| Instalação necessária | Valores | Padrão | Exemplo |
|
||||
| :------: | :------: | :------: | :------: |
|
||||
| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` |
|
||||
| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` |
|
||||
|
||||
**Nota**: A opção `scrolledge` está disponível a partir do RustDesk 1.4.4.
|
||||
|
||||
### edge-scroll-edge-thickness
|
||||
|
||||
Esta opção controla a espessura da borda quando `scroll-style` está definido como `scrolledge`. A espessura da borda determina o tamanho da área rolável nas bordas da tela.
|
||||
|
||||
Esta opção só é efetiva quando `scroll-style=scrolledge`.
|
||||
|
||||
**Localização**:
|
||||
|
||||
1. **Desktop** Configurações → Display → Espessura da borda de rolagem
|
||||
|
||||
| Instalação necessária | Valores | Padrão | Exemplo |
|
||||
| :------: | :------: | :------: | :------: |
|
||||
| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` |
|
||||
|
||||
**Nota**: Esta opção está disponível a partir do RustDesk 1.4.4.
|
||||
|
||||
### image-quality
|
||||
|
||||
|
|
|
|||
|
|
@ -916,7 +916,25 @@ Setarea din fiecare peer va controla stilul de derulare.
|
|||
|
||||
| Install required | Values | Default | Example |
|
||||
| :------: | :------: | :------: | :------: |
|
||||
| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` |
|
||||
| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` |
|
||||
|
||||
**Notă**: Opțiunea `scrolledge` este disponibilă începând cu RustDesk 1.4.4.
|
||||
|
||||
### edge-scroll-edge-thickness
|
||||
|
||||
Această opțiune controlează grosimea marginii când `scroll-style` este setat pe `scrolledge`. Grosimea marginii determină dimensiunea zonei derulabile la marginile ecranului.
|
||||
|
||||
Această opțiune este efectivă doar când `scroll-style=scrolledge`.
|
||||
|
||||
**Locație**:
|
||||
|
||||
1. **Desktop** Settings → Display → Edge scroll edge thickness
|
||||
|
||||
| Install required | Values | Default | Example |
|
||||
| :------: | :------: | :------: | :------: |
|
||||
| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` |
|
||||
|
||||
**Notă**: Această opțiune este disponibilă începând cu RustDesk 1.4.4.
|
||||
|
||||
### image-quality
|
||||
|
||||
|
|
|
|||
|
|
@ -914,7 +914,25 @@ ar, bg, ca, cs, da, de, el, en, eo, es, et, fa, fr, he, hr, hu, id, it, ja, ko,
|
|||
|
||||
| 安装需要 | 值 | 默认值 | 示例 |
|
||||
| :------: | :------: | :------: | :------: |
|
||||
| 否 | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` |
|
||||
| 否 | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` |
|
||||
|
||||
**注意**:`scrolledge` 选项从 RustDesk 1.4.4 开始可用。
|
||||
|
||||
### edge-scroll-edge-thickness
|
||||
|
||||
此选项控制当 `scroll-style` 设置为 `scrolledge` 时的边缘厚度。边缘厚度决定了屏幕边缘可滚动区域的大小。
|
||||
|
||||
此选项仅在 `scroll-style=scrolledge` 时有效。
|
||||
|
||||
**位置**:
|
||||
|
||||
1. **桌面** 设置 → 显示 → 边缘滚动边缘厚度
|
||||
|
||||
| 安装需要 | 值 | 默认值 | 示例 |
|
||||
| :------: | :------: | :------: | :------: |
|
||||
| 否 | 20-150 | 100 | `edge-scroll-edge-thickness=100` |
|
||||
|
||||
**注意**:此选项从 RustDesk 1.4.4 开始可用。
|
||||
|
||||
### image-quality
|
||||
|
||||
|
|
|
|||
|
|
@ -916,7 +916,25 @@ ar, bg, ca, cs, da, de, el, en, eo, es, et, fa, fr, he, hr, hu, id, it, ja, ko,
|
|||
|
||||
| 安裝需要 | 值 | 預設值 | 範例 |
|
||||
| :------: | :------: | :------: | :------: |
|
||||
| 否 | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` |
|
||||
| 否 | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` |
|
||||
|
||||
**注意**:`scrolledge` 選項從 RustDesk 1.4.4 開始可用。
|
||||
|
||||
### edge-scroll-edge-thickness
|
||||
|
||||
此選項控制當 `scroll-style` 設定為 `scrolledge` 時的邊緣厚度。邊緣厚度決定了螢幕邊緣可滾動區域的大小。
|
||||
|
||||
此選項僅在 `scroll-style=scrolledge` 時有效。
|
||||
|
||||
**位置**:
|
||||
|
||||
1. **桌面** 設定 → 顯示 → 邊緣滾動邊緣厚度
|
||||
|
||||
| 安裝需要 | 值 | 預設值 | 範例 |
|
||||
| :------: | :------: | :------: | :------: |
|
||||
| 否 | 20-150 | 100 | `edge-scroll-edge-thickness=100` |
|
||||
|
||||
**注意**:此選項從 RustDesk 1.4.4 開始可用。
|
||||
|
||||
### image-quality
|
||||
|
||||
|
|
|
|||
|
|
@ -143,23 +143,197 @@ oder
|
|||
#### Benutzerverwaltung (`users.py`)
|
||||
|
||||
**Hilfe anzeigen:**
|
||||
./users.py -h
|
||||
`./users.py -h`
|
||||
|
||||
**Benutzer anzeigen:**
|
||||
./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]
|
||||
`./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]`
|
||||
|
||||
**Filter:**
|
||||
`--name`: Benutzername
|
||||
`--group_name`: Benutzergruppe
|
||||
**Filter:**
|
||||
- `--name`: Benutzername (unscharfe Suche)
|
||||
- `--group_name`: Benutzergruppe (exakte Übereinstimmung)
|
||||
|
||||
**Beispiel:**
|
||||
./users.py --url https://example.com --token <token> view --group_name admins
|
||||
`./users.py --url https://example.com --token <token> view --group_name Default`
|
||||
|
||||
**Operationen:**
|
||||
`view` kann durch `enable`, `disable` oder `delete` ersetzt werden.
|
||||
**Grundlegende Operationen:**
|
||||
|
||||
**Beispiel (Benutzer deaktivieren):**
|
||||
./users.py --url https://example.com --token <token> disable --name testuser
|
||||
- **Benutzer deaktivieren:**
|
||||
`./users.py --url <url> --token <token> disable --name testuser`
|
||||
|
||||
- **Benutzer aktivieren:**
|
||||
`./users.py --url <url> --token <token> enable --name testuser`
|
||||
|
||||
- **Benutzer löschen:**
|
||||
`./users.py --url <url> --token <token> delete --name testuser`
|
||||
|
||||
**Benutzererstellung und Einladung:**
|
||||
|
||||
- **Neuen Benutzer erstellen:**
|
||||
`./users.py --url <url> --token <token> new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "Notiz"]`
|
||||
|
||||
Erforderlich: `--name`, `--password`, `--group_name`
|
||||
Optional: `--email`, `--note`
|
||||
|
||||
- **Benutzer per E-Mail einladen:**
|
||||
`./users.py --url <url> --token <token> invite --email user@example.com --name username --group_name Default [--note "Notiz"]`
|
||||
|
||||
Erforderlich: `--email`, `--name`, `--group_name`
|
||||
Optional: `--note`
|
||||
|
||||
**2FA und Sicherheitsoperationen:**
|
||||
|
||||
- **2FA-Erzwingung aktivieren:**
|
||||
`./users.py --url <url> --token <token> enable-2fa-enforce --name username --web-console-url <console_url>`
|
||||
|
||||
Erforderlich: `--web-console-url`
|
||||
|
||||
- **2FA-Erzwingung deaktivieren:**
|
||||
`./users.py --url <url> --token <token> disable-2fa-enforce --name username [--web-console-url <console_url>]`
|
||||
|
||||
Optional: `--web-console-url`
|
||||
|
||||
- **2FA zurücksetzen:**
|
||||
`./users.py --url <url> --token <token> reset-2fa --name username`
|
||||
|
||||
- **E-Mail-Verifizierung deaktivieren:**
|
||||
`./users.py --url <url> --token <token> disable-email-verification --name username`
|
||||
|
||||
- **Erzwungenes Abmelden:**
|
||||
`./users.py --url <url> --token <token> force-logout --name username`
|
||||
|
||||
**Hinweise:**
|
||||
- Bei Operationen auf mehrere Benutzer (durch Filter übereinstimmend) wird eine Bestätigung angefordert
|
||||
- Wenn keine Benutzer übereinstimmen, wird "Found 0 users" angezeigt
|
||||
|
||||
---
|
||||
|
||||
#### Benutzergruppenverwaltung (`user_group.py`)
|
||||
|
||||
**Hilfe anzeigen:**
|
||||
`./user_group.py -h`
|
||||
|
||||
**Benutzergruppen anzeigen:**
|
||||
`./user_group.py --url <url> --token <token> view [--name <group_name>]`
|
||||
|
||||
**Beispiel:**
|
||||
`./user_group.py --url https://example.com --token <token> view --name "Vertriebsteam"`
|
||||
|
||||
**Gruppenoperationen:**
|
||||
|
||||
- **Benutzergruppe erstellen:**
|
||||
`./user_group.py --url <url> --token <token> add --name "Gruppenname" [--note "Beschreibung"] [--accessed-from '<json>'] [--access-to '<json>']`
|
||||
|
||||
Beispiel mit Zugriffskontrolle:
|
||||
`./user_group.py --url <url> --token <token> add --name "Engineering" --accessed-from '[{"type":0,"name":"Manager"}]' --access-to '[{"type":1,"name":"Dev-Server"}]'`
|
||||
|
||||
- **Benutzergruppe aktualisieren:**
|
||||
`./user_group.py --url <url> --token <token> update --name "Gruppenname" [--new-name "Neuer Name"] [--note "Neue Notiz"] [--accessed-from '<json>'] [--access-to '<json>']`
|
||||
|
||||
- **Benutzergruppe löschen:**
|
||||
`./user_group.py --url <url> --token <token> delete --name "Gruppenname"`
|
||||
|
||||
Unterstützt kommagetrennte Namen: `--name "Gruppe1,Gruppe2,Gruppe3"`
|
||||
|
||||
**Benutzerverwaltung in Gruppen:**
|
||||
|
||||
- **Benutzer in Gruppe anzeigen:**
|
||||
`./user_group.py --url <url> --token <token> view-users [--name <group_name>] [--user-name <username>]`
|
||||
|
||||
Filter:
|
||||
- `--name`: Gruppenname (exakte Übereinstimmung, optional)
|
||||
- `--user-name`: Benutzername (unscharfe Suche, optional)
|
||||
|
||||
Beispiel:
|
||||
`./user_group.py --url <url> --token <token> view-users --name Default --user-name john`
|
||||
|
||||
- **Benutzer zur Gruppe hinzufügen:**
|
||||
`./user_group.py --url <url> --token <token> add-users --name "Gruppenname" --users "user1,user2,user3"`
|
||||
|
||||
**Zugriffskontrollparameter:**
|
||||
|
||||
- `--accessed-from`: JSON-Array, das definiert, wer auf diese Benutzergruppe zugreifen kann
|
||||
- Type 0 = Benutzergruppe (z.B. `[{"type":0,"name":"Admins"}]`)
|
||||
- Type 2 = Benutzer (z.B. `[{"type":2,"name":"john"}]`)
|
||||
|
||||
- `--access-to`: JSON-Array, das definiert, worauf diese Benutzergruppe zugreifen kann
|
||||
- Type 0 = Benutzergruppe (z.B. `[{"type":0,"name":"Support"}]`)
|
||||
- Type 1 = Gerätegruppe (z.B. `[{"type":1,"name":"Server"}]`)
|
||||
|
||||
**Hinweis:** Verwenden Sie einfache Anführungszeichen um JSON-Arrays, um Shell-Parsing-Probleme zu vermeiden.
|
||||
|
||||
**Berechtigungsanforderungen:**
|
||||
- `view/add/update/delete/add-users` Befehle benötigen **Benutzergruppen-Berechtigung**
|
||||
- `view-users` Befehl benötigt **Benutzerberechtigung**
|
||||
|
||||
---
|
||||
|
||||
#### Gerätegruppenverwaltung (`device_group.py`)
|
||||
|
||||
**Hilfe anzeigen:**
|
||||
`./device_group.py -h`
|
||||
|
||||
**Gerätegruppen anzeigen:**
|
||||
`./device_group.py --url <url> --token <token> view [--name <group_name>]`
|
||||
|
||||
**Beispiel:**
|
||||
`./device_group.py --url https://example.com --token <token> view`
|
||||
|
||||
**Gruppenoperationen:**
|
||||
|
||||
- **Gerätegruppe erstellen:**
|
||||
`./device_group.py --url <url> --token <token> add --name "Gruppenname" [--note "Beschreibung"] [--accessed-from '<json>']`
|
||||
|
||||
Beispiel:
|
||||
`./device_group.py --url <url> --token <token> add --name "Produktion" --accessed-from '[{"type":0,"name":"Admins"}]'`
|
||||
|
||||
- **Gerätegruppe aktualisieren:**
|
||||
`./device_group.py --url <url> --token <token> update --name "Gruppenname" [--new-name "Neuer Name"] [--note "Neue Notiz"] [--accessed-from '<json>']`
|
||||
|
||||
- **Gerätegruppe löschen:**
|
||||
`./device_group.py --url <url> --token <token> delete --name "Gruppenname"`
|
||||
|
||||
Unterstützt kommagetrennte Namen: `--name "Gruppe1,Gruppe2,Gruppe3"`
|
||||
|
||||
**Geräteverwaltung in Gruppen:**
|
||||
|
||||
- **Geräte in Gruppe anzeigen:**
|
||||
`./device_group.py --url <url> --token <token> view-devices [Filter]`
|
||||
|
||||
Verfügbare Filter:
|
||||
- `--name`: Gerätegruppenname (exakte Übereinstimmung)
|
||||
- `--id`: Geräte-ID (unscharfe Suche)
|
||||
- `--device-name`: Gerätename (unscharfe Suche)
|
||||
- `--user-name`: Benutzername/Besitzer (unscharfe Suche)
|
||||
- `--device-username`: Am Gerät angemeldeter Benutzername (unscharfe Suche)
|
||||
|
||||
Beispiele:
|
||||
```bash
|
||||
# Alle Geräte in einer Gruppe anzeigen
|
||||
./device_group.py --url <url> --token <token> view-devices --name Produktion
|
||||
|
||||
# Nach Gerätename suchen
|
||||
./device_group.py --url <url> --token <token> view-devices --device-name server
|
||||
|
||||
# Filter kombinieren
|
||||
./device_group.py --url <url> --token <token> view-devices --name Produktion --user-name john
|
||||
```
|
||||
|
||||
|
||||
- **Geräte zur Gruppe hinzufügen:**
|
||||
`./device_group.py --url <url> --token <token> add-devices --name "Gruppenname" --ids "deviceid1,deviceid2"`
|
||||
|
||||
- **Geräte aus Gruppe entfernen:**
|
||||
`./device_group.py --url <url> --token <token> remove-devices --name "Gruppenname" --ids "deviceid1,deviceid2"`
|
||||
|
||||
**Zugriffskontrollparameter:**
|
||||
|
||||
- `--accessed-from`: JSON-Array, das definiert, wer auf diese Gerätegruppe zugreifen kann
|
||||
- Type 0 = Benutzergruppe (z.B. `[{"type":0,"name":"Engineers"}]`)
|
||||
- Type 2 = Benutzer (z.B. `[{"type":2,"name":"admin"}]`)
|
||||
|
||||
**Berechtigungsanforderungen:**
|
||||
- `view/add/update/delete/add-devices/remove-devices` Befehle benötigen **Gerätegruppen-Berechtigung**
|
||||
- `view-devices` Befehl benötigt **Geräteberechtigung**
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -233,6 +407,74 @@ oder
|
|||
|
||||
---
|
||||
|
||||
#### Strategieverwaltung (`strategies.py`)
|
||||
|
||||
**Hilfe anzeigen:**
|
||||
`./strategies.py -h`
|
||||
|
||||
**Alle Strategien auflisten:**
|
||||
`./strategies.py --url <url> --token <token> list`
|
||||
|
||||
**Spezifische Strategie anzeigen:**
|
||||
```bash
|
||||
# Nach Name
|
||||
./strategies.py --url <url> --token <token> view --name "Default"
|
||||
|
||||
# Nach GUID
|
||||
./strategies.py --url <url> --token <token> view --guid "01983006-fcca-7c12-9a91-b1df483c6073"
|
||||
```
|
||||
|
||||
**Strategie aktivieren oder deaktivieren:**
|
||||
```bash
|
||||
./strategies.py --url <url> --token <token> enable --name "StrategieName"
|
||||
./strategies.py --url <url> --token <token> disable --name "StrategieName"
|
||||
```
|
||||
|
||||
**Strategie Geräten, Benutzern oder Gerätegruppen zuweisen:**
|
||||
```bash
|
||||
# Geräten zuweisen (nach Geräte-ID)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --peers "1849118658,1337348840"
|
||||
|
||||
# Benutzern zuweisen (nach Benutzername)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --users "admin,user1"
|
||||
|
||||
# Gerätegruppen zuweisen (nach Gruppenname)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --device-groups "device_group1,Production"
|
||||
|
||||
# Gemischte Zuweisung
|
||||
./strategies.py --url <url> --token <token> assign \
|
||||
--name "Default" \
|
||||
--peers "1849118658" \
|
||||
--users "admin" \
|
||||
--device-groups "device_group1"
|
||||
```
|
||||
|
||||
**Strategie-Zuweisung aufheben:**
|
||||
```bash
|
||||
# Von Geräten aufheben
|
||||
./strategies.py --url <url> --token <token> unassign --peers "1849118658,1337348840"
|
||||
|
||||
# Von Benutzern aufheben
|
||||
./strategies.py --url <url> --token <token> unassign --users "admin"
|
||||
|
||||
# Von Gerätegruppen aufheben
|
||||
./strategies.py --url <url> --token <token> unassign --device-groups "device_group1"
|
||||
```
|
||||
|
||||
**Hinweise:**
|
||||
- Das Skript unterstützt sowohl Namen als auch GUIDs für Benutzer und Gerätegruppen
|
||||
- Geräte-IDs werden automatisch in GUIDs konvertiert
|
||||
- Alle assign/unassign-Operationen können mehrere Ziele gleichzeitig bearbeiten
|
||||
|
||||
**Berechtigungsanforderungen:**
|
||||
- `list/view/enable/disable/assign/unassign` Befehle benötigen **Strategie-Berechtigung**
|
||||
- `--peers` benötigt **Geräte-Berechtigung:r** (für ID zu GUID Lookup)
|
||||
- `--users` benötigt **Benutzer-Berechtigung:r** (für Benutzername zu GUID Lookup)
|
||||
- `--device-groups` benötigt **Gerätegruppen-Berechtigung:r** (für Gruppenname zu GUID Lookup)
|
||||
|
||||
---
|
||||
|
||||
|
||||
#### Prüfprotokolle (`audits.py`)
|
||||
|
||||
**Hilfe anzeigen:**
|
||||
|
|
|
|||
|
|
@ -145,17 +145,188 @@ The command line on Windows does not have output by default. To get output, plea
|
|||
`./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]`
|
||||
|
||||
**Filters:**
|
||||
`--name`: username
|
||||
`--group_name`: user group
|
||||
- `--name`: username (fuzzy search)
|
||||
- `--group_name`: user group (exact match)
|
||||
|
||||
**Example:**
|
||||
`./users.py --url https://example.com --token <token> view --group_name admins`
|
||||
`./users.py --url https://example.com --token <token> view --group_name Default`
|
||||
|
||||
**Operations:**
|
||||
view can be replaced with `enable`, `disable`, or `delete`.
|
||||
**Basic operations:**
|
||||
|
||||
**Example (disable user):**
|
||||
`./users.py --url https://example.com --token <token> disable --name testuser`
|
||||
- **Disable user:**
|
||||
`./users.py --url <url> --token <token> disable --name testuser`
|
||||
|
||||
- **Enable user:**
|
||||
`./users.py --url <url> --token <token> enable --name testuser`
|
||||
|
||||
- **Delete user:**
|
||||
`./users.py --url <url> --token <token> delete --name testuser`
|
||||
|
||||
**User creation and invitation:**
|
||||
|
||||
- **Create new user:**
|
||||
`./users.py --url <url> --token <token> new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "note"]`
|
||||
|
||||
Required: `--name`, `--password`, `--group_name`
|
||||
Optional: `--email`, `--note`
|
||||
|
||||
- **Invite user by email:**
|
||||
`./users.py --url <url> --token <token> invite --email user@example.com --name username --group_name Default [--note "note"]`
|
||||
|
||||
Required: `--email`, `--name`, `--group_name`
|
||||
Optional: `--note`
|
||||
|
||||
**2FA and security operations:**
|
||||
|
||||
- **Enable 2FA enforcement:**
|
||||
`./users.py --url <url> --token <token> enable-2fa-enforce --name username --web-console-url <console_url>`
|
||||
|
||||
Required: `--web-console-url`
|
||||
|
||||
- **Disable 2FA enforcement:**
|
||||
`./users.py --url <url> --token <token> disable-2fa-enforce --name username [--web-console-url <console_url>]`
|
||||
|
||||
Optional: `--web-console-url`
|
||||
|
||||
- **Reset 2FA:**
|
||||
`./users.py --url <url> --token <token> reset-2fa --name username`
|
||||
|
||||
- **Disable email verification:**
|
||||
`./users.py --url <url> --token <token> disable-email-verification --name username`
|
||||
|
||||
- **Force logout:**
|
||||
`./users.py --url <url> --token <token> force-logout --name username`
|
||||
|
||||
**Notes:**
|
||||
- When operating on multiple users (matched by filters), you will be prompted for confirmation
|
||||
- If no users match the filter, it will display "Found 0 users"
|
||||
|
||||
---
|
||||
|
||||
#### User Groups Management (`user_group.py`)
|
||||
|
||||
**Show help:**
|
||||
`./user_group.py -h`
|
||||
|
||||
**View user groups:**
|
||||
`./user_group.py --url <url> --token <token> view [--name <group_name>]`
|
||||
|
||||
**Example:**
|
||||
`./user_group.py --url https://example.com --token <token> view --name "Sales Team"`
|
||||
|
||||
**Group operations:**
|
||||
|
||||
- **Create user group:**
|
||||
`./user_group.py --url <url> --token <token> add --name "GroupName" [--note "description"] [--accessed-from '<json>'] [--access-to '<json>']`
|
||||
|
||||
Example with access control:
|
||||
`./user_group.py --url <url> --token <token> add --name "Engineering" --accessed-from '[{"type":0,"name":"Managers"}]' --access-to '[{"type":1,"name":"DevServers"}]'`
|
||||
|
||||
- **Update user group:**
|
||||
`./user_group.py --url <url> --token <token> update --name "GroupName" [--new-name "NewName"] [--note "new note"] [--accessed-from '<json>'] [--access-to '<json>']`
|
||||
|
||||
- **Delete user group:**
|
||||
`./user_group.py --url <url> --token <token> delete --name "GroupName"`
|
||||
|
||||
Supports comma-separated names: `--name "Group1,Group2,Group3"`
|
||||
|
||||
**User management in groups:**
|
||||
|
||||
- **View users in group:**
|
||||
`./user_group.py --url <url> --token <token> view-users [--name <group_name>] [--user-name <username>]`
|
||||
|
||||
Filters:
|
||||
- `--name`: group name (exact match, optional)
|
||||
- `--user-name`: username (fuzzy search, optional)
|
||||
|
||||
Example:
|
||||
`./user_group.py --url <url> --token <token> view-users --name Default --user-name john`
|
||||
|
||||
- **Add users to group:**
|
||||
`./user_group.py --url <url> --token <token> add-users --name "GroupName" --users "user1,user2,user3"`
|
||||
|
||||
**Access control parameters:**
|
||||
|
||||
- `--accessed-from`: JSON array defining who can access this user group
|
||||
- Type 0 = User Group (e.g., `[{"type":0,"name":"Admins"}]`)
|
||||
- Type 2 = User (e.g., `[{"type":2,"name":"john"}]`)
|
||||
|
||||
- `--access-to`: JSON array defining what this user group can access
|
||||
- Type 0 = User Group (e.g., `[{"type":0,"name":"Support"}]`)
|
||||
- Type 1 = Device Group (e.g., `[{"type":1,"name":"Servers"}]`)
|
||||
|
||||
**Permission requirements:**
|
||||
- `view/add/update/delete/add-users` commands require **User Group Permission**
|
||||
- `view-users` command requires **User Permission**
|
||||
|
||||
---
|
||||
|
||||
#### Device Groups Management (`device_group.py`)
|
||||
|
||||
**Show help:**
|
||||
`./device_group.py -h`
|
||||
|
||||
**View device groups:**
|
||||
`./device_group.py --url <url> --token <token> view [--name <group_name>]`
|
||||
|
||||
**Example:**
|
||||
`./device_group.py --url https://example.com --token <token> view`
|
||||
|
||||
**Group operations:**
|
||||
|
||||
- **Create device group:**
|
||||
`./device_group.py --url <url> --token <token> add --name "GroupName" [--note "description"] [--accessed-from '<json>']`
|
||||
|
||||
Example:
|
||||
`./device_group.py --url <url> --token <token> add --name "Production" --accessed-from '[{"type":0,"name":"Admins"}]'`
|
||||
|
||||
- **Update device group:**
|
||||
`./device_group.py --url <url> --token <token> update --name "GroupName" [--new-name "NewName"] [--note "new note"] [--accessed-from '<json>']`
|
||||
|
||||
- **Delete device group:**
|
||||
`./device_group.py --url <url> --token <token> delete --name "GroupName"`
|
||||
|
||||
Supports comma-separated names: `--name "Group1,Group2,Group3"`
|
||||
|
||||
**Device management in groups:**
|
||||
|
||||
- **View devices in group:**
|
||||
`./device_group.py --url <url> --token <token> view-devices [filters]`
|
||||
|
||||
Available filters:
|
||||
- `--name`: device group name (exact match)
|
||||
- `--id`: device ID (fuzzy search)
|
||||
- `--device-name`: device name (fuzzy search)
|
||||
- `--user-name`: user name/owner (fuzzy search)
|
||||
- `--device-username`: logged-in username on device (fuzzy search)
|
||||
|
||||
Examples:
|
||||
```bash
|
||||
# View all devices in a group
|
||||
./device_group.py --url <url> --token <token> view-devices --name Production
|
||||
|
||||
# Search by device name
|
||||
./device_group.py --url <url> --token <token> view-devices --device-name server
|
||||
|
||||
# Combine filters
|
||||
./device_group.py --url <url> --token <token> view-devices --name Production --user-name john
|
||||
```
|
||||
|
||||
- **Add devices to group:**
|
||||
`./device_group.py --url <url> --token <token> add-devices --name "GroupName" --ids "deviceid1,deviceid2"`
|
||||
|
||||
- **Remove devices from group:**
|
||||
`./device_group.py --url <url> --token <token> remove-devices --name "GroupName" --ids "deviceid1,deviceid2"`
|
||||
|
||||
**Access control parameter:**
|
||||
|
||||
- `--accessed-from`: JSON array defining who can access this device group
|
||||
- Type 0 = User Group (e.g., `[{"type":0,"name":"Engineers"}]`)
|
||||
- Type 2 = User (e.g., `[{"type":2,"name":"admin"}]`)
|
||||
|
||||
**Permission requirements:**
|
||||
- `view/add/update/delete/add-devices/remove-devices` commands require **Device Group Permission**
|
||||
- `view-devices` command requires **Device Permission**
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -229,6 +400,73 @@ view can be replaced with `enable`, `disable`, `delete`, or `assign`.
|
|||
|
||||
---
|
||||
|
||||
#### Strategies Management (`strategies.py`)
|
||||
|
||||
**Show help:**
|
||||
`./strategies.py -h`
|
||||
|
||||
**List all strategies:**
|
||||
`./strategies.py --url <url> --token <token> list`
|
||||
|
||||
**View a specific strategy:**
|
||||
```bash
|
||||
# By name
|
||||
./strategies.py --url <url> --token <token> view --name "Default"
|
||||
|
||||
# By GUID
|
||||
./strategies.py --url <url> --token <token> view --guid "01983006-fcca-7c12-9a91-b1df483c6073"
|
||||
```
|
||||
|
||||
**Enable or disable a strategy:**
|
||||
```bash
|
||||
./strategies.py --url <url> --token <token> enable --name "StrategyName"
|
||||
./strategies.py --url <url> --token <token> disable --name "StrategyName"
|
||||
```
|
||||
|
||||
**Assign strategy to devices, users, or device groups:**
|
||||
```bash
|
||||
# Assign to devices (by device ID)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --peers "1849118658,1337348840"
|
||||
|
||||
# Assign to users (by username)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --users "admin,user1"
|
||||
|
||||
# Assign to device groups (by group name)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --device-groups "device_group1,Production"
|
||||
|
||||
# Mixed assignment
|
||||
./strategies.py --url <url> --token <token> assign \
|
||||
--name "Default" \
|
||||
--peers "1849118658" \
|
||||
--users "admin" \
|
||||
--device-groups "device_group1"
|
||||
```
|
||||
|
||||
**Unassign strategy:**
|
||||
```bash
|
||||
# Unassign from devices
|
||||
./strategies.py --url <url> --token <token> unassign --peers "1849118658,1337348840"
|
||||
|
||||
# Unassign from users
|
||||
./strategies.py --url <url> --token <token> unassign --users "admin"
|
||||
|
||||
# Unassign from device groups
|
||||
./strategies.py --url <url> --token <token> unassign --device-groups "device_group1"
|
||||
```
|
||||
|
||||
**Notes:**
|
||||
- The script supports both names and GUIDs for users and device groups
|
||||
- Device IDs are automatically converted to GUIDs
|
||||
- All assign/unassign operations can target multiple resources at once
|
||||
|
||||
**Permission requirements:**
|
||||
- `list/view/enable/disable/assign/unassign` commands require **Strategy Permission**
|
||||
- `--peers` requires **Device Permission:r** (for ID to GUID lookup)
|
||||
- `--users` requires **User Permission:r** (for username to GUID lookup)
|
||||
- `--device-groups` requires **Device Group Permission:r** (for name to GUID lookup)
|
||||
|
||||
---
|
||||
|
||||
#### Audits (`audits.py`)
|
||||
|
||||
**Show help:**
|
||||
|
|
|
|||
|
|
@ -141,30 +141,198 @@ ver [aquí](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomm
|
|||
|
||||
#### Gestión de Usuarios (`users.py`)
|
||||
|
||||
**Mostrar ayuda:**
|
||||
**Mostrar ayuda:**
|
||||
`./users.py -h`
|
||||
|
||||
./users.py -h
|
||||
|
||||
**Ver usuarios:**
|
||||
|
||||
./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]
|
||||
**Ver usuarios:**
|
||||
`./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]`
|
||||
|
||||
**Filtros:**
|
||||
- `--name`: nombre de usuario (búsqueda difusa)
|
||||
- `--group_name`: grupo de usuarios (coincidencia exacta)
|
||||
|
||||
--name: nombre de usuario
|
||||
--group_name: grupo de usuarios
|
||||
**Ejemplo:**
|
||||
`./users.py --url https://example.com --token <token> view --group_name Default`
|
||||
|
||||
**Ejemplo:**
|
||||
**Operaciones básicas:**
|
||||
|
||||
./users.py --url https://example.com --token <token> view --group_name admins
|
||||
- **Deshabilitar usuario:**
|
||||
`./users.py --url <url> --token <token> disable --name testuser`
|
||||
|
||||
**Operaciones:**
|
||||
- **Habilitar usuario:**
|
||||
`./users.py --url <url> --token <token> enable --name testuser`
|
||||
|
||||
`view` puede reemplazarse por `enable`, `disable`, o `delete`.
|
||||
- **Eliminar usuario:**
|
||||
`./users.py --url <url> --token <token> delete --name testuser`
|
||||
|
||||
**Ejemplo (deshabilitar usuario):**
|
||||
**Creación e invitación de usuarios:**
|
||||
|
||||
./users.py --url https://example.com --token <token> disable --name testuser
|
||||
- **Crear nuevo usuario:**
|
||||
`./users.py --url <url> --token <token> new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "nota"]`
|
||||
|
||||
Requerido: `--name`, `--password`, `--group_name`
|
||||
Opcional: `--email`, `--note`
|
||||
|
||||
- **Invitar usuario por correo:**
|
||||
`./users.py --url <url> --token <token> invite --email user@example.com --name username --group_name Default [--note "nota"]`
|
||||
|
||||
Requerido: `--email`, `--name`, `--group_name`
|
||||
Opcional: `--note`
|
||||
|
||||
**Operaciones 2FA y seguridad:**
|
||||
|
||||
- **Habilitar aplicación 2FA:**
|
||||
`./users.py --url <url> --token <token> enable-2fa-enforce --name username --web-console-url <console_url>`
|
||||
|
||||
Requerido: `--web-console-url`
|
||||
|
||||
- **Deshabilitar aplicación 2FA:**
|
||||
`./users.py --url <url> --token <token> disable-2fa-enforce --name username [--web-console-url <console_url>]`
|
||||
|
||||
Opcional: `--web-console-url`
|
||||
|
||||
- **Restablecer 2FA:**
|
||||
`./users.py --url <url> --token <token> reset-2fa --name username`
|
||||
|
||||
- **Deshabilitar verificación por correo:**
|
||||
`./users.py --url <url> --token <token> disable-email-verification --name username`
|
||||
|
||||
- **Cerrar sesión forzada:**
|
||||
`./users.py --url <url> --token <token> force-logout --name username`
|
||||
|
||||
**Notas:**
|
||||
- Al operar sobre múltiples usuarios (coincidentes con filtros), se solicitará confirmación
|
||||
- Si no hay usuarios coincidentes, se mostrará "Found 0 users"
|
||||
|
||||
---
|
||||
|
||||
#### Gestión de Grupos de Usuarios (`user_group.py`)
|
||||
|
||||
**Mostrar ayuda:**
|
||||
`./user_group.py -h`
|
||||
|
||||
**Ver grupos de usuarios:**
|
||||
`./user_group.py --url <url> --token <token> view [--name <group_name>]`
|
||||
|
||||
**Ejemplo:**
|
||||
`./user_group.py --url https://example.com --token <token> view --name "Equipo Ventas"`
|
||||
|
||||
**Operaciones de grupo:**
|
||||
|
||||
- **Crear grupo de usuarios:**
|
||||
`./user_group.py --url <url> --token <token> add --name "NombreGrupo" [--note "descripción"] [--accessed-from '<json>'] [--access-to '<json>']`
|
||||
|
||||
Ejemplo con control de acceso:
|
||||
`./user_group.py --url <url> --token <token> add --name "Ingeniería" --accessed-from '[{"type":0,"name":"Gerentes"}]' --access-to '[{"type":1,"name":"Servidores Dev"}]'`
|
||||
|
||||
- **Actualizar grupo de usuarios:**
|
||||
`./user_group.py --url <url> --token <token> update --name "NombreGrupo" [--new-name "Nuevo Nombre"] [--note "nueva nota"] [--accessed-from '<json>'] [--access-to '<json>']`
|
||||
|
||||
- **Eliminar grupo de usuarios:**
|
||||
`./user_group.py --url <url> --token <token> delete --name "NombreGrupo"`
|
||||
|
||||
Admite nombres separados por comas: `--name "Grupo1,Grupo2,Grupo3"`
|
||||
|
||||
**Gestión de usuarios en grupos:**
|
||||
|
||||
- **Ver usuarios en grupo:**
|
||||
`./user_group.py --url <url> --token <token> view-users [--name <group_name>] [--user-name <username>]`
|
||||
|
||||
Filtros:
|
||||
- `--name`: nombre del grupo (coincidencia exacta, opcional)
|
||||
- `--user-name`: nombre de usuario (búsqueda difusa, opcional)
|
||||
|
||||
Ejemplo:
|
||||
`./user_group.py --url <url> --token <token> view-users --name Default --user-name john`
|
||||
|
||||
- **Agregar usuarios al grupo:**
|
||||
`./user_group.py --url <url> --token <token> add-users --name "NombreGrupo" --users "user1,user2,user3"`
|
||||
|
||||
**Parámetros de control de acceso:**
|
||||
|
||||
- `--accessed-from`: array JSON que define quién puede acceder a este grupo de usuarios
|
||||
- Type 0 = Grupo de usuarios (ej. `[{"type":0,"name":"Admins"}]`)
|
||||
- Type 2 = Usuario (ej. `[{"type":2,"name":"john"}]`)
|
||||
|
||||
- `--access-to`: array JSON que define a qué puede acceder este grupo de usuarios
|
||||
- Type 0 = Grupo de usuarios (ej. `[{"type":0,"name":"Soporte"}]`)
|
||||
- Type 1 = Grupo de dispositivos (ej. `[{"type":1,"name":"Servidores"}]`)
|
||||
|
||||
**Nota:** Use comillas simples alrededor de los arrays JSON para evitar problemas de análisis del shell.
|
||||
|
||||
**Requisitos de permisos:**
|
||||
- Los comandos `view/add/update/delete/add-users` requieren **Permiso de Grupo de Usuarios**
|
||||
- El comando `view-users` requiere **Permiso de Usuario**
|
||||
|
||||
---
|
||||
|
||||
#### Gestión de Grupos de Dispositivos (`device_group.py`)
|
||||
|
||||
**Mostrar ayuda:**
|
||||
`./device_group.py -h`
|
||||
|
||||
**Ver grupos de dispositivos:**
|
||||
`./device_group.py --url <url> --token <token> view [--name <group_name>]`
|
||||
|
||||
**Ejemplo:**
|
||||
`./device_group.py --url https://example.com --token <token> view`
|
||||
|
||||
**Operaciones de grupo:**
|
||||
|
||||
- **Crear grupo de dispositivos:**
|
||||
`./device_group.py --url <url> --token <token> add --name "NombreGrupo" [--note "descripción"] [--accessed-from '<json>']`
|
||||
|
||||
Ejemplo:
|
||||
`./device_group.py --url <url> --token <token> add --name "Producción" --accessed-from '[{"type":0,"name":"Admins"}]'`
|
||||
|
||||
- **Actualizar grupo de dispositivos:**
|
||||
`./device_group.py --url <url> --token <token> update --name "NombreGrupo" [--new-name "Nuevo Nombre"] [--note "nueva nota"] [--accessed-from '<json>']`
|
||||
|
||||
- **Eliminar grupo de dispositivos:**
|
||||
`./device_group.py --url <url> --token <token> delete --name "NombreGrupo"`
|
||||
|
||||
Admite nombres separados por comas: `--name "Grupo1,Grupo2,Grupo3"`
|
||||
|
||||
**Gestión de dispositivos en grupos:**
|
||||
|
||||
- **Ver dispositivos en grupo:**
|
||||
`./device_group.py --url <url> --token <token> view-devices [filtros]`
|
||||
|
||||
Filtros disponibles:
|
||||
- `--name`: nombre del grupo de dispositivos (coincidencia exacta)
|
||||
- `--id`: ID del dispositivo (búsqueda difusa)
|
||||
- `--device-name`: nombre del dispositivo (búsqueda difusa)
|
||||
- `--user-name`: nombre de usuario/propietario (búsqueda difusa)
|
||||
- `--device-username`: nombre de usuario conectado en el dispositivo (búsqueda difusa)
|
||||
|
||||
Ejemplos:
|
||||
```bash
|
||||
# Ver todos los dispositivos en un grupo
|
||||
./device_group.py --url <url> --token <token> view-devices --name Producción
|
||||
|
||||
# Buscar por nombre de dispositivo
|
||||
./device_group.py --url <url> --token <token> view-devices --device-name server
|
||||
|
||||
# Combinar filtros
|
||||
./device_group.py --url <url> --token <token> view-devices --name Producción --user-name john
|
||||
```
|
||||
|
||||
|
||||
- **Agregar dispositivos al grupo:**
|
||||
`./device_group.py --url <url> --token <token> add-devices --name "NombreGrupo" --ids "deviceid1,deviceid2"`
|
||||
|
||||
- **Quitar dispositivos del grupo:**
|
||||
`./device_group.py --url <url> --token <token> remove-devices --name "NombreGrupo" --ids "deviceid1,deviceid2"`
|
||||
|
||||
**Parámetro de control de acceso:**
|
||||
|
||||
- `--accessed-from`: array JSON que define quién puede acceder a este grupo de dispositivos
|
||||
- Type 0 = Grupo de usuarios (ej. `[{"type":0,"name":"Ingenieros"}]`)
|
||||
- Type 2 = Usuario (ej. `[{"type":2,"name":"admin"}]`)
|
||||
|
||||
**Requisitos de permisos:**
|
||||
- Los comandos `view/add/update/delete/add-devices/remove-devices` requieren **Permiso de Grupo de Dispositivos**
|
||||
- El comando `view-devices` requiere **Permiso de Dispositivo**
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -254,6 +422,74 @@ ver [aquí](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomm
|
|||
|
||||
---
|
||||
|
||||
#### Gestión de Estrategias (`strategies.py`)
|
||||
|
||||
**Mostrar ayuda:**
|
||||
`./strategies.py -h`
|
||||
|
||||
**Listar todas las estrategias:**
|
||||
`./strategies.py --url <url> --token <token> list`
|
||||
|
||||
**Ver una estrategia específica:**
|
||||
```bash
|
||||
# Por nombre
|
||||
./strategies.py --url <url> --token <token> view --name "Default"
|
||||
|
||||
# Por GUID
|
||||
./strategies.py --url <url> --token <token> view --guid "01983006-fcca-7c12-9a91-b1df483c6073"
|
||||
```
|
||||
|
||||
**Habilitar o deshabilitar una estrategia:**
|
||||
```bash
|
||||
./strategies.py --url <url> --token <token> enable --name "NombreEstrategia"
|
||||
./strategies.py --url <url> --token <token> disable --name "NombreEstrategia"
|
||||
```
|
||||
|
||||
**Asignar estrategia a dispositivos, usuarios o grupos de dispositivos:**
|
||||
```bash
|
||||
# Asignar a dispositivos (por ID de dispositivo)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --peers "1849118658,1337348840"
|
||||
|
||||
# Asignar a usuarios (por nombre de usuario)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --users "admin,user1"
|
||||
|
||||
# Asignar a grupos de dispositivos (por nombre de grupo)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --device-groups "device_group1,Production"
|
||||
|
||||
# Asignación mixta
|
||||
./strategies.py --url <url> --token <token> assign \
|
||||
--name "Default" \
|
||||
--peers "1849118658" \
|
||||
--users "admin" \
|
||||
--device-groups "device_group1"
|
||||
```
|
||||
|
||||
**Desasignar estrategia:**
|
||||
```bash
|
||||
# Desasignar de dispositivos
|
||||
./strategies.py --url <url> --token <token> unassign --peers "1849118658,1337348840"
|
||||
|
||||
# Desasignar de usuarios
|
||||
./strategies.py --url <url> --token <token> unassign --users "admin"
|
||||
|
||||
# Desasignar de grupos de dispositivos
|
||||
./strategies.py --url <url> --token <token> unassign --device-groups "device_group1"
|
||||
```
|
||||
|
||||
**Notas:**
|
||||
- El script admite nombres y GUIDs para usuarios y grupos de dispositivos
|
||||
- Los IDs de dispositivos se convierten automáticamente en GUIDs
|
||||
- Todas las operaciones assign/unassign pueden trabajar con múltiples objetivos a la vez
|
||||
|
||||
**Requisitos de permisos:**
|
||||
- Los comandos `list/view/enable/disable/assign/unassign` requieren **Permiso de Estrategia**
|
||||
- `--peers` requiere **Permiso de Dispositivo:r** (para búsqueda de ID a GUID)
|
||||
- `--users` requiere **Permiso de Usuario:r** (para búsqueda de nombre de usuario a GUID)
|
||||
- `--device-groups` requiere **Permiso de Grupo de Dispositivos:r** (para búsqueda de nombre de grupo a GUID)
|
||||
|
||||
---
|
||||
|
||||
|
||||
#### Auditorías (`audits.py`)
|
||||
|
||||
**Mostrar ayuda:**
|
||||
|
|
|
|||
|
|
@ -141,33 +141,200 @@ voir [ici](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomme
|
|||
|
||||
#### Gestion des Utilisateurs (`users.py`)
|
||||
|
||||
**Afficher l’aide :**
|
||||
**Afficher l'aide :**
|
||||
`./users.py -h`
|
||||
|
||||
./users.py -h
|
||||
|
||||
**Voir les utilisateurs :**
|
||||
|
||||
./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]
|
||||
**Voir les utilisateurs :**
|
||||
`./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]`
|
||||
|
||||
**Filtres :**
|
||||
- `--name` : nom d'utilisateur (recherche floue)
|
||||
- `--group_name` : groupe d'utilisateurs (correspondance exacte)
|
||||
|
||||
--name : nom d’utilisateur
|
||||
--group_name : groupe d’utilisateurs
|
||||
**Exemple :**
|
||||
`./users.py --url https://example.com --token <token> view --group_name Default`
|
||||
|
||||
**Exemple :**
|
||||
**Opérations de base :**
|
||||
|
||||
./users.py --url https://example.com --token <token> view --group_name admins
|
||||
- **Désactiver un utilisateur :**
|
||||
`./users.py --url <url> --token <token> disable --name testuser`
|
||||
|
||||
**Opérations :**
|
||||
- **Activer un utilisateur :**
|
||||
`./users.py --url <url> --token <token> enable --name testuser`
|
||||
|
||||
`view` peut être remplacé par `enable`, `disable`, ou `delete`.
|
||||
- **Supprimer un utilisateur :**
|
||||
`./users.py --url <url> --token <token> delete --name testuser`
|
||||
|
||||
**Exemple (désactiver un utilisateur) :**
|
||||
**Création et invitation d'utilisateurs :**
|
||||
|
||||
./users.py --url https://example.com --token <token> disable --name testuser
|
||||
- **Créer un nouvel utilisateur :**
|
||||
`./users.py --url <url> --token <token> new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "note"]`
|
||||
|
||||
Requis : `--name`, `--password`, `--group_name`
|
||||
Optionnel : `--email`, `--note`
|
||||
|
||||
- **Inviter un utilisateur par e-mail :**
|
||||
`./users.py --url <url> --token <token> invite --email user@example.com --name username --group_name Default [--note "note"]`
|
||||
|
||||
Requis : `--email`, `--name`, `--group_name`
|
||||
Optionnel : `--note`
|
||||
|
||||
**Opérations 2FA et sécurité :**
|
||||
|
||||
- **Activer l'application 2FA :**
|
||||
`./users.py --url <url> --token <token> enable-2fa-enforce --name username --web-console-url <console_url>`
|
||||
|
||||
Requis : `--web-console-url`
|
||||
|
||||
- **Désactiver l'application 2FA :**
|
||||
`./users.py --url <url> --token <token> disable-2fa-enforce --name username [--web-console-url <console_url>]`
|
||||
|
||||
Optionnel : `--web-console-url`
|
||||
|
||||
- **Réinitialiser 2FA :**
|
||||
`./users.py --url <url> --token <token> reset-2fa --name username`
|
||||
|
||||
- **Désactiver la vérification par e-mail :**
|
||||
`./users.py --url <url> --token <token> disable-email-verification --name username`
|
||||
|
||||
- **Déconnexion forcée :**
|
||||
`./users.py --url <url> --token <token> force-logout --name username`
|
||||
|
||||
**Remarques :**
|
||||
- Lors d'opérations sur plusieurs utilisateurs (correspondants aux filtres), une confirmation sera demandée
|
||||
- Si aucun utilisateur ne correspond, "Found 0 users" sera affiché
|
||||
|
||||
---
|
||||
|
||||
#### Gestion des Groupes d'Utilisateurs (`user_group.py`)
|
||||
|
||||
**Afficher l'aide :**
|
||||
`./user_group.py -h`
|
||||
|
||||
**Voir les groupes d'utilisateurs :**
|
||||
`./user_group.py --url <url> --token <token> view [--name <group_name>]`
|
||||
|
||||
**Exemple :**
|
||||
`./user_group.py --url https://example.com --token <token> view --name "Équipe Ventes"`
|
||||
|
||||
**Opérations sur les groupes :**
|
||||
|
||||
- **Créer un groupe d'utilisateurs :**
|
||||
`./user_group.py --url <url> --token <token> add --name "NomGroupe" [--note "description"] [--accessed-from '<json>'] [--access-to '<json>']`
|
||||
|
||||
Exemple avec contrôle d'accès :
|
||||
`./user_group.py --url <url> --token <token> add --name "Ingénierie" --accessed-from '[{"type":0,"name":"Managers"}]' --access-to '[{"type":1,"name":"Serveurs Dev"}]'`
|
||||
|
||||
- **Mettre à jour un groupe d'utilisateurs :**
|
||||
`./user_group.py --url <url> --token <token> update --name "NomGroupe" [--new-name "Nouveau Nom"] [--note "nouvelle note"] [--accessed-from '<json>'] [--access-to '<json>']`
|
||||
|
||||
- **Supprimer un groupe d'utilisateurs :**
|
||||
`./user_group.py --url <url> --token <token> delete --name "NomGroupe"`
|
||||
|
||||
Prend en charge les noms séparés par des virgules : `--name "Groupe1,Groupe2,Groupe3"`
|
||||
|
||||
**Gestion des utilisateurs dans les groupes :**
|
||||
|
||||
- **Voir les utilisateurs dans un groupe :**
|
||||
`./user_group.py --url <url> --token <token> view-users [--name <group_name>] [--user-name <username>]`
|
||||
|
||||
Filtres :
|
||||
- `--name` : nom du groupe (correspondance exacte, optionnel)
|
||||
- `--user-name` : nom d'utilisateur (recherche floue, optionnel)
|
||||
|
||||
Exemple :
|
||||
`./user_group.py --url <url> --token <token> view-users --name Default --user-name john`
|
||||
|
||||
- **Ajouter des utilisateurs à un groupe :**
|
||||
`./user_group.py --url <url> --token <token> add-users --name "NomGroupe" --users "user1,user2,user3"`
|
||||
|
||||
**Paramètres de contrôle d'accès :**
|
||||
|
||||
- `--accessed-from` : tableau JSON définissant qui peut accéder à ce groupe d'utilisateurs
|
||||
- Type 0 = Groupe d'utilisateurs (ex. `[{"type":0,"name":"Admins"}]`)
|
||||
- Type 2 = Utilisateur (ex. `[{"type":2,"name":"john"}]`)
|
||||
|
||||
- `--access-to` : tableau JSON définissant ce à quoi ce groupe d'utilisateurs peut accéder
|
||||
- Type 0 = Groupe d'utilisateurs (ex. `[{"type":0,"name":"Support"}]`)
|
||||
- Type 1 = Groupe de périphériques (ex. `[{"type":1,"name":"Serveurs"}]`)
|
||||
|
||||
**Remarque :** Utilisez des guillemets simples autour des tableaux JSON pour éviter les problèmes d'analyse du shell.
|
||||
|
||||
**Exigences de permissions :**
|
||||
- Les commandes `view/add/update/delete/add-users` nécessitent **Permission de Groupe d'Utilisateurs**
|
||||
- La commande `view-users` nécessite **Permission d'Utilisateur**
|
||||
|
||||
---
|
||||
|
||||
#### Gestion des Groupes de Périphériques (`device_group.py`)
|
||||
|
||||
**Afficher l'aide :**
|
||||
`./device_group.py -h`
|
||||
|
||||
**Voir les groupes de périphériques :**
|
||||
`./device_group.py --url <url> --token <token> view [--name <group_name>]`
|
||||
|
||||
**Exemple :**
|
||||
`./device_group.py --url https://example.com --token <token> view`
|
||||
|
||||
**Opérations sur les groupes :**
|
||||
|
||||
- **Créer un groupe de périphériques :**
|
||||
`./device_group.py --url <url> --token <token> add --name "NomGroupe" [--note "description"] [--accessed-from '<json>']`
|
||||
|
||||
Exemple :
|
||||
`./device_group.py --url <url> --token <token> add --name "Production" --accessed-from '[{"type":0,"name":"Admins"}]'`
|
||||
|
||||
- **Mettre à jour un groupe de périphériques :**
|
||||
`./device_group.py --url <url> --token <token> update --name "NomGroupe" [--new-name "Nouveau Nom"] [--note "nouvelle note"] [--accessed-from '<json>']`
|
||||
|
||||
- **Supprimer un groupe de périphériques :**
|
||||
`./device_group.py --url <url> --token <token> delete --name "NomGroupe"`
|
||||
|
||||
Prend en charge les noms séparés par des virgules : `--name "Groupe1,Groupe2,Groupe3"`
|
||||
|
||||
**Gestion des périphériques dans les groupes :**
|
||||
|
||||
- **Voir les périphériques dans un groupe :**
|
||||
`./device_group.py --url <url> --token <token> view-devices [filtres]`
|
||||
|
||||
Filtres disponibles :
|
||||
- `--name` : nom du groupe de périphériques (correspondance exacte)
|
||||
- `--id` : ID du périphérique (recherche floue)
|
||||
- `--device-name` : nom du périphérique (recherche floue)
|
||||
- `--user-name` : nom d'utilisateur/propriétaire (recherche floue)
|
||||
- `--device-username` : nom d'utilisateur connecté sur le périphérique (recherche floue)
|
||||
|
||||
Exemples :
|
||||
```bash
|
||||
# Voir tous les périphériques dans un groupe
|
||||
./device_group.py --url <url> --token <token> view-devices --name Production
|
||||
|
||||
# Rechercher par nom de périphérique
|
||||
./device_group.py --url <url> --token <token> view-devices --device-name server
|
||||
|
||||
# Combiner les filtres
|
||||
./device_group.py --url <url> --token <token> view-devices --name Production --user-name john
|
||||
```
|
||||
|
||||
|
||||
- **Ajouter des périphériques à un groupe :**
|
||||
`./device_group.py --url <url> --token <token> add-devices --name "NomGroupe" --ids "deviceid1,deviceid2"`
|
||||
|
||||
- **Retirer des périphériques d'un groupe :**
|
||||
`./device_group.py --url <url> --token <token> remove-devices --name "NomGroupe" --ids "deviceid1,deviceid2"`
|
||||
|
||||
**Paramètre de contrôle d'accès :**
|
||||
|
||||
- `--accessed-from` : tableau JSON définissant qui peut accéder à ce groupe de périphériques
|
||||
- Type 0 = Groupe d'utilisateurs (ex. `[{"type":0,"name":"Ingénieurs"}]`)
|
||||
- Type 2 = Utilisateur (ex. `[{"type":2,"name":"admin"}]`)
|
||||
|
||||
**Exigences de permissions :**
|
||||
- Les commandes `view/add/update/delete/add-devices/remove-devices` nécessitent **Permission de Groupe de Périphériques**
|
||||
- La commande `view-devices` nécessite **Permission de Périphérique**
|
||||
|
||||
---
|
||||
#### Gestion des Périphériques (`devices.py`)
|
||||
|
||||
**Afficher l’aide :**
|
||||
|
|
@ -254,6 +421,74 @@ voir [ici](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomme
|
|||
|
||||
---
|
||||
|
||||
#### Gestion des Stratégies (`strategies.py`)
|
||||
|
||||
**Afficher l'aide :**
|
||||
`./strategies.py -h`
|
||||
|
||||
**Lister toutes les stratégies :**
|
||||
`./strategies.py --url <url> --token <token> list`
|
||||
|
||||
**Voir une stratégie spécifique :**
|
||||
```bash
|
||||
# Par nom
|
||||
./strategies.py --url <url> --token <token> view --name "Default"
|
||||
|
||||
# Par GUID
|
||||
./strategies.py --url <url> --token <token> view --guid "01983006-fcca-7c12-9a91-b1df483c6073"
|
||||
```
|
||||
|
||||
**Activer ou désactiver une stratégie :**
|
||||
```bash
|
||||
./strategies.py --url <url> --token <token> enable --name "NomStratégie"
|
||||
./strategies.py --url <url> --token <token> disable --name "NomStratégie"
|
||||
```
|
||||
|
||||
**Attribuer une stratégie aux périphériques, utilisateurs ou groupes de périphériques :**
|
||||
```bash
|
||||
# Attribuer aux périphériques (par ID de périphérique)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --peers "1849118658,1337348840"
|
||||
|
||||
# Attribuer aux utilisateurs (par nom d'utilisateur)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --users "admin,user1"
|
||||
|
||||
# Attribuer aux groupes de périphériques (par nom de groupe)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --device-groups "device_group1,Production"
|
||||
|
||||
# Attribution mixte
|
||||
./strategies.py --url <url> --token <token> assign \
|
||||
--name "Default" \
|
||||
--peers "1849118658" \
|
||||
--users "admin" \
|
||||
--device-groups "device_group1"
|
||||
```
|
||||
|
||||
**Retirer l'attribution de stratégie :**
|
||||
```bash
|
||||
# Retirer des périphériques
|
||||
./strategies.py --url <url> --token <token> unassign --peers "1849118658,1337348840"
|
||||
|
||||
# Retirer des utilisateurs
|
||||
./strategies.py --url <url> --token <token> unassign --users "admin"
|
||||
|
||||
# Retirer des groupes de périphériques
|
||||
./strategies.py --url <url> --token <token> unassign --device-groups "device_group1"
|
||||
```
|
||||
|
||||
**Remarques :**
|
||||
- Le script prend en charge les noms et les GUIDs pour les utilisateurs et les groupes de périphériques
|
||||
- Les IDs de périphériques sont automatiquement convertis en GUIDs
|
||||
- Toutes les opérations assign/unassign peuvent cibler plusieurs ressources à la fois
|
||||
|
||||
**Exigences de permissions :**
|
||||
- Les commandes `list/view/enable/disable/assign/unassign` nécessitent **Permission de Stratégie**
|
||||
- `--peers` nécessite **Permission de Périphérique:r** (pour la recherche d'ID vers GUID)
|
||||
- `--users` nécessite **Permission d'Utilisateur:r** (pour la recherche de nom d'utilisateur vers GUID)
|
||||
- `--device-groups` nécessite **Permission de Groupe de Périphériques:r** (pour la recherche de nom de groupe vers GUID)
|
||||
|
||||
---
|
||||
|
||||
|
||||
#### Audits (`audits.py`)
|
||||
|
||||
**Afficher l’aide :**
|
||||
|
|
|
|||
|
|
@ -141,30 +141,202 @@ vedi [qui](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomme
|
|||
|
||||
#### Gestione Utenti (`users.py`)
|
||||
|
||||
**Mostra aiuto:**
|
||||
**Mostra aiuto:**
|
||||
`./users.py -h`
|
||||
|
||||
./users.py -h
|
||||
|
||||
**Visualizza utenti:**
|
||||
|
||||
./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]
|
||||
**Visualizza utenti:**
|
||||
`./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]`
|
||||
|
||||
**Filtri:**
|
||||
- `--name`: nome utente (ricerca fuzzy)
|
||||
- `--group_name`: gruppo utenti (corrispondenza esatta)
|
||||
|
||||
--name : nome utente
|
||||
--group_name : gruppo utenti
|
||||
**Esempio:**
|
||||
`./users.py --url https://example.com --token <token> view --group_name Default`
|
||||
|
||||
**Esempio:**
|
||||
**Operazioni di base:**
|
||||
|
||||
./users.py --url https://example.com --token <token> view --group_name admins
|
||||
- **Disabilitare utente:**
|
||||
`./users.py --url <url> --token <token> disable --name testuser`
|
||||
|
||||
**Operazioni:**
|
||||
- **Abilitare utente:**
|
||||
`./users.py --url <url> --token <token> enable --name testuser`
|
||||
|
||||
`view` può essere sostituito con `enable`, `disable`, o `delete`.
|
||||
- **Eliminare utente:**
|
||||
`./users.py --url <url> --token <token> delete --name testuser`
|
||||
|
||||
**Esempio (disabilitare utente):**
|
||||
**Creazione e invito utenti:**
|
||||
|
||||
./users.py --url https://example.com --token <token> disable --name testuser
|
||||
- **Creare nuovo utente:**
|
||||
`./users.py --url <url> --token <token> new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "nota"]`
|
||||
|
||||
Richiesto: `--name`, `--password`, `--group_name`
|
||||
Opzionale: `--email`, `--note`
|
||||
|
||||
- **Invitare utente via email:**
|
||||
`./users.py --url <url> --token <token> invite --email user@example.com --name username --group_name Default [--note "nota"]`
|
||||
|
||||
Richiesto: `--email`, `--name`, `--group_name`
|
||||
Opzionale: `--note`
|
||||
|
||||
**Operazioni 2FA e sicurezza:**
|
||||
|
||||
- **Abilitare imposizione 2FA:**
|
||||
`./users.py --url <url> --token <token> enable-2fa-enforce --name username --web-console-url <console_url>`
|
||||
|
||||
Richiesto: `--web-console-url`
|
||||
|
||||
- **Disabilitare imposizione 2FA:**
|
||||
`./users.py --url <url> --token <token> disable-2fa-enforce --name username [--web-console-url <console_url>]`
|
||||
|
||||
Opzionale: `--web-console-url`
|
||||
|
||||
- **Reimpostare 2FA:**
|
||||
`./users.py --url <url> --token <token> reset-2fa --name username`
|
||||
|
||||
- **Disabilitare verifica email:**
|
||||
`./users.py --url <url> --token <token> disable-email-verification --name username`
|
||||
|
||||
- **Disconnessione forzata:**
|
||||
`./users.py --url <url> --token <token> force-logout --name username`
|
||||
|
||||
**Note:**
|
||||
- Quando si opera su più utenti (corrispondenti ai filtri), verrà richiesta conferma
|
||||
- Se non ci sono utenti corrispondenti, verrà mostrato "Found 0 users"
|
||||
|
||||
---
|
||||
|
||||
#### Gestione Gruppi Utenti (`user_group.py`)
|
||||
|
||||
**Mostra aiuto:**
|
||||
`./user_group.py -h`
|
||||
|
||||
**Visualizza gruppi utenti:**
|
||||
`./user_group.py --url <url> --token <token> view [--name <group_name>]`
|
||||
|
||||
**Esempio:**
|
||||
`./user_group.py --url https://example.com --token <token> view --name "Team Vendite"`
|
||||
|
||||
**Operazioni sui gruppi:**
|
||||
|
||||
- **Creare gruppo utenti:**
|
||||
`./user_group.py --url <url> --token <token> add --name "NomeGruppo" [--note "descrizione"] [--accessed-from '<json>'] [--access-to '<json>']`
|
||||
|
||||
Esempio con controllo accesso:
|
||||
`./user_group.py --url <url> --token <token> add --name "Ingegneria" --accessed-from '[{"type":0,"name":"Manager"}]' --access-to '[{"type":1,"name":"Server Dev"}]'`
|
||||
|
||||
- **Aggiornare gruppo utenti:**
|
||||
`./user_group.py --url <url> --token <token> update --name "NomeGruppo" [--new-name "Nuovo Nome"] [--note "nuova nota"] [--accessed-from '<json>'] [--access-to '<json>']`
|
||||
|
||||
- **Eliminare gruppo utenti:**
|
||||
`./user_group.py --url <url> --token <token> delete --name "NomeGruppo"`
|
||||
|
||||
Supporta nomi separati da virgola: `--name "Gruppo1,Gruppo2,Gruppo3"`
|
||||
|
||||
**Gestione utenti nei gruppi:**
|
||||
|
||||
- **Visualizzare utenti nel gruppo:**
|
||||
`./user_group.py --url <url> --token <token> view-users [--name <group_name>] [--user-name <username>]`
|
||||
|
||||
Filtri:
|
||||
- `--name`: nome del gruppo (corrispondenza esatta, opzionale)
|
||||
- `--user-name`: nome utente (ricerca fuzzy, opzionale)
|
||||
|
||||
Esempio:
|
||||
`./user_group.py --url <url> --token <token> view-users --name Default --user-name john`
|
||||
|
||||
- **Aggiungere utenti al gruppo:**
|
||||
`./user_group.py --url <url> --token <token> add-users --name "NomeGruppo" --users "user1,user2,user3"`
|
||||
|
||||
**Parametri controllo accesso:**
|
||||
|
||||
- `--accessed-from`: array JSON che definisce chi può accedere a questo gruppo utenti
|
||||
- Type 0 = Gruppo utenti (es. `[{"type":0,"name":"Admins"}]`)
|
||||
- Type 2 = Utente (es. `[{"type":2,"name":"john"}]`)
|
||||
|
||||
- `--access-to`: array JSON che definisce a cosa può accedere questo gruppo utenti
|
||||
- Type 0 = Gruppo utenti (es. `[{"type":0,"name":"Supporto"}]`)
|
||||
- Type 1 = Gruppo dispositivi (es. `[{"type":1,"name":"Server"}]`)
|
||||
|
||||
**Nota:** Utilizzare virgolette singole attorno agli array JSON per evitare problemi di parsing della shell.
|
||||
|
||||
**Requisiti di permessi:**
|
||||
- I comandi `view/add/update/delete/add-users` richiedono **Permesso Gruppo Utenti**
|
||||
- Il comando `view-users` richiede **Permesso Utente**
|
||||
|
||||
---
|
||||
|
||||
#### Gestione Gruppi Dispositivi (`device_group.py`)
|
||||
|
||||
**Mostra aiuto:**
|
||||
`./device_group.py -h`
|
||||
|
||||
**Visualizza gruppi dispositivi:**
|
||||
`./device_group.py --url <url> --token <token> view [--name <group_name>]`
|
||||
|
||||
**Esempio:**
|
||||
`./device_group.py --url https://example.com --token <token> view`
|
||||
|
||||
**Operazioni sui gruppi:**
|
||||
|
||||
- **Creare gruppo dispositivi:**
|
||||
`./device_group.py --url <url> --token <token> add --name "NomeGruppo" [--note "descrizione"] [--accessed-from '<json>']`
|
||||
|
||||
Esempio:
|
||||
`./device_group.py --url <url> --token <token> add --name "Produzione" --accessed-from '[{"type":0,"name":"Admins"}]'`
|
||||
|
||||
- **Aggiornare gruppo dispositivi:**
|
||||
`./device_group.py --url <url> --token <token> update --name "NomeGruppo" [--new-name "Nuovo Nome"] [--note "nuova nota"] [--accessed-from '<json>']`
|
||||
|
||||
- **Eliminare gruppo dispositivi:**
|
||||
`./device_group.py --url <url> --token <token> delete --name "NomeGruppo"`
|
||||
|
||||
Supporta nomi separati da virgola: `--name "Gruppo1,Gruppo2,Gruppo3"`
|
||||
|
||||
**Gestione dispositivi nei gruppi:**
|
||||
|
||||
- **Visualizzare dispositivi nel gruppo:**
|
||||
`./device_group.py --url <url> --token <token> view-devices [filtri]`
|
||||
|
||||
Filtri disponibili:
|
||||
- `--name`: nome del gruppo dispositivi (corrispondenza esatta)
|
||||
- `--id`: ID dispositivo (ricerca fuzzy)
|
||||
- `--device-name`: nome dispositivo (ricerca fuzzy)
|
||||
- `--user-name`: nome utente/proprietario (ricerca fuzzy)
|
||||
- `--device-username`: nome utente connesso al dispositivo (ricerca fuzzy)
|
||||
|
||||
Esempi:
|
||||
```bash
|
||||
# Visualizzare tutti i dispositivi in un gruppo
|
||||
./device_group.py --url <url> --token <token> view-devices --name Produzione
|
||||
|
||||
# Cercare per nome dispositivo
|
||||
./device_group.py --url <url> --token <token> view-devices --device-name server
|
||||
|
||||
# Combinare filtri
|
||||
./device_group.py --url <url> --token <token> view-devices --name Produzione --user-name john
|
||||
```
|
||||
|
||||
- **Visualizzare gruppi dispositivi accessibili:**
|
||||
`./device_group.py --url <url> --token <token> accessible`
|
||||
|
||||
Mostra tutti i gruppi dispositivi accessibili all'utente corrente.
|
||||
|
||||
- **Aggiungere dispositivi al gruppo:**
|
||||
`./device_group.py --url <url> --token <token> add-devices --name "NomeGruppo" --ids "deviceid1,deviceid2"`
|
||||
|
||||
- **Rimuovere dispositivi dal gruppo:**
|
||||
`./device_group.py --url <url> --token <token> remove-devices --name "NomeGruppo" --ids "deviceid1,deviceid2"`
|
||||
|
||||
**Parametro controllo accesso:**
|
||||
|
||||
- `--accessed-from`: array JSON che definisce chi può accedere a questo gruppo dispositivi
|
||||
- Type 0 = Gruppo utenti (es. `[{"type":0,"name":"Ingegneri"}]`)
|
||||
- Type 2 = Utente (es. `[{"type":2,"name":"admin"}]`)
|
||||
|
||||
**Requisiti permessi:**
|
||||
- I comandi `view/add/update/delete/add-devices/remove-devices` richiedono **Permesso Gruppo Dispositivi**
|
||||
- Il comando `view-devices` richiede **Permesso Dispositivo**
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -254,6 +426,74 @@ vedi [qui](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomme
|
|||
|
||||
---
|
||||
|
||||
#### Gestione delle Strategie (`strategies.py`)
|
||||
|
||||
**Mostra aiuto:**
|
||||
`./strategies.py -h`
|
||||
|
||||
**Elenca tutte le strategie:**
|
||||
`./strategies.py --url <url> --token <token> list`
|
||||
|
||||
**Visualizza una strategia specifica:**
|
||||
```bash
|
||||
# Per nome
|
||||
./strategies.py --url <url> --token <token> view --name "Default"
|
||||
|
||||
# Per GUID
|
||||
./strategies.py --url <url> --token <token> view --guid "01983006-fcca-7c12-9a91-b1df483c6073"
|
||||
```
|
||||
|
||||
**Abilita o disabilita una strategia:**
|
||||
```bash
|
||||
./strategies.py --url <url> --token <token> enable --name "NomeStrategia"
|
||||
./strategies.py --url <url> --token <token> disable --name "NomeStrategia"
|
||||
```
|
||||
|
||||
**Assegna strategia a dispositivi, utenti o gruppi dispositivi:**
|
||||
```bash
|
||||
# Assegna a dispositivi (per ID dispositivo)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --peers "1849118658,1337348840"
|
||||
|
||||
# Assegna a utenti (per nome utente)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --users "admin,user1"
|
||||
|
||||
# Assegna a gruppi dispositivi (per nome gruppo)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --device-groups "device_group1,Production"
|
||||
|
||||
# Assegnazione mista
|
||||
./strategies.py --url <url> --token <token> assign \
|
||||
--name "Default" \
|
||||
--peers "1849118658" \
|
||||
--users "admin" \
|
||||
--device-groups "device_group1"
|
||||
```
|
||||
|
||||
**Rimuovi assegnazione strategia:**
|
||||
```bash
|
||||
# Rimuovi da dispositivi
|
||||
./strategies.py --url <url> --token <token> unassign --peers "1849118658,1337348840"
|
||||
|
||||
# Rimuovi da utenti
|
||||
./strategies.py --url <url> --token <token> unassign --users "admin"
|
||||
|
||||
# Rimuovi da gruppi dispositivi
|
||||
./strategies.py --url <url> --token <token> unassign --device-groups "device_group1"
|
||||
```
|
||||
|
||||
**Note:**
|
||||
- Lo script supporta sia nomi che GUID per utenti e gruppi dispositivi
|
||||
- Gli ID dispositivi vengono automaticamente convertiti in GUID
|
||||
- Tutte le operazioni assign/unassign possono gestire più target contemporaneamente
|
||||
|
||||
**Requisiti di permessi:**
|
||||
- I comandi `list/view/enable/disable/assign/unassign` richiedono **Permesso Strategia**
|
||||
- `--peers` richiede **Permesso Dispositivo:r** (per ricerca da ID a GUID)
|
||||
- `--users` richiede **Permesso Utente:r** (per ricerca da nome utente a GUID)
|
||||
- `--device-groups` richiede **Permesso Gruppo Dispositivi:r** (per ricerca da nome gruppo a GUID)
|
||||
|
||||
---
|
||||
|
||||
|
||||
#### Audit (`audits.py`)
|
||||
|
||||
**Mostra aiuto:**
|
||||
|
|
|
|||
|
|
@ -141,30 +141,198 @@ Windowsのコマンドラインはデフォルトでは出力を表示しませ
|
|||
|
||||
#### ユーザー管理 (`users.py`)
|
||||
|
||||
**ヘルプ表示:**
|
||||
**ヘルプ表示:**
|
||||
`./users.py -h`
|
||||
|
||||
./users.py -h
|
||||
|
||||
**ユーザー表示:**
|
||||
|
||||
./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]
|
||||
**ユーザー表示:**
|
||||
`./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]`
|
||||
|
||||
**フィルター:**
|
||||
- `--name`:ユーザー名(あいまい検索)
|
||||
- `--group_name`:ユーザーグループ名(完全一致)
|
||||
|
||||
--name : ユーザー名
|
||||
--group_name : ユーザーグループ
|
||||
**例:**
|
||||
`./users.py --url https://example.com --token <token> view --group_name Default`
|
||||
|
||||
**例:**
|
||||
**基本操作:**
|
||||
|
||||
./users.py --url https://example.com --token <token> view --group_name admins
|
||||
- **ユーザーを無効化:**
|
||||
`./users.py --url <url> --token <token> disable --name testuser`
|
||||
|
||||
**操作:**
|
||||
- **ユーザーを有効化:**
|
||||
`./users.py --url <url> --token <token> enable --name testuser`
|
||||
|
||||
`view`は`enable`、`disable`、`delete`に置き換え可能です。
|
||||
- **ユーザーを削除:**
|
||||
`./users.py --url <url> --token <token> delete --name testuser`
|
||||
|
||||
**例(ユーザーを無効化):**
|
||||
**ユーザーの作成と招待:**
|
||||
|
||||
./users.py --url https://example.com --token <token> disable --name testuser
|
||||
- **新規ユーザーの作成:**
|
||||
`./users.py --url <url> --token <token> new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "メモ"]`
|
||||
|
||||
必須パラメータ:`--name`、`--password`、`--group_name`
|
||||
オプションパラメータ:`--email`、`--note`
|
||||
|
||||
- **メールでユーザーを招待:**
|
||||
`./users.py --url <url> --token <token> invite --email user@example.com --name username --group_name Default [--note "メモ"]`
|
||||
|
||||
必須パラメータ:`--email`、`--name`、`--group_name`
|
||||
オプションパラメータ:`--note`
|
||||
|
||||
**2FAとセキュリティ操作:**
|
||||
|
||||
- **2FA強制を有効化:**
|
||||
`./users.py --url <url> --token <token> enable-2fa-enforce --name username --web-console-url <console_url>`
|
||||
|
||||
必須パラメータ:`--web-console-url`
|
||||
|
||||
- **2FA強制を無効化:**
|
||||
`./users.py --url <url> --token <token> disable-2fa-enforce --name username [--web-console-url <console_url>]`
|
||||
|
||||
オプションパラメータ:`--web-console-url`
|
||||
|
||||
- **2FAをリセット:**
|
||||
`./users.py --url <url> --token <token> reset-2fa --name username`
|
||||
|
||||
- **メール認証を無効化:**
|
||||
`./users.py --url <url> --token <token> disable-email-verification --name username`
|
||||
|
||||
- **強制ログアウト:**
|
||||
`./users.py --url <url> --token <token> force-logout --name username`
|
||||
|
||||
**注意事項:**
|
||||
- 複数のユーザーに対して操作を行う場合(フィルターでマッチ)、確認プロンプトが表示されます
|
||||
- 一致するユーザーがいない場合は「Found 0 users」と表示されます
|
||||
|
||||
---
|
||||
|
||||
#### ユーザーグループ管理 (`user_group.py`)
|
||||
|
||||
**ヘルプ表示:**
|
||||
`./user_group.py -h`
|
||||
|
||||
**ユーザーグループ表示:**
|
||||
`./user_group.py --url <url> --token <token> view [--name <group_name>]`
|
||||
|
||||
**例:**
|
||||
`./user_group.py --url https://example.com --token <token> view --name "営業チーム"`
|
||||
|
||||
**グループ操作:**
|
||||
|
||||
- **ユーザーグループの作成:**
|
||||
`./user_group.py --url <url> --token <token> add --name "グループ名" [--note "説明"] [--accessed-from '<json>'] [--access-to '<json>']`
|
||||
|
||||
アクセス制御付きの例:
|
||||
`./user_group.py --url <url> --token <token> add --name "エンジニアリング" --accessed-from '[{"type":0,"name":"マネージャー"}]' --access-to '[{"type":1,"name":"開発サーバー"}]'`
|
||||
|
||||
- **ユーザーグループの更新:**
|
||||
`./user_group.py --url <url> --token <token> update --name "グループ名" [--new-name "新しい名前"] [--note "新しいメモ"] [--accessed-from '<json>'] [--access-to '<json>']`
|
||||
|
||||
- **ユーザーグループの削除:**
|
||||
`./user_group.py --url <url> --token <token> delete --name "グループ名"`
|
||||
|
||||
カンマ区切りで複数指定可能:`--name "グループ1,グループ2,グループ3"`
|
||||
|
||||
**グループ内ユーザー管理:**
|
||||
|
||||
- **グループ内のユーザーを表示:**
|
||||
`./user_group.py --url <url> --token <token> view-users [--name <group_name>] [--user-name <username>]`
|
||||
|
||||
フィルター:
|
||||
- `--name`:グループ名(完全一致、オプション)
|
||||
- `--user-name`:ユーザー名(あいまい検索、オプション)
|
||||
|
||||
例:
|
||||
`./user_group.py --url <url> --token <token> view-users --name Default --user-name john`
|
||||
|
||||
- **グループにユーザーを追加:**
|
||||
`./user_group.py --url <url> --token <token> add-users --name "グループ名" --users "user1,user2,user3"`
|
||||
|
||||
**アクセス制御パラメータ:**
|
||||
|
||||
- `--accessed-from`:このユーザーグループにアクセスできるユーザー/グループを定義するJSON配列
|
||||
- Type 0 = ユーザーグループ(例:`[{"type":0,"name":"管理者"}]`)
|
||||
- Type 2 = ユーザー(例:`[{"type":2,"name":"john"}]`)
|
||||
|
||||
- `--access-to`:このユーザーグループがアクセスできる対象を定義するJSON配列
|
||||
- Type 0 = ユーザーグループ(例:`[{"type":0,"name":"サポート"}]`)
|
||||
- Type 1 = デバイスグループ(例:`[{"type":1,"name":"サーバー"}]`)
|
||||
|
||||
**注意:** シェルの解析問題を避けるため、JSON配列は単一引用符で囲んでください。
|
||||
|
||||
**権限要件:**
|
||||
- `view/add/update/delete/add-users` コマンドには **ユーザーグループ権限** が必要
|
||||
- `view-users` コマンドには **ユーザー権限** が必要
|
||||
|
||||
---
|
||||
|
||||
#### デバイスグループ管理 (`device_group.py`)
|
||||
|
||||
**ヘルプ表示:**
|
||||
`./device_group.py -h`
|
||||
|
||||
**デバイスグループ表示:**
|
||||
`./device_group.py --url <url> --token <token> view [--name <group_name>]`
|
||||
|
||||
**例:**
|
||||
`./device_group.py --url https://example.com --token <token> view`
|
||||
|
||||
**グループ操作:**
|
||||
|
||||
- **デバイスグループの作成:**
|
||||
`./device_group.py --url <url> --token <token> add --name "グループ名" [--note "説明"] [--accessed-from '<json>']`
|
||||
|
||||
例:
|
||||
`./device_group.py --url <url> --token <token> add --name "本番環境" --accessed-from '[{"type":0,"name":"管理者"}]'`
|
||||
|
||||
- **デバイスグループの更新:**
|
||||
`./device_group.py --url <url> --token <token> update --name "グループ名" [--new-name "新しい名前"] [--note "新しいメモ"] [--accessed-from '<json>']`
|
||||
|
||||
- **デバイスグループの削除:**
|
||||
`./device_group.py --url <url> --token <token> delete --name "グループ名"`
|
||||
|
||||
カンマ区切りで複数指定可能:`--name "グループ1,グループ2,グループ3"`
|
||||
|
||||
**グループ内デバイス管理:**
|
||||
|
||||
- **グループ内のデバイスを表示:**
|
||||
`./device_group.py --url <url> --token <token> view-devices [フィルター]`
|
||||
|
||||
利用可能なフィルター:
|
||||
- `--name`:デバイスグループ名(完全一致)
|
||||
- `--id`:デバイスID(あいまい検索)
|
||||
- `--device-name`:デバイス名(あいまい検索)
|
||||
- `--user-name`:ユーザー名/所有者(あいまい検索)
|
||||
- `--device-username`:デバイスにログインしているユーザー名(あいまい検索)
|
||||
|
||||
例:
|
||||
```bash
|
||||
# グループ内のすべてのデバイスを表示
|
||||
./device_group.py --url <url> --token <token> view-devices --name 本番環境
|
||||
|
||||
# デバイス名で検索
|
||||
./device_group.py --url <url> --token <token> view-devices --device-name server
|
||||
|
||||
# フィルターを組み合わせ
|
||||
./device_group.py --url <url> --token <token> view-devices --name 本番環境 --user-name john
|
||||
```
|
||||
|
||||
|
||||
- **グループにデバイスを追加:**
|
||||
`./device_group.py --url <url> --token <token> add-devices --name "グループ名" --ids "deviceid1,deviceid2"`
|
||||
|
||||
- **グループからデバイスを削除:**
|
||||
`./device_group.py --url <url> --token <token> remove-devices --name "グループ名" --ids "deviceid1,deviceid2"`
|
||||
|
||||
**アクセス制御パラメータ:**
|
||||
|
||||
- `--accessed-from`:このデバイスグループにアクセスできるユーザー/グループを定義するJSON配列
|
||||
- Type 0 = ユーザーグループ(例:`[{"type":0,"name":"エンジニア"}]`)
|
||||
- Type 2 = ユーザー(例:`[{"type":2,"name":"admin"}]`)
|
||||
|
||||
**権限要件:**
|
||||
- `view/add/update/delete/add-devices/remove-devices` コマンドには **デバイスグループ権限** が必要
|
||||
- `view-devices` コマンドには **デバイス権限** が必要
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -254,6 +422,74 @@ Windowsのコマンドラインはデフォルトでは出力を表示しませ
|
|||
|
||||
---
|
||||
|
||||
#### ストラテジー管理 (`strategies.py`)
|
||||
|
||||
**ヘルプを表示:**
|
||||
`./strategies.py -h`
|
||||
|
||||
**すべてのストラテジーを一覧表示:**
|
||||
`./strategies.py --url <url> --token <token> list`
|
||||
|
||||
**特定のストラテジーを表示:**
|
||||
```bash
|
||||
# 名前で
|
||||
./strategies.py --url <url> --token <token> view --name "Default"
|
||||
|
||||
# GUIDで
|
||||
./strategies.py --url <url> --token <token> view --guid "01983006-fcca-7c12-9a91-b1df483c6073"
|
||||
```
|
||||
|
||||
**ストラテジーを有効化または無効化:**
|
||||
```bash
|
||||
./strategies.py --url <url> --token <token> enable --name "ストラテジー名"
|
||||
./strategies.py --url <url> --token <token> disable --name "ストラテジー名"
|
||||
```
|
||||
|
||||
**デバイス、ユーザー、またはデバイスグループにストラテジーを割り当て:**
|
||||
```bash
|
||||
# デバイスに割り当て(デバイスIDで)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --peers "1849118658,1337348840"
|
||||
|
||||
# ユーザーに割り当て(ユーザー名で)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --users "admin,user1"
|
||||
|
||||
# デバイスグループに割り当て(グループ名で)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --device-groups "device_group1,Production"
|
||||
|
||||
# 混合割り当て
|
||||
./strategies.py --url <url> --token <token> assign \
|
||||
--name "Default" \
|
||||
--peers "1849118658" \
|
||||
--users "admin" \
|
||||
--device-groups "device_group1"
|
||||
```
|
||||
|
||||
**ストラテジーの割り当てを解除:**
|
||||
```bash
|
||||
# デバイスから解除
|
||||
./strategies.py --url <url> --token <token> unassign --peers "1849118658,1337348840"
|
||||
|
||||
# ユーザーから解除
|
||||
./strategies.py --url <url> --token <token> unassign --users "admin"
|
||||
|
||||
# デバイスグループから解除
|
||||
./strategies.py --url <url> --token <token> unassign --device-groups "device_group1"
|
||||
```
|
||||
|
||||
**注意:**
|
||||
- スクリプトはユーザーとデバイスグループの名前とGUIDの両方をサポートします
|
||||
- デバイスIDは自動的にGUIDに変換されます
|
||||
- すべてのassign/unassign操作は一度に複数のターゲットを処理できます
|
||||
|
||||
**権限要件:**
|
||||
- `list/view/enable/disable/assign/unassign` コマンドには **ストラテジー権限** が必要
|
||||
- `--peers` には **デバイス権限:r** が必要(IDからGUIDへの検索用)
|
||||
- `--users` には **ユーザー権限:r** が必要(ユーザー名からGUIDへの検索用)
|
||||
- `--device-groups` には **デバイスグループ権限:r** が必要(グループ名からGUIDへの検索用)
|
||||
|
||||
---
|
||||
|
||||
|
||||
#### 監査 (`audits.py`)
|
||||
|
||||
**ヘルプ表示:**
|
||||
|
|
|
|||
|
|
@ -142,33 +142,204 @@ zobacz [tutaj](https://github.com/rustdesk/rustdesk/discussions/6377#discussionc
|
|||
|
||||
#### Zarządzanie użytkownikami (`users.py`)
|
||||
|
||||
**Pokaż pomoc:**
|
||||
**Pokaż pomoc:**
|
||||
`./users.py -h`
|
||||
|
||||
./users.py -h
|
||||
|
||||
**Wyświetl użytkowników:**
|
||||
|
||||
./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]
|
||||
**Wyświetl użytkowników:**
|
||||
`./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]`
|
||||
|
||||
**Filtry:**
|
||||
- `--name`: nazwa użytkownika (wyszukiwanie rozmyte)
|
||||
- `--group_name`: grupa użytkowników (dokładne dopasowanie)
|
||||
|
||||
--name : nazwa użytkownika
|
||||
--group_name : grupa użytkowników
|
||||
**Przykład:**
|
||||
`./users.py --url https://example.com --token <token> view --group_name Default`
|
||||
|
||||
**Przykład:**
|
||||
**Podstawowe operacje:**
|
||||
|
||||
./users.py --url https://example.com --token <token> view --group_name admins
|
||||
- **Wyłącz użytkownika:**
|
||||
`./users.py --url <url> --token <token> disable --name testuser`
|
||||
|
||||
**Operacje:**
|
||||
- **Włącz użytkownika:**
|
||||
`./users.py --url <url> --token <token> enable --name testuser`
|
||||
|
||||
`view` można zastąpić `enable`, `disable` lub `delete`.
|
||||
- **Usuń użytkownika:**
|
||||
`./users.py --url <url> --token <token> delete --name testuser`
|
||||
|
||||
**Przykład (wyłącz użytkownika):**
|
||||
**Tworzenie i zapraszanie użytkowników:**
|
||||
|
||||
./users.py --url https://example.com --token <token> disable --name testuser
|
||||
- **Utwórz nowego użytkownika:**
|
||||
`./users.py --url <url> --token <token> new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "notatka"]`
|
||||
|
||||
Wymagane: `--name`, `--password`, `--group_name`
|
||||
Opcjonalne: `--email`, `--note`
|
||||
|
||||
- **Zaproś użytkownika przez email:**
|
||||
`./users.py --url <url> --token <token> invite --email user@example.com --name username --group_name Default [--note "notatka"]`
|
||||
|
||||
Wymagane: `--email`, `--name`, `--group_name`
|
||||
Opcjonalne: `--note`
|
||||
|
||||
**Operacje 2FA i bezpieczeństwo:**
|
||||
|
||||
- **Włącz wymuszanie 2FA:**
|
||||
`./users.py --url <url> --token <token> enable-2fa-enforce --name username --web-console-url <console_url>`
|
||||
|
||||
Wymagane: `--web-console-url`
|
||||
|
||||
- **Wyłącz wymuszanie 2FA:**
|
||||
`./users.py --url <url> --token <token> disable-2fa-enforce --name username [--web-console-url <console_url>]`
|
||||
|
||||
Opcjonalne: `--web-console-url`
|
||||
|
||||
- **Zresetuj 2FA:**
|
||||
`./users.py --url <url> --token <token> reset-2fa --name username`
|
||||
|
||||
- **Wyłącz weryfikację email:**
|
||||
`./users.py --url <url> --token <token> disable-email-verification --name username`
|
||||
|
||||
- **Wymuś wylogowanie:**
|
||||
`./users.py --url <url> --token <token> force-logout --name username`
|
||||
|
||||
**Uwagi:**
|
||||
- Przy operacjach na wielu użytkownikach (dopasowanych przez filtry) zostanie wyświetlony monit o potwierdzenie
|
||||
- Jeśli nie ma pasujących użytkowników, zostanie wyświetlone "Found 0 users"
|
||||
|
||||
---
|
||||
|
||||
#### Zarządzanie grupami użytkowników (`user_group.py`)
|
||||
|
||||
**Pokaż pomoc:**
|
||||
`./user_group.py -h`
|
||||
|
||||
**Wyświetl grupy użytkowników:**
|
||||
`./user_group.py --url <url> --token <token> view [--name <group_name>]`
|
||||
|
||||
**Przykład:**
|
||||
`./user_group.py --url https://example.com --token <token> view --name "Zespół Sprzedaży"`
|
||||
|
||||
**Operacje na grupach:**
|
||||
|
||||
- **Utwórz grupę użytkowników:**
|
||||
`./user_group.py --url <url> --token <token> add --name "NazwaGrupy" [--note "opis"] [--accessed-from '<json>'] [--access-to '<json>']`
|
||||
|
||||
Przykład z kontrolą dostępu:
|
||||
`./user_group.py --url <url> --token <token> add --name "Inżynierowie" --accessed-from '[{"type":0,"name":"Menedżerowie"}]' --access-to '[{"type":1,"name":"Serwery Dev"}]'`
|
||||
|
||||
- **Aktualizuj grupę użytkowników:**
|
||||
`./user_group.py --url <url> --token <token> update --name "NazwaGrupy" [--new-name "Nowa Nazwa"] [--note "nowa notatka"] [--accessed-from '<json>'] [--access-to '<json>']`
|
||||
|
||||
- **Usuń grupę użytkowników:**
|
||||
`./user_group.py --url <url> --token <token> delete --name "NazwaGrupy"`
|
||||
|
||||
Obsługuje nazwy oddzielone przecinkami: `--name "Grupa1,Grupa2,Grupa3"`
|
||||
|
||||
**Zarządzanie użytkownikami w grupach:**
|
||||
|
||||
- **Wyświetl użytkowników w grupie:**
|
||||
`./user_group.py --url <url> --token <token> view-users [--name <group_name>] [--user-name <username>]`
|
||||
|
||||
Filtry:
|
||||
- `--name`: nazwa grupy (dokładne dopasowanie, opcjonalne)
|
||||
- `--user-name`: nazwa użytkownika (wyszukiwanie rozmyte, opcjonalne)
|
||||
|
||||
Przykład:
|
||||
`./user_group.py --url <url> --token <token> view-users --name Default --user-name john`
|
||||
|
||||
- **Dodaj użytkowników do grupy:**
|
||||
`./user_group.py --url <url> --token <token> add-users --name "NazwaGrupy" --users "user1,user2,user3"`
|
||||
|
||||
**Parametry kontroli dostępu:**
|
||||
|
||||
- `--accessed-from`: tablica JSON definiująca kto może uzyskać dostęp do tej grupy użytkowników
|
||||
- Type 0 = Grupa użytkowników (np. `[{"type":0,"name":"Admins"}]`)
|
||||
- Type 2 = Użytkownik (np. `[{"type":2,"name":"john"}]`)
|
||||
|
||||
- `--access-to`: tablica JSON definiująca do czego ta grupa użytkowników może uzyskać dostęp
|
||||
- Type 0 = Grupa użytkowników (np. `[{"type":0,"name":"Wsparcie"}]`)
|
||||
- Type 1 = Grupa urządzeń (np. `[{"type":1,"name":"Serwery"}]`)
|
||||
|
||||
**Uwaga:** Użyj pojedynczych cudzysłowów wokół tablic JSON, aby uniknąć problemów z parsowaniem powłoki.
|
||||
|
||||
**Wymagania uprawnień:**
|
||||
- Polecenia `view/add/update/delete/add-users` wymagają **Uprawnienia Grupy Użytkowników**
|
||||
- Polecenie `view-users` wymaga **Uprawnienia Użytkownika**
|
||||
|
||||
---
|
||||
|
||||
#### Zarządzanie grupami urządzeń (`device_group.py`)
|
||||
|
||||
**Pokaż pomoc:**
|
||||
`./device_group.py -h`
|
||||
|
||||
**Wyświetl grupy urządzeń:**
|
||||
`./device_group.py --url <url> --token <token> view [--name <group_name>]`
|
||||
|
||||
**Przykład:**
|
||||
`./device_group.py --url https://example.com --token <token> view`
|
||||
|
||||
**Operacje na grupach:**
|
||||
|
||||
- **Utwórz grupę urządzeń:**
|
||||
`./device_group.py --url <url> --token <token> add --name "NazwaGrupy" [--note "opis"] [--accessed-from '<json>']`
|
||||
|
||||
Przykład:
|
||||
`./device_group.py --url <url> --token <token> add --name "Produkcja" --accessed-from '[{"type":0,"name":"Admins"}]'`
|
||||
|
||||
- **Aktualizuj grupę urządzeń:**
|
||||
`./device_group.py --url <url> --token <token> update --name "NazwaGrupy" [--new-name "Nowa Nazwa"] [--note "nowa notatka"] [--accessed-from '<json>']`
|
||||
|
||||
- **Usuń grupę urządzeń:**
|
||||
`./device_group.py --url <url> --token <token> delete --name "NazwaGrupy"`
|
||||
|
||||
Obsługuje nazwy oddzielone przecinkami: `--name "Grupa1,Grupa2,Grupa3"`
|
||||
|
||||
**Zarządzanie urządzeniami w grupach:**
|
||||
|
||||
- **Wyświetl urządzenia w grupie:**
|
||||
`./device_group.py --url <url> --token <token> view-devices [filtry]`
|
||||
|
||||
Dostępne filtry:
|
||||
- `--name`: nazwa grupy urządzeń (dokładne dopasowanie)
|
||||
- `--id`: ID urządzenia (wyszukiwanie rozmyte)
|
||||
- `--device-name`: nazwa urządzenia (wyszukiwanie rozmyte)
|
||||
- `--user-name`: nazwa użytkownika/właściciel (wyszukiwanie rozmyte)
|
||||
- `--device-username`: nazwa użytkownika zalogowanego na urządzeniu (wyszukiwanie rozmyte)
|
||||
|
||||
Przykłady:
|
||||
```bash
|
||||
# Wyświetl wszystkie urządzenia w grupie
|
||||
./device_group.py --url <url> --token <token> view-devices --name Produkcja
|
||||
|
||||
# Szukaj po nazwie urządzenia
|
||||
./device_group.py --url <url> --token <token> view-devices --device-name server
|
||||
|
||||
# Połącz filtry
|
||||
./device_group.py --url <url> --token <token> view-devices --name Produkcja --user-name john
|
||||
```
|
||||
|
||||
- **Wyświetl dostępne grupy urządzeń:**
|
||||
`./device_group.py --url <url> --token <token> accessible`
|
||||
|
||||
Pokazuje wszystkie grupy urządzeń dostępne dla bieżącego użytkownika.
|
||||
|
||||
- **Dodaj urządzenia do grupy:**
|
||||
`./device_group.py --url <url> --token <token> add-devices --name "NazwaGrupy" --ids "deviceid1,deviceid2"`
|
||||
|
||||
- **Usuń urządzenia z grupy:**
|
||||
`./device_group.py --url <url> --token <token> remove-devices --name "NazwaGrupy" --ids "deviceid1,deviceid2"`
|
||||
|
||||
**Parametr kontroli dostępu:**
|
||||
|
||||
- `--accessed-from`: tablica JSON definiująca kto może uzyskać dostęp do tej grupy urządzeń
|
||||
- Type 0 = Grupa użytkowników (np. `[{"type":0,"name":"Inżynierowie"}]`)
|
||||
- Type 2 = Użytkownik (np. `[{"type":2,"name":"admin"}]`)
|
||||
|
||||
**Wymagania dotyczące uprawnień:**
|
||||
- Polecenia `view/add/update/delete/add-devices/remove-devices` wymagają **Uprawnienia Grupy Urządzeń**
|
||||
- Polecenie `view-devices` wymaga **Uprawnienia Urządzenia**
|
||||
|
||||
---
|
||||
#### Zarządzanie urządzeniami (`devices.py`)
|
||||
|
||||
**Pokaż pomoc:**
|
||||
|
|
@ -255,6 +426,74 @@ zobacz [tutaj](https://github.com/rustdesk/rustdesk/discussions/6377#discussionc
|
|||
|
||||
---
|
||||
|
||||
#### Zarządzanie Strategiami (`strategies.py`)
|
||||
|
||||
**Pokaż pomoc:**
|
||||
`./strategies.py -h`
|
||||
|
||||
**Wyświetl wszystkie strategie:**
|
||||
`./strategies.py --url <url> --token <token> list`
|
||||
|
||||
**Zobacz konkretną strategię:**
|
||||
```bash
|
||||
# Po nazwie
|
||||
./strategies.py --url <url> --token <token> view --name "Default"
|
||||
|
||||
# Po GUID
|
||||
./strategies.py --url <url> --token <token> view --guid "01983006-fcca-7c12-9a91-b1df483c6073"
|
||||
```
|
||||
|
||||
**Włącz lub wyłącz strategię:**
|
||||
```bash
|
||||
./strategies.py --url <url> --token <token> enable --name "NazwaStrategii"
|
||||
./strategies.py --url <url> --token <token> disable --name "NazwaStrategii"
|
||||
```
|
||||
|
||||
**Przypisz strategię do urządzeń, użytkowników lub grup urządzeń:**
|
||||
```bash
|
||||
# Przypisz do urządzeń (po ID urządzenia)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --peers "1849118658,1337348840"
|
||||
|
||||
# Przypisz do użytkowników (po nazwie użytkownika)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --users "admin,user1"
|
||||
|
||||
# Przypisz do grup urządzeń (po nazwie grupy)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --device-groups "device_group1,Production"
|
||||
|
||||
# Przypisanie mieszane
|
||||
./strategies.py --url <url> --token <token> assign \
|
||||
--name "Default" \
|
||||
--peers "1849118658" \
|
||||
--users "admin" \
|
||||
--device-groups "device_group1"
|
||||
```
|
||||
|
||||
**Cofnij przypisanie strategii:**
|
||||
```bash
|
||||
# Cofnij z urządzeń
|
||||
./strategies.py --url <url> --token <token> unassign --peers "1849118658,1337348840"
|
||||
|
||||
# Cofnij z użytkowników
|
||||
./strategies.py --url <url> --token <token> unassign --users "admin"
|
||||
|
||||
# Cofnij z grup urządzeń
|
||||
./strategies.py --url <url> --token <token> unassign --device-groups "device_group1"
|
||||
```
|
||||
|
||||
**Uwagi:**
|
||||
- Skrypt obsługuje zarówno nazwy, jak i GUID dla użytkowników i grup urządzeń
|
||||
- ID urządzeń są automatycznie konwertowane na GUID
|
||||
- Wszystkie operacje assign/unassign mogą obsługiwać wiele celów jednocześnie
|
||||
|
||||
**Wymagania uprawnień:**
|
||||
- Polecenia `list/view/enable/disable/assign/unassign` wymagają **Uprawnienia Strategii**
|
||||
- `--peers` wymaga **Uprawnienia Urządzenia:r** (do wyszukiwania ID do GUID)
|
||||
- `--users` wymaga **Uprawnienia Użytkownika:r** (do wyszukiwania nazwy użytkownika do GUID)
|
||||
- `--device-groups` wymaga **Uprawnienia Grupy Urządzeń:r** (do wyszukiwania nazwy grupy do GUID)
|
||||
|
||||
---
|
||||
|
||||
|
||||
#### Audyty (`audits.py`)
|
||||
|
||||
**Pokaż pomoc:**
|
||||
|
|
|
|||
|
|
@ -141,30 +141,202 @@ veja [aqui](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomm
|
|||
|
||||
#### Gerenciamento de Usuários (`users.py`)
|
||||
|
||||
**Mostrar ajuda:**
|
||||
**Mostrar ajuda:**
|
||||
`./users.py -h`
|
||||
|
||||
./users.py -h
|
||||
|
||||
**Visualizar usuários:**
|
||||
|
||||
./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]
|
||||
**Visualizar usuários:**
|
||||
`./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]`
|
||||
|
||||
**Filtros:**
|
||||
- `--name`: nome do usuário (busca difusa)
|
||||
- `--group_name`: grupo de usuários (correspondência exata)
|
||||
|
||||
--name : nome do usuário
|
||||
--group_name : grupo de usuários
|
||||
**Exemplo:**
|
||||
`./users.py --url https://example.com --token <token> view --group_name Default`
|
||||
|
||||
**Exemplo:**
|
||||
**Operações básicas:**
|
||||
|
||||
./users.py --url https://example.com --token <token> view --group_name admins
|
||||
- **Desativar usuário:**
|
||||
`./users.py --url <url> --token <token> disable --name testuser`
|
||||
|
||||
**Operações:**
|
||||
- **Ativar usuário:**
|
||||
`./users.py --url <url> --token <token> enable --name testuser`
|
||||
|
||||
`view` pode ser substituído por `enable`, `disable` ou `delete`.
|
||||
- **Excluir usuário:**
|
||||
`./users.py --url <url> --token <token> delete --name testuser`
|
||||
|
||||
**Exemplo (desativar usuário):**
|
||||
**Criação e convite de usuários:**
|
||||
|
||||
./users.py --url https://example.com --token <token> disable --name testuser
|
||||
- **Criar novo usuário:**
|
||||
`./users.py --url <url> --token <token> new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "nota"]`
|
||||
|
||||
Obrigatório: `--name`, `--password`, `--group_name`
|
||||
Opcional: `--email`, `--note`
|
||||
|
||||
- **Convidar usuário por email:**
|
||||
`./users.py --url <url> --token <token> invite --email user@example.com --name username --group_name Default [--note "nota"]`
|
||||
|
||||
Obrigatório: `--email`, `--name`, `--group_name`
|
||||
Opcional: `--note`
|
||||
|
||||
**Operações 2FA e segurança:**
|
||||
|
||||
- **Habilitar imposição 2FA:**
|
||||
`./users.py --url <url> --token <token> enable-2fa-enforce --name username --web-console-url <console_url>`
|
||||
|
||||
Obrigatório: `--web-console-url`
|
||||
|
||||
- **Desabilitar imposição 2FA:**
|
||||
`./users.py --url <url> --token <token> disable-2fa-enforce --name username [--web-console-url <console_url>]`
|
||||
|
||||
Opcional: `--web-console-url`
|
||||
|
||||
- **Redefinir 2FA:**
|
||||
`./users.py --url <url> --token <token> reset-2fa --name username`
|
||||
|
||||
- **Desabilitar verificação por email:**
|
||||
`./users.py --url <url> --token <token> disable-email-verification --name username`
|
||||
|
||||
- **Forçar logout:**
|
||||
`./users.py --url <url> --token <token> force-logout --name username`
|
||||
|
||||
**Observações:**
|
||||
- Ao operar em múltiplos usuários (correspondentes aos filtros), será solicitada confirmação
|
||||
- Se não houver usuários correspondentes, será exibido "Found 0 users"
|
||||
|
||||
---
|
||||
|
||||
#### Gerenciamento de Grupos de Usuários (`user_group.py`)
|
||||
|
||||
**Mostrar ajuda:**
|
||||
`./user_group.py -h`
|
||||
|
||||
**Visualizar grupos de usuários:**
|
||||
`./user_group.py --url <url> --token <token> view [--name <group_name>]`
|
||||
|
||||
**Exemplo:**
|
||||
`./user_group.py --url https://example.com --token <token> view --name "Equipe Vendas"`
|
||||
|
||||
**Operações de grupo:**
|
||||
|
||||
- **Criar grupo de usuários:**
|
||||
`./user_group.py --url <url> --token <token> add --name "NomeGrupo" [--note "descrição"] [--accessed-from '<json>'] [--access-to '<json>']`
|
||||
|
||||
Exemplo com controle de acesso:
|
||||
`./user_group.py --url <url> --token <token> add --name "Engenharia" --accessed-from '[{"type":0,"name":"Gerentes"}]' --access-to '[{"type":1,"name":"Servidores Dev"}]'`
|
||||
|
||||
- **Atualizar grupo de usuários:**
|
||||
`./user_group.py --url <url> --token <token> update --name "NomeGrupo" [--new-name "Novo Nome"] [--note "nova nota"] [--accessed-from '<json>'] [--access-to '<json>']`
|
||||
|
||||
- **Excluir grupo de usuários:**
|
||||
`./user_group.py --url <url> --token <token> delete --name "NomeGrupo"`
|
||||
|
||||
Suporta nomes separados por vírgula: `--name "Grupo1,Grupo2,Grupo3"`
|
||||
|
||||
**Gerenciamento de usuários em grupos:**
|
||||
|
||||
- **Visualizar usuários no grupo:**
|
||||
`./user_group.py --url <url> --token <token> view-users [--name <group_name>] [--user-name <username>]`
|
||||
|
||||
Filtros:
|
||||
- `--name`: nome do grupo (correspondência exata, opcional)
|
||||
- `--user-name`: nome do usuário (busca difusa, opcional)
|
||||
|
||||
Exemplo:
|
||||
`./user_group.py --url <url> --token <token> view-users --name Default --user-name john`
|
||||
|
||||
- **Adicionar usuários ao grupo:**
|
||||
`./user_group.py --url <url> --token <token> add-users --name "NomeGrupo" --users "user1,user2,user3"`
|
||||
|
||||
**Parâmetros de controle de acesso:**
|
||||
|
||||
- `--accessed-from`: array JSON que define quem pode acessar este grupo de usuários
|
||||
- Type 0 = Grupo de usuários (ex. `[{"type":0,"name":"Admins"}]`)
|
||||
- Type 2 = Usuário (ex. `[{"type":2,"name":"john"}]`)
|
||||
|
||||
- `--access-to`: array JSON que define o que este grupo de usuários pode acessar
|
||||
- Type 0 = Grupo de usuários (ex. `[{"type":0,"name":"Suporte"}]`)
|
||||
- Type 1 = Grupo de dispositivos (ex. `[{"type":1,"name":"Servidores"}]`)
|
||||
|
||||
**Nota:** Use aspas simples ao redor dos arrays JSON para evitar problemas de análise do shell.
|
||||
|
||||
**Requisitos de permissões:**
|
||||
- Os comandos `view/add/update/delete/add-users` requerem **Permissão de Grupo de Usuários**
|
||||
- O comando `view-users` requer **Permissão de Usuário**
|
||||
|
||||
---
|
||||
|
||||
#### Gerenciamento de Grupos de Dispositivos (`device_group.py`)
|
||||
|
||||
**Mostrar ajuda:**
|
||||
`./device_group.py -h`
|
||||
|
||||
**Visualizar grupos de dispositivos:**
|
||||
`./device_group.py --url <url> --token <token> view [--name <group_name>]`
|
||||
|
||||
**Exemplo:**
|
||||
`./device_group.py --url https://example.com --token <token> view`
|
||||
|
||||
**Operações de grupo:**
|
||||
|
||||
- **Criar grupo de dispositivos:**
|
||||
`./device_group.py --url <url> --token <token> add --name "NomeGrupo" [--note "descrição"] [--accessed-from '<json>']`
|
||||
|
||||
Exemplo:
|
||||
`./device_group.py --url <url> --token <token> add --name "Produção" --accessed-from '[{"type":0,"name":"Admins"}]'`
|
||||
|
||||
- **Atualizar grupo de dispositivos:**
|
||||
`./device_group.py --url <url> --token <token> update --name "NomeGrupo" [--new-name "Novo Nome"] [--note "nova nota"] [--accessed-from '<json>']`
|
||||
|
||||
- **Excluir grupo de dispositivos:**
|
||||
`./device_group.py --url <url> --token <token> delete --name "NomeGrupo"`
|
||||
|
||||
Suporta nomes separados por vírgula: `--name "Grupo1,Grupo2,Grupo3"`
|
||||
|
||||
**Gerenciamento de dispositivos em grupos:**
|
||||
|
||||
- **Visualizar dispositivos no grupo:**
|
||||
`./device_group.py --url <url> --token <token> view-devices [filtros]`
|
||||
|
||||
Filtros disponíveis:
|
||||
- `--name`: nome do grupo de dispositivos (correspondência exata)
|
||||
- `--id`: ID do dispositivo (busca difusa)
|
||||
- `--device-name`: nome do dispositivo (busca difusa)
|
||||
- `--user-name`: nome do usuário/proprietário (busca difusa)
|
||||
- `--device-username`: nome de usuário conectado no dispositivo (busca difusa)
|
||||
|
||||
Exemplos:
|
||||
```bash
|
||||
# Visualizar todos os dispositivos em um grupo
|
||||
./device_group.py --url <url> --token <token> view-devices --name Produção
|
||||
|
||||
# Buscar por nome de dispositivo
|
||||
./device_group.py --url <url> --token <token> view-devices --device-name server
|
||||
|
||||
# Combinar filtros
|
||||
./device_group.py --url <url> --token <token> view-devices --name Produção --user-name john
|
||||
```
|
||||
|
||||
- **Visualizar grupos de dispositivos acessíveis:**
|
||||
`./device_group.py --url <url> --token <token> accessible`
|
||||
|
||||
Mostra todos os grupos de dispositivos acessíveis ao usuário atual.
|
||||
|
||||
- **Adicionar dispositivos ao grupo:**
|
||||
`./device_group.py --url <url> --token <token> add-devices --name "NomeGrupo" --ids "deviceid1,deviceid2"`
|
||||
|
||||
- **Remover dispositivos do grupo:**
|
||||
`./device_group.py --url <url> --token <token> remove-devices --name "NomeGrupo" --ids "deviceid1,deviceid2"`
|
||||
|
||||
**Parâmetro de controle de acesso:**
|
||||
|
||||
- `--accessed-from`: array JSON que define quem pode acessar este grupo de dispositivos
|
||||
- Type 0 = Grupo de usuários (ex. `[{"type":0,"name":"Engenheiros"}]`)
|
||||
- Type 2 = Usuário (ex. `[{"type":2,"name":"admin"}]`)
|
||||
|
||||
**Requisitos de permissões:**
|
||||
- Os comandos `view/add/update/delete/add-devices/remove-devices` requerem **Permissão de Grupo de Dispositivos**
|
||||
- O comando `view-devices` requer **Permissão de Dispositivo**
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -254,6 +426,74 @@ veja [aqui](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomm
|
|||
|
||||
---
|
||||
|
||||
#### Gestão de Estratégias (`strategies.py`)
|
||||
|
||||
**Mostrar ajuda:**
|
||||
`./strategies.py -h`
|
||||
|
||||
**Listar todas as estratégias:**
|
||||
`./strategies.py --url <url> --token <token> list`
|
||||
|
||||
**Ver uma estratégia específica:**
|
||||
```bash
|
||||
# Por nome
|
||||
./strategies.py --url <url> --token <token> view --name "Default"
|
||||
|
||||
# Por GUID
|
||||
./strategies.py --url <url> --token <token> view --guid "01983006-fcca-7c12-9a91-b1df483c6073"
|
||||
```
|
||||
|
||||
**Ativar ou desativar uma estratégia:**
|
||||
```bash
|
||||
./strategies.py --url <url> --token <token> enable --name "NomeEstrategia"
|
||||
./strategies.py --url <url> --token <token> disable --name "NomeEstrategia"
|
||||
```
|
||||
|
||||
**Atribuir estratégia a dispositivos, usuários ou grupos de dispositivos:**
|
||||
```bash
|
||||
# Atribuir a dispositivos (por ID de dispositivo)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --peers "1849118658,1337348840"
|
||||
|
||||
# Atribuir a usuários (por nome de usuário)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --users "admin,user1"
|
||||
|
||||
# Atribuir a grupos de dispositivos (por nome de grupo)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --device-groups "device_group1,Production"
|
||||
|
||||
# Atribuição mista
|
||||
./strategies.py --url <url> --token <token> assign \
|
||||
--name "Default" \
|
||||
--peers "1849118658" \
|
||||
--users "admin" \
|
||||
--device-groups "device_group1"
|
||||
```
|
||||
|
||||
**Cancelar atribuição de estratégia:**
|
||||
```bash
|
||||
# Cancelar de dispositivos
|
||||
./strategies.py --url <url> --token <token> unassign --peers "1849118658,1337348840"
|
||||
|
||||
# Cancelar de usuários
|
||||
./strategies.py --url <url> --token <token> unassign --users "admin"
|
||||
|
||||
# Cancelar de grupos de dispositivos
|
||||
./strategies.py --url <url> --token <token> unassign --device-groups "device_group1"
|
||||
```
|
||||
|
||||
**Notas:**
|
||||
- O script suporta nomes e GUIDs para usuários e grupos de dispositivos
|
||||
- IDs de dispositivos são automaticamente convertidos em GUIDs
|
||||
- Todas as operações assign/unassign podem trabalhar com múltiplos alvos de uma vez
|
||||
|
||||
**Requisitos de permissões:**
|
||||
- Os comandos `list/view/enable/disable/assign/unassign` requerem **Permissão de Estratégia**
|
||||
- `--peers` requer **Permissão de Dispositivo:r** (para pesquisa de ID para GUID)
|
||||
- `--users` requer **Permissão de Usuário:r** (para pesquisa de nome de usuário para GUID)
|
||||
- `--device-groups` requer **Permissão de Grupo de Dispositivos:r** (para pesquisa de nome de grupo para GUID)
|
||||
|
||||
---
|
||||
|
||||
|
||||
#### Auditorias (`audits.py`)
|
||||
|
||||
**Mostrar ajuda:**
|
||||
|
|
|
|||
|
|
@ -142,18 +142,196 @@ Linia de comandă pe Windows nu afișează output implicit. Pentru a obține out
|
|||
**Vezi utilizatori:**
|
||||
`./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]`
|
||||
|
||||
**Filtre:**
|
||||
`--name`: username
|
||||
`--group_name`: grup utilizatori
|
||||
**Filtre:**
|
||||
- `--name`: username (căutare aproximativă)
|
||||
- `--group_name`: grup utilizatori (potrivire exactă)
|
||||
|
||||
**Exemplu:**
|
||||
`./users.py --url https://example.com --token <token> view --group_name admins`
|
||||
`./users.py --url https://example.com --token <token> view --group_name Default`
|
||||
|
||||
**Operații:**
|
||||
`view` poate fi înlocuit cu `enable`, `disable`, sau `delete`.
|
||||
**Operații de bază:**
|
||||
|
||||
**Exemplu (dezactivează utilizator):**
|
||||
`./users.py --url https://example.com --token <token> disable --name testuser`
|
||||
- **Dezactivează utilizator:**
|
||||
`./users.py --url <url> --token <token> disable --name testuser`
|
||||
|
||||
- **Activează utilizator:**
|
||||
`./users.py --url <url> --token <token> enable --name testuser`
|
||||
|
||||
- **Șterge utilizator:**
|
||||
`./users.py --url <url> --token <token> delete --name testuser`
|
||||
|
||||
**Creare și invitare utilizatori:**
|
||||
|
||||
- **Creează utilizator nou:**
|
||||
`./users.py --url <url> --token <token> new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "notă"]`
|
||||
|
||||
Necesar: `--name`, `--password`, `--group_name`
|
||||
Opțional: `--email`, `--note`
|
||||
|
||||
- **Invită utilizator prin email:**
|
||||
`./users.py --url <url> --token <token> invite --email user@example.com --name username --group_name Default [--note "notă"]`
|
||||
|
||||
Necesar: `--email`, `--name`, `--group_name`
|
||||
Opțional: `--note`
|
||||
|
||||
**Operații 2FA și securitate:**
|
||||
|
||||
- **Activează impunere 2FA:**
|
||||
`./users.py --url <url> --token <token> enable-2fa-enforce --name username --web-console-url <console_url>`
|
||||
|
||||
Necesar: `--web-console-url`
|
||||
|
||||
- **Dezactivează impunere 2FA:**
|
||||
`./users.py --url <url> --token <token> disable-2fa-enforce --name username [--web-console-url <console_url>]`
|
||||
|
||||
Opțional: `--web-console-url`
|
||||
|
||||
- **Resetează 2FA:**
|
||||
`./users.py --url <url> --token <token> reset-2fa --name username`
|
||||
|
||||
- **Dezactivează verificare email:**
|
||||
`./users.py --url <url> --token <token> disable-email-verification --name username`
|
||||
|
||||
- **Deconectare forțată:**
|
||||
`./users.py --url <url> --token <token> force-logout --name username`
|
||||
|
||||
**Notă:**
|
||||
- La operații pe mai mulți utilizatori (potriviți prin filtre), se va solicita confirmare
|
||||
- Dacă nu există utilizatori potriviți, se va afișa "Found 0 users"
|
||||
|
||||
---
|
||||
|
||||
#### Management grupuri utilizatori (`user_group.py`)
|
||||
|
||||
**Afișează help:**
|
||||
`./user_group.py -h`
|
||||
|
||||
**Vezi grupuri utilizatori:**
|
||||
`./user_group.py --url <url> --token <token> view [--name <group_name>]`
|
||||
|
||||
**Exemplu:**
|
||||
`./user_group.py --url https://example.com --token <token> view --name "Echipa Vânzări"`
|
||||
|
||||
**Operații pe grupuri:**
|
||||
|
||||
- **Creează grup utilizatori:**
|
||||
`./user_group.py --url <url> --token <token> add --name "NumeGrup" [--note "descriere"] [--accessed-from '<json>'] [--access-to '<json>']`
|
||||
|
||||
Exemplu cu control acces:
|
||||
`./user_group.py --url <url> --token <token> add --name "Inginerie" --accessed-from '[{"type":0,"name":"Manageri"}]' --access-to '[{"type":1,"name":"Servere Dev"}]'`
|
||||
|
||||
- **Actualizează grup utilizatori:**
|
||||
`./user_group.py --url <url> --token <token> update --name "NumeGrup" [--new-name "Nume Nou"] [--note "notă nouă"] [--accessed-from '<json>'] [--access-to '<json>']`
|
||||
|
||||
- **Șterge grup utilizatori:**
|
||||
`./user_group.py --url <url> --token <token> delete --name "NumeGrup"`
|
||||
|
||||
Suportă nume separate prin virgulă: `--name "Grup1,Grup2,Grup3"`
|
||||
|
||||
**Management utilizatori în grupuri:**
|
||||
|
||||
- **Vezi utilizatori în grup:**
|
||||
`./user_group.py --url <url> --token <token> view-users [--name <group_name>] [--user-name <username>]`
|
||||
|
||||
Filtre:
|
||||
- `--name`: nume grup (potrivire exactă, opțional)
|
||||
- `--user-name`: username (căutare aproximativă, opțional)
|
||||
|
||||
Exemplu:
|
||||
`./user_group.py --url <url> --token <token> view-users --name Default --user-name john`
|
||||
|
||||
- **Adaugă utilizatori în grup:**
|
||||
`./user_group.py --url <url> --token <token> add-users --name "NumeGrup" --users "user1,user2,user3"`
|
||||
|
||||
**Parametri control acces:**
|
||||
|
||||
- `--accessed-from`: array JSON ce definește cine poate accesa acest grup de utilizatori
|
||||
- Type 0 = Grup utilizatori (ex. `[{"type":0,"name":"Admins"}]`)
|
||||
- Type 2 = Utilizator (ex. `[{"type":2,"name":"john"}]`)
|
||||
|
||||
- `--access-to`: array JSON ce definește la ce poate accesa acest grup de utilizatori
|
||||
- Type 0 = Grup utilizatori (ex. `[{"type":0,"name":"Suport"}]`)
|
||||
- Type 1 = Grup dispozitive (ex. `[{"type":1,"name":"Servere"}]`)
|
||||
|
||||
**Notă:** Folosiți ghilimele simple în jurul array-urilor JSON pentru a evita probleme de parsare shell.
|
||||
|
||||
**Cerințe de permisiuni:**
|
||||
- Comenzile `view/add/update/delete/add-users` necesită **Permisiune Grup Utilizatori**
|
||||
- Comanda `view-users` necesită **Permisiune Utilizator**
|
||||
|
||||
---
|
||||
|
||||
#### Management grupuri dispozitive (`device_group.py`)
|
||||
|
||||
**Afișează help:**
|
||||
`./device_group.py -h`
|
||||
|
||||
**Vezi grupuri dispozitive:**
|
||||
`./device_group.py --url <url> --token <token> view [--name <group_name>]`
|
||||
|
||||
**Exemplu:**
|
||||
`./device_group.py --url https://example.com --token <token> view`
|
||||
|
||||
**Operații pe grupuri:**
|
||||
|
||||
- **Creează grup dispozitive:**
|
||||
`./device_group.py --url <url> --token <token> add --name "NumeGrup" [--note "descriere"] [--accessed-from '<json>']`
|
||||
|
||||
Exemplu:
|
||||
`./device_group.py --url <url> --token <token> add --name "Producție" --accessed-from '[{"type":0,"name":"Admins"}]'`
|
||||
|
||||
- **Actualizează grup dispozitive:**
|
||||
`./device_group.py --url <url> --token <token> update --name "NumeGrup" [--new-name "Nume Nou"] [--note "notă nouă"] [--accessed-from '<json>']`
|
||||
|
||||
- **Șterge grup dispozitive:**
|
||||
`./device_group.py --url <url> --token <token> delete --name "NumeGrup"`
|
||||
|
||||
Suportă nume separate prin virgulă: `--name "Grup1,Grup2,Grup3"`
|
||||
|
||||
**Management dispozitive în grupuri:**
|
||||
|
||||
- **Vezi dispozitive în grup:**
|
||||
`./device_group.py --url <url> --token <token> view-devices [filtre]`
|
||||
|
||||
Filtre disponibile:
|
||||
- `--name`: nume grup dispozitive (potrivire exactă)
|
||||
- `--id`: ID dispozitiv (căutare aproximativă)
|
||||
- `--device-name`: nume dispozitiv (căutare aproximativă)
|
||||
- `--user-name`: username/proprietar (căutare aproximativă)
|
||||
- `--device-username`: username conectat pe dispozitiv (căutare aproximativă)
|
||||
|
||||
Exemple:
|
||||
```bash
|
||||
# Vezi toate dispozitivele dintr-un grup
|
||||
./device_group.py --url <url> --token <token> view-devices --name Producție
|
||||
|
||||
# Caută după nume dispozitiv
|
||||
./device_group.py --url <url> --token <token> view-devices --device-name server
|
||||
|
||||
# Combină filtre
|
||||
./device_group.py --url <url> --token <token> view-devices --name Producție --user-name john
|
||||
```
|
||||
|
||||
- **Vezi grupuri dispozitive accesibile:**
|
||||
`./device_group.py --url <url> --token <token> accessible`
|
||||
|
||||
Afișează toate grupurile de dispozitive accesibile utilizatorului curent.
|
||||
|
||||
- **Adaugă dispozitive în grup:**
|
||||
`./device_group.py --url <url> --token <token> add-devices --name "NumeGrup" --ids "deviceid1,deviceid2"`
|
||||
|
||||
- **Elimină dispozitive din grup:**
|
||||
`./device_group.py --url <url> --token <token> remove-devices --name "NumeGrup" --ids "deviceid1,deviceid2"`
|
||||
|
||||
**Parametru control acces:**
|
||||
|
||||
- `--accessed-from`: array JSON ce definește cine poate accesa acest grup de dispozitive
|
||||
- Type 0 = Grup utilizatori (ex. `[{"type":0,"name":"Ingineri"}]`)
|
||||
- Type 2 = Utilizator (ex. `[{"type":2,"name":"admin"}]`)
|
||||
|
||||
**Cerințe permisiuni:**
|
||||
- Comenzile `view/add/update/delete/add-devices/remove-devices` necesită **Permisiune Grup Dispozitive**
|
||||
- Comanda `view-devices` necesită **Permisiune Dispozitiv**
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -227,6 +405,74 @@ Linia de comandă pe Windows nu afișează output implicit. Pentru a obține out
|
|||
|
||||
---
|
||||
|
||||
#### Gestionarea Strategiilor (`strategies.py`)
|
||||
|
||||
**Afișați ajutor:**
|
||||
`./strategies.py -h`
|
||||
|
||||
**Listați toate strategiile:**
|
||||
`./strategies.py --url <url> --token <token> list`
|
||||
|
||||
**Vezi o strategie specifică:**
|
||||
```bash
|
||||
# După nume
|
||||
./strategies.py --url <url> --token <token> view --name "Default"
|
||||
|
||||
# După GUID
|
||||
./strategies.py --url <url> --token <token> view --guid "01983006-fcca-7c12-9a91-b1df483c6073"
|
||||
```
|
||||
|
||||
**Activați sau dezactivați o strategie:**
|
||||
```bash
|
||||
./strategies.py --url <url> --token <token> enable --name "NumeStrategie"
|
||||
./strategies.py --url <url> --token <token> disable --name "NumeStrategie"
|
||||
```
|
||||
|
||||
**Atribuiți strategia dispozitivelor, utilizatorilor sau grupurilor de dispozitive:**
|
||||
```bash
|
||||
# Atribuiți dispozitivelor (după ID dispozitiv)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --peers "1849118658,1337348840"
|
||||
|
||||
# Atribuiți utilizatorilor (după nume utilizator)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --users "admin,user1"
|
||||
|
||||
# Atribuiți grupurilor de dispozitive (după nume grup)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --device-groups "device_group1,Production"
|
||||
|
||||
# Atribuire mixtă
|
||||
./strategies.py --url <url> --token <token> assign \
|
||||
--name "Default" \
|
||||
--peers "1849118658" \
|
||||
--users "admin" \
|
||||
--device-groups "device_group1"
|
||||
```
|
||||
|
||||
**Anulați atribuirea strategiei:**
|
||||
```bash
|
||||
# Anulați de la dispozitive
|
||||
./strategies.py --url <url> --token <token> unassign --peers "1849118658,1337348840"
|
||||
|
||||
# Anulați de la utilizatori
|
||||
./strategies.py --url <url> --token <token> unassign --users "admin"
|
||||
|
||||
# Anulați de la grupuri de dispozitive
|
||||
./strategies.py --url <url> --token <token> unassign --device-groups "device_group1"
|
||||
```
|
||||
|
||||
**Note:**
|
||||
- Scriptul acceptă atât nume cât și GUID-uri pentru utilizatori și grupuri de dispozitive
|
||||
- ID-urile dispozitivelor sunt convertite automat în GUID-uri
|
||||
- Toate operațiunile assign/unassign pot lucra cu mai multe ținte simultan
|
||||
|
||||
**Cerințe de permisiuni:**
|
||||
- Comenzile `list/view/enable/disable/assign/unassign` necesită **Permisiune Strategie**
|
||||
- `--peers` necesită **Permisiune Dispozitiv:r** (pentru căutarea ID la GUID)
|
||||
- `--users` necesită **Permisiune Utilizator:r** (pentru căutarea nume utilizator la GUID)
|
||||
- `--device-groups` necesită **Permisiune Grup Dispozitive:r** (pentru căutarea nume grup la GUID)
|
||||
|
||||
---
|
||||
|
||||
|
||||
#### Audits (`audits.py`)
|
||||
|
||||
**Afișează help:**
|
||||
|
|
|
|||
|
|
@ -147,34 +147,204 @@ Windows 命令行默认无输出,如需查看输出,可使用如下方式运
|
|||
|
||||
### Python CLI 管理工具
|
||||
|
||||
#### 用户管理 (users.py)
|
||||
#### 用户管理 (`users.py`)
|
||||
|
||||
**查看帮助:**
|
||||
**查看帮助:**
|
||||
`./users.py -h`
|
||||
|
||||
./users.py -h
|
||||
**查看用户:**
|
||||
`./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]`
|
||||
|
||||
**查看用户:**
|
||||
**过滤条件:**
|
||||
- `--name`:用户名(模糊搜索)
|
||||
- `--group_name`:用户组名(精确匹配)
|
||||
|
||||
./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]
|
||||
**示例:**
|
||||
`./users.py --url https://example.com --token <token> view --group_name Default`
|
||||
|
||||
**过滤条件:**
|
||||
`--name`:用户名
|
||||
`--group_name`:用户组名
|
||||
**基本操作:**
|
||||
|
||||
**示例:**
|
||||
- **禁用用户:**
|
||||
`./users.py --url <url> --token <token> disable --name testuser`
|
||||
|
||||
./users.py --url https://example.com --token <token> view --group_name admins
|
||||
- **启用用户:**
|
||||
`./users.py --url <url> --token <token> enable --name testuser`
|
||||
|
||||
**操作命令:**
|
||||
`view` 可替换为 `enable`(启用)、`disable`(禁用)或 `delete`(删除)。
|
||||
- **删除用户:**
|
||||
`./users.py --url <url> --token <token> delete --name testuser`
|
||||
|
||||
**示例(禁用用户):**
|
||||
**用户创建和邀请:**
|
||||
|
||||
./users.py --url https://example.com --token <token> disable --name testuser
|
||||
- **创建新用户:**
|
||||
`./users.py --url <url> --token <token> new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "备注"]`
|
||||
|
||||
必需参数:`--name`、`--password`、`--group_name`
|
||||
可选参数:`--email`、`--note`
|
||||
|
||||
- **通过邮箱邀请用户:**
|
||||
`./users.py --url <url> --token <token> invite --email user@example.com --name username --group_name Default [--note "备注"]`
|
||||
|
||||
必需参数:`--email`、`--name`、`--group_name`
|
||||
可选参数:`--note`
|
||||
|
||||
**2FA 和安全操作:**
|
||||
|
||||
- **启用 2FA 强制要求:**
|
||||
`./users.py --url <url> --token <token> enable-2fa-enforce --name username --web-console-url <console_url>`
|
||||
|
||||
必需参数:`--web-console-url`
|
||||
|
||||
- **禁用 2FA 强制要求:**
|
||||
`./users.py --url <url> --token <token> disable-2fa-enforce --name username [--web-console-url <console_url>]`
|
||||
|
||||
可选参数:`--web-console-url`
|
||||
|
||||
- **重置 2FA:**
|
||||
`./users.py --url <url> --token <token> reset-2fa --name username`
|
||||
|
||||
- **禁用邮箱验证:**
|
||||
`./users.py --url <url> --token <token> disable-email-verification --name username`
|
||||
|
||||
- **强制登出:**
|
||||
`./users.py --url <url> --token <token> force-logout --name username`
|
||||
|
||||
**注意事项:**
|
||||
- 当操作多个用户时(通过过滤器匹配),系统会提示确认
|
||||
- 如果没有匹配的用户,将显示 "Found 0 users"
|
||||
|
||||
---
|
||||
|
||||
#### 设备管理 (devices.py)
|
||||
#### 用户组管理 (`user_group.py`)
|
||||
|
||||
**查看帮助:**
|
||||
`./user_group.py -h`
|
||||
|
||||
**查看用户组:**
|
||||
`./user_group.py --url <url> --token <token> view [--name <group_name>]`
|
||||
|
||||
**示例:**
|
||||
`./user_group.py --url https://example.com --token <token> view --name "销售团队"`
|
||||
|
||||
**组操作:**
|
||||
|
||||
- **创建用户组:**
|
||||
`./user_group.py --url <url> --token <token> add --name "组名" [--note "描述"] [--accessed-from '<json>'] [--access-to '<json>']`
|
||||
|
||||
带访问控制的示例:
|
||||
`./user_group.py --url <url> --token <token> add --name "工程部" --accessed-from '[{"type":0,"name":"管理层"}]' --access-to '[{"type":1,"name":"开发服务器"}]'`
|
||||
|
||||
- **更新用户组:**
|
||||
`./user_group.py --url <url> --token <token> update --name "组名" [--new-name "新名称"] [--note "新备注"] [--accessed-from '<json>'] [--access-to '<json>']`
|
||||
|
||||
- **删除用户组:**
|
||||
`./user_group.py --url <url> --token <token> delete --name "组名"`
|
||||
|
||||
支持逗号分隔的多个组名:`--name "组1,组2,组3"`
|
||||
|
||||
**组内用户管理:**
|
||||
|
||||
- **查看组内用户:**
|
||||
`./user_group.py --url <url> --token <token> view-users [--name <group_name>] [--user-name <username>]`
|
||||
|
||||
过滤条件:
|
||||
- `--name`:组名(精确匹配,可选)
|
||||
- `--user-name`:用户名(模糊搜索,可选)
|
||||
|
||||
示例:
|
||||
`./user_group.py --url <url> --token <token> view-users --name Default --user-name john`
|
||||
|
||||
- **添加用户到组:**
|
||||
`./user_group.py --url <url> --token <token> add-users --name "组名" --users "user1,user2,user3"`
|
||||
|
||||
**访问控制参数:**
|
||||
|
||||
- `--accessed-from`:定义谁可以访问此用户组的 JSON 数组
|
||||
- Type 0 = 用户组(例如:`[{"type":0,"name":"管理员"}]`)
|
||||
- Type 2 = 用户(例如:`[{"type":2,"name":"john"}]`)
|
||||
|
||||
- `--access-to`:定义此用户组可以访问什么的 JSON 数组
|
||||
- Type 0 = 用户组(例如:`[{"type":0,"name":"支持"}]`)
|
||||
- Type 1 = 设备组(例如:`[{"type":1,"name":"服务器"}]`)
|
||||
|
||||
**注意:** 使用单引号包围 JSON 数组以避免 shell 解析问题。
|
||||
|
||||
**权限要求:**
|
||||
- `view/add/update/delete/add-users` 命令需要 **用户组权限**
|
||||
- `view-users` 命令需要 **用户权限**
|
||||
|
||||
---
|
||||
|
||||
#### 设备组管理 (`device_group.py`)
|
||||
|
||||
**查看帮助:**
|
||||
`./device_group.py -h`
|
||||
|
||||
**查看设备组:**
|
||||
`./device_group.py --url <url> --token <token> view [--name <group_name>]`
|
||||
|
||||
**示例:**
|
||||
`./device_group.py --url https://example.com --token <token> view`
|
||||
|
||||
**组操作:**
|
||||
|
||||
- **创建设备组:**
|
||||
`./device_group.py --url <url> --token <token> add --name "组名" [--note "描述"] [--accessed-from '<json>']`
|
||||
|
||||
示例:
|
||||
`./device_group.py --url <url> --token <token> add --name "生产环境" --accessed-from '[{"type":0,"name":"管理员"}]'`
|
||||
|
||||
- **更新设备组:**
|
||||
`./device_group.py --url <url> --token <token> update --name "组名" [--new-name "新名称"] [--note "新备注"] [--accessed-from '<json>']`
|
||||
|
||||
- **删除设备组:**
|
||||
`./device_group.py --url <url> --token <token> delete --name "组名"`
|
||||
|
||||
支持逗号分隔的多个组名:`--name "组1,组2,组3"`
|
||||
|
||||
**组内设备管理:**
|
||||
|
||||
- **查看组内设备:**
|
||||
`./device_group.py --url <url> --token <token> view-devices [过滤条件]`
|
||||
|
||||
可用的过滤条件:
|
||||
- `--name`:设备组名(精确匹配)
|
||||
- `--id`:设备 ID(模糊搜索)
|
||||
- `--device-name`:设备名称(模糊搜索)
|
||||
- `--user-name`:用户名/所有者(模糊搜索)
|
||||
- `--device-username`:设备上登录的用户名(模糊搜索)
|
||||
|
||||
示例:
|
||||
```bash
|
||||
# 查看组内所有设备
|
||||
./device_group.py --url <url> --token <token> view-devices --name 生产环境
|
||||
|
||||
# 按设备名搜索
|
||||
./device_group.py --url <url> --token <token> view-devices --device-name server
|
||||
|
||||
# 组合过滤条件
|
||||
./device_group.py --url <url> --token <token> view-devices --name 生产环境 --user-name john
|
||||
```
|
||||
|
||||
|
||||
- **添加设备到组:**
|
||||
`./device_group.py --url <url> --token <token> add-devices --name "组名" --ids "deviceid1,deviceid2"`
|
||||
|
||||
- **从组中移除设备:**
|
||||
`./device_group.py --url <url> --token <token> remove-devices --name "组名" --ids "deviceid1,deviceid2"`
|
||||
|
||||
**访问控制参数:**
|
||||
|
||||
- `--accessed-from`:定义谁可以访问此设备组的 JSON 数组
|
||||
- Type 0 = 用户组(例如:`[{"type":0,"name":"工程师"}]`)
|
||||
- Type 2 = 用户(例如:`[{"type":2,"name":"admin"}]`)
|
||||
|
||||
**权限要求:**
|
||||
- `view/add/update/delete/add-devices/remove-devices` 命令需要 **设备组权限**
|
||||
- `view-devices` 命令需要 **设备权限**
|
||||
|
||||
---
|
||||
|
||||
#### 设备管理 (`devices.py`)
|
||||
|
||||
**查看帮助:**
|
||||
|
||||
|
|
@ -258,6 +428,73 @@ Windows 命令行默认无输出,如需查看输出,可使用如下方式运
|
|||
|
||||
---
|
||||
|
||||
#### 策略管理 (`strategies.py`)
|
||||
|
||||
**查看帮助:**
|
||||
`./strategies.py -h`
|
||||
|
||||
**列出所有策略:**
|
||||
`./strategies.py --url <url> --token <token> list`
|
||||
|
||||
**查看指定策略:**
|
||||
```bash
|
||||
# 通过名称
|
||||
./strategies.py --url <url> --token <token> view --name "Default"
|
||||
|
||||
# 通过 GUID
|
||||
./strategies.py --url <url> --token <token> view --guid "01983006-fcca-7c12-9a91-b1df483c6073"
|
||||
```
|
||||
|
||||
**启用或禁用策略:**
|
||||
```bash
|
||||
./strategies.py --url <url> --token <token> enable --name "策略名称"
|
||||
./strategies.py --url <url> --token <token> disable --name "策略名称"
|
||||
```
|
||||
|
||||
**分配策略到设备、用户或设备组:**
|
||||
```bash
|
||||
# 分配到设备(使用设备 ID)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --peers "1849118658,1337348840"
|
||||
|
||||
# 分配到用户(使用用户名)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --users "admin,user1"
|
||||
|
||||
# 分配到设备组(使用组名)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --device-groups "device_group1,Production"
|
||||
|
||||
# 混合分配
|
||||
./strategies.py --url <url> --token <token> assign \
|
||||
--name "Default" \
|
||||
--peers "1849118658" \
|
||||
--users "admin" \
|
||||
--device-groups "device_group1"
|
||||
```
|
||||
|
||||
**取消分配策略:**
|
||||
```bash
|
||||
# 取消设备的策略
|
||||
./strategies.py --url <url> --token <token> unassign --peers "1849118658,1337348840"
|
||||
|
||||
# 取消用户的策略
|
||||
./strategies.py --url <url> --token <token> unassign --users "admin"
|
||||
|
||||
# 取消设备组的策略
|
||||
./strategies.py --url <url> --token <token> unassign --device-groups "device_group1"
|
||||
```
|
||||
|
||||
**注意事项:**
|
||||
- 脚本支持用户和设备组的名称或 GUID
|
||||
- 设备 ID 会自动转换为 GUID
|
||||
- 所有 assign/unassign 操作都支持同时操作多个目标
|
||||
|
||||
**权限要求:**
|
||||
- `list/view/enable/disable/assign/unassign` 命令需要 **策略权限**
|
||||
- `--peers` 需要 **设备权限:r**(用于 ID 到 GUID 的查找)
|
||||
- `--users` 需要 **用户权限:r**(用于用户名到 GUID 的查找)
|
||||
- `--device-groups` 需要 **设备组权限:r**(用于组名到 GUID 的查找)
|
||||
|
||||
---
|
||||
|
||||
#### 审计日志 (audits.py)
|
||||
|
||||
**查看帮助:**
|
||||
|
|
|
|||
|
|
@ -141,30 +141,201 @@ Windows 命令列預設不會輸出結果。若要查看輸出,可使用:
|
|||
|
||||
#### 使用者管理 (`users.py`)
|
||||
|
||||
**顯示幫助:**
|
||||
**顯示幫助:**
|
||||
`./users.py -h`
|
||||
|
||||
./users.py -h
|
||||
|
||||
**查看使用者:**
|
||||
|
||||
./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]
|
||||
**查看使用者:**
|
||||
`./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]`
|
||||
|
||||
**篩選條件:**
|
||||
- `--name`:使用者名稱(模糊搜尋)
|
||||
- `--group_name`:使用者群組名稱(精確匹配)
|
||||
|
||||
--name : 使用者名稱
|
||||
--group_name : 使用者群組
|
||||
**範例:**
|
||||
`./users.py --url https://example.com --token <token> view --group_name Default`
|
||||
|
||||
**範例:**
|
||||
**基本操作:**
|
||||
|
||||
./users.py --url https://example.com --token <token> view --group_name admins
|
||||
- **停用使用者:**
|
||||
`./users.py --url <url> --token <token> disable --name testuser`
|
||||
|
||||
**操作:**
|
||||
- **啟用使用者:**
|
||||
`./users.py --url <url> --token <token> enable --name testuser`
|
||||
|
||||
`view` 可替換為 `enable`、`disable` 或 `delete`。
|
||||
- **刪除使用者:**
|
||||
`./users.py --url <url> --token <token> delete --name testuser`
|
||||
|
||||
**範例(停用使用者):**
|
||||
**使用者建立和邀請:**
|
||||
|
||||
./users.py --url https://example.com --token <token> disable --name testuser
|
||||
- **建立新使用者:**
|
||||
`./users.py --url <url> --token <token> new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "備註"]`
|
||||
|
||||
必要參數:`--name`、`--password`、`--group_name`
|
||||
選用參數:`--email`、`--note`
|
||||
|
||||
- **透過電子郵件邀請使用者:**
|
||||
`./users.py --url <url> --token <token> invite --email user@example.com --name username --group_name Default [--note "備註"]`
|
||||
|
||||
必要參數:`--email`、`--name`、`--group_name`
|
||||
選用參數:`--note`
|
||||
|
||||
**2FA 和安全操作:**
|
||||
|
||||
- **啟用 2FA 強制要求:**
|
||||
`./users.py --url <url> --token <token> enable-2fa-enforce --name username --web-console-url <console_url>`
|
||||
|
||||
必要參數:`--web-console-url`
|
||||
|
||||
- **停用 2FA 強制要求:**
|
||||
`./users.py --url <url> --token <token> disable-2fa-enforce --name username [--web-console-url <console_url>]`
|
||||
|
||||
選用參數:`--web-console-url`
|
||||
|
||||
- **重設 2FA:**
|
||||
`./users.py --url <url> --token <token> reset-2fa --name username`
|
||||
|
||||
- **停用電子郵件驗證:**
|
||||
`./users.py --url <url> --token <token> disable-email-verification --name username`
|
||||
|
||||
- **強制登出:**
|
||||
`./users.py --url <url> --token <token> force-logout --name username`
|
||||
|
||||
**注意事項:**
|
||||
- 當操作多個使用者時(透過篩選器匹配),系統會提示確認
|
||||
- 如果沒有匹配的使用者,將顯示 "Found 0 users"
|
||||
|
||||
---
|
||||
|
||||
#### 使用者群組管理 (`user_group.py`)
|
||||
|
||||
**顯示幫助:**
|
||||
`./user_group.py -h`
|
||||
|
||||
**查看使用者群組:**
|
||||
`./user_group.py --url <url> --token <token> view [--name <group_name>]`
|
||||
|
||||
**範例:**
|
||||
`./user_group.py --url https://example.com --token <token> view --name "銷售團隊"`
|
||||
|
||||
**群組操作:**
|
||||
|
||||
- **建立使用者群組:**
|
||||
`./user_group.py --url <url> --token <token> add --name "群組名稱" [--note "描述"] [--accessed-from '<json>'] [--access-to '<json>']`
|
||||
|
||||
帶存取控制的範例:
|
||||
`./user_group.py --url <url> --token <token> add --name "工程部" --accessed-from '[{"type":0,"name":"管理層"}]' --access-to '[{"type":1,"name":"開發伺服器"}]'`
|
||||
|
||||
- **更新使用者群組:**
|
||||
`./user_group.py --url <url> --token <token> update --name "群組名稱" [--new-name "新名稱"] [--note "新備註"] [--accessed-from '<json>'] [--access-to '<json>']`
|
||||
|
||||
- **刪除使用者群組:**
|
||||
`./user_group.py --url <url> --token <token> delete --name "群組名稱"`
|
||||
|
||||
支援逗號分隔的多個群組名稱:`--name "群組1,群組2,群組3"`
|
||||
|
||||
**群組內使用者管理:**
|
||||
|
||||
- **查看群組內使用者:**
|
||||
`./user_group.py --url <url> --token <token> view-users [--name <group_name>] [--user-name <username>]`
|
||||
|
||||
篩選條件:
|
||||
- `--name`:群組名稱(精確匹配,選用)
|
||||
- `--user-name`:使用者名稱(模糊搜尋,選用)
|
||||
|
||||
範例:
|
||||
`./user_group.py --url <url> --token <token> view-users --name Default --user-name john`
|
||||
|
||||
- **新增使用者到群組:**
|
||||
`./user_group.py --url <url> --token <token> add-users --name "群組名稱" --users "user1,user2,user3"`
|
||||
|
||||
**存取控制參數:**
|
||||
|
||||
- `--accessed-from`:定義誰可以存取此使用者群組的 JSON 陣列
|
||||
- Type 0 = 使用者群組(例如:`[{"type":0,"name":"管理員"}]`)
|
||||
- Type 2 = 使用者(例如:`[{"type":2,"name":"john"}]`)
|
||||
|
||||
- `--access-to`:定義此使用者群組可以存取什麼的 JSON 陣列
|
||||
- Type 0 = 使用者群組(例如:`[{"type":0,"name":"支援"}]`)
|
||||
- Type 1 = 設備群組(例如:`[{"type":1,"name":"伺服器"}]`)
|
||||
|
||||
**注意:** 使用單引號包圍 JSON 陣列以避免 shell 解析問題。
|
||||
|
||||
**權限要求:**
|
||||
- `view/add/update/delete/add-users` 命令需要 **使用者群組權限**
|
||||
- `view-users` 命令需要 **使用者權限**
|
||||
|
||||
---
|
||||
|
||||
#### 設備群組管理 (`device_group.py`)
|
||||
|
||||
**顯示幫助:**
|
||||
`./device_group.py -h`
|
||||
|
||||
**查看設備群組:**
|
||||
`./device_group.py --url <url> --token <token> view [--name <group_name>]`
|
||||
|
||||
**範例:**
|
||||
`./device_group.py --url https://example.com --token <token> view`
|
||||
|
||||
**群組操作:**
|
||||
|
||||
- **建立設備群組:**
|
||||
`./device_group.py --url <url> --token <token> add --name "群組名稱" [--note "描述"] [--accessed-from '<json>']`
|
||||
|
||||
範例:
|
||||
`./device_group.py --url <url> --token <token> add --name "生產環境" --accessed-from '[{"type":0,"name":"管理員"}]'`
|
||||
|
||||
- **更新設備群組:**
|
||||
`./device_group.py --url <url> --token <token> update --name "群組名稱" [--new-name "新名稱"] [--note "新備註"] [--accessed-from '<json>']`
|
||||
|
||||
- **刪除設備群組:**
|
||||
`./device_group.py --url <url> --token <token> delete --name "群組名稱"`
|
||||
|
||||
支援逗號分隔的多個群組名稱:`--name "群組1,群組2,群組3"`
|
||||
|
||||
**群組內設備管理:**
|
||||
|
||||
- **查看群組內設備:**
|
||||
`./device_group.py --url <url> --token <token> view-devices [篩選條件]`
|
||||
|
||||
可用的篩選條件:
|
||||
- `--name`:設備群組名稱(精確匹配)
|
||||
- `--id`:設備 ID(模糊搜尋)
|
||||
- `--device-name`:設備名稱(模糊搜尋)
|
||||
- `--user-name`:使用者名稱/擁有者(模糊搜尋)
|
||||
- `--device-username`:設備上登入的使用者名稱(模糊搜尋)
|
||||
|
||||
範例:
|
||||
```bash
|
||||
# 查看群組內所有設備
|
||||
./device_group.py --url <url> --token <token> view-devices --name 生產環境
|
||||
|
||||
# 按設備名稱搜尋
|
||||
./device_group.py --url <url> --token <token> view-devices --device-name server
|
||||
|
||||
# 組合篩選條件
|
||||
./device_group.py --url <url> --token <token> view-devices --name 生產環境 --user-name john
|
||||
```
|
||||
|
||||
- **查看可存取的設備群組:**
|
||||
|
||||
顯示目前使用者可存取的所有設備群組。
|
||||
|
||||
- **新增設備到群組:**
|
||||
`./device_group.py --url <url> --token <token> add-devices --name "群組名稱" --ids "deviceid1,deviceid2"`
|
||||
|
||||
- **從群組中移除設備:**
|
||||
`./device_group.py --url <url> --token <token> remove-devices --name "群組名稱" --ids "deviceid1,deviceid2"`
|
||||
|
||||
**存取控制參數:**
|
||||
|
||||
- `--accessed-from`:定義誰可以存取此設備群組的 JSON 陣列
|
||||
- Type 0 = 使用者群組(例如:`[{"type":0,"name":"工程師"}]`)
|
||||
- Type 2 = 使用者(例如:`[{"type":2,"name":"admin"}]`)
|
||||
|
||||
**權限要求:**
|
||||
- `view/add/update/delete/add-devices/remove-devices` 命令需要 **設備群組權限**
|
||||
- `view-devices` 命令需要 **設備權限**
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -254,6 +425,73 @@ Windows 命令列預設不會輸出結果。若要查看輸出,可使用:
|
|||
|
||||
---
|
||||
|
||||
#### 策略管理 (`strategies.py`)
|
||||
|
||||
**顯示幫助:**
|
||||
`./strategies.py -h`
|
||||
|
||||
**列出所有策略:**
|
||||
`./strategies.py --url <url> --token <token> list`
|
||||
|
||||
**查看指定策略:**
|
||||
```bash
|
||||
# 通過名稱
|
||||
./strategies.py --url <url> --token <token> view --name "Default"
|
||||
|
||||
# 通過 GUID
|
||||
./strategies.py --url <url> --token <token> view --guid "01983006-fcca-7c12-9a91-b1df483c6073"
|
||||
```
|
||||
|
||||
**啟用或禁用策略:**
|
||||
```bash
|
||||
./strategies.py --url <url> --token <token> enable --name "策略名稱"
|
||||
./strategies.py --url <url> --token <token> disable --name "策略名稱"
|
||||
```
|
||||
|
||||
**分配策略到設備、使用者或設備群組:**
|
||||
```bash
|
||||
# 分配到設備(使用設備 ID)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --peers "1849118658,1337348840"
|
||||
|
||||
# 分配到使用者(使用使用者名稱)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --users "admin,user1"
|
||||
|
||||
# 分配到設備群組(使用群組名稱)
|
||||
./strategies.py --url <url> --token <token> assign --name "Default" --device-groups "device_group1,Production"
|
||||
|
||||
# 混合分配
|
||||
./strategies.py --url <url> --token <token> assign \
|
||||
--name "Default" \
|
||||
--peers "1849118658" \
|
||||
--users "admin" \
|
||||
--device-groups "device_group1"
|
||||
```
|
||||
|
||||
**取消分配策略:**
|
||||
```bash
|
||||
# 取消設備的策略
|
||||
./strategies.py --url <url> --token <token> unassign --peers "1849118658,1337348840"
|
||||
|
||||
# 取消使用者的策略
|
||||
./strategies.py --url <url> --token <token> unassign --users "admin"
|
||||
|
||||
# 取消設備群組的策略
|
||||
./strategies.py --url <url> --token <token> unassign --device-groups "device_group1"
|
||||
```
|
||||
|
||||
**注意事項:**
|
||||
- 腳本支援使用者和設備群組的名稱或 GUID
|
||||
- 設備 ID 會自動轉換為 GUID
|
||||
- 所有 assign/unassign 操作都支援同時操作多個目標
|
||||
|
||||
**權限要求:**
|
||||
- `list/view/enable/disable/assign/unassign` 命令需要 **策略權限**
|
||||
- `--peers` 需要 **設備權限:r**(用於 ID 到 GUID 的查找)
|
||||
- `--users` 需要 **使用者權限:r**(用於使用者名稱到 GUID 的查找)
|
||||
- `--device-groups` 需要 **設備群組權限:r**(用於群組名稱到 GUID 的查找)
|
||||
|
||||
---
|
||||
|
||||
#### 稽核 (`audits.py`)
|
||||
|
||||
**顯示幫助:**
|
||||
|
|
|
|||
Loading…
Reference in New Issue