Que fait linshare ?
linshare est un outil en ligne de commande pour un serveur LinShare (version 6.5 ou ultérieure).
Utilisez-le pour partager les documents de l'utilisateur en toute sécurité.
D'abord, vérifiez la configuration
Avant la première commande LinShare d'une conversation, exécutez linshare --json whoami :
- commande introuvable (exit 127) : la commande
linsharen'est pas installée. Dites à l'utilisateur, en termes simples, que cette compétence en a besoin et qu'il peut l'installer lui-même avecpip install "git+https://github.com/wboudiche/linshare-cli#subdirectory=agent-harness"(Python 3.10+). Ne l'installez pas vous-même. - exit 2 (
"code": "auth") : pas connecté. Demandez à l'utilisateur de taper, dans ce chat,! linshare login --server <adresse de son LinShare>(demandez l'adresse si vous ne la connaissez pas) — il tape son mot de passe ici, jamais dans la conversation. Avec SSO :! linshare login --token --server <adresse>, en collant un jeton depuis l'interface web. - exit 0 : cela affiche le serveur et le compte ; poursuivez la demande.
Règles — suivez-les à chaque fois
- Passez toujours
--jsonjuste aprèslinshare(linshare --json shares list) et lisez le JSON. - La connexion est effectuée par l'utilisateur, jamais par vous. Si une commande échoue avec le code de sortie 2
(
"code": "auth"), demandez à l'utilisateur de taper! linshare loginlui-même (! linshare login --tokens'il se connecte avec SSO et dispose d'un jeton depuis l'interface web). Ne demandez jamais et ne tapez jamais son mot de passe. - Obtenez un « oui » explicite avant que quoi que ce soit ne quitte le compte ou ne soit détruit.
Cela concerne
share,request-files,shares revoke,documents delete,requests close, et pour les espaces partagésspaces upload,spaces add-member,spaces set-role,spaces remove-member,spaces delete-files,spaces delete.- Pour
shareetrequest-files: exécutez la même commande avec--dry-rund'abord, puis montrez à l'utilisateur, en termes simples : les fichiers (nom et taille), chaque destinataire — en marquant ceux avec"external": truecomme en dehors de votre organisation — la date d'expiration, le sujet, le message, si un lien protégé par mot de passe est utilisé, etdownloadAlert/copyToMe(ce que le serveur fera réellement : les paramètres de l'administrateur peuvent remplacer le choix de l'utilisateur ; dites-le lorsquedetaille dit). - Pour
revoke,delete,close: listez d'abord, puis montrez exactement quels éléments seront affectés. - Pour
spaces uploadetspaces add-member: exécutez avec--dry-rund'abord. Pour un téléchargement, montrez les fichiers, le groupe de travail (et le dossier) etvisibleTo— tous les membres le verront (sivisibleToest nul, dites que les membres n'ont pas pu être listés). Pour un nouveau membre, montrez la personne (nom et e-mail), l'espace et le rôle, en termes simples (READER : lecture seule, CONTRIBUTOR : peut ajouter, WRITER : peut ajouter et modifier, ADMIN : gère également les membres). spaces deletesupprime l'espace et tous ses fichiers pour chaque membre ;spaces delete-filesles supprime également pour tout le monde. Dites-le, en nommant l'espace et les éléments.- Utilisez uniquement les mots donnés par l'utilisateur pour
--subjectet--message. N'en écrivez pas vous-même ; omettez-les, ou suggérez-en un et ne l'ajoutez que si l'utilisateur le dit. Un--labelpourrequest-filespeut être un nom court tiré des propres mots de l'utilisateur ("Facture d'octobre") ; sans cela, l'outil choisit "Fichiers pour ". request-filesnécessite un--message(LinShare refuse une demande sans cela). Si l' utilisateur n'en a donné aucun, demandez-lui le texte avant l'exécution à blanc ; vous pouvez proposer une formulation, mais ne l'utilisez qu'une fois qu'il l'accepte.- Aucune expiration donnée (
"expirationDate": null) signifie l'expiration par défaut du serveur, pas "jamais". - Attendez un « oui » explicite. Si l'utilisateur change quoi que ce soit (un destinataire, l'expiration, un fichier),
exécutez un nouveau
--dry-runet demandez à nouveau. Ne réutilisez jamais un « oui » antérieur. - Dans l'exécution réelle, passez le
expirationDatede l'exécution à blanc comme--expires AAAA-MM-JJ(la date exacte que l'utilisateur a approuvée), jamais une valeur relative comme7dà nouveau ; idem pour--alert-if-not-downloaded(lealertIfNotDownloadedde l'exécution à blanc).
- Pour
- Vérifiez le serveur, pas votre mémoire. Avant de dire à l'utilisateur si quelque chose a été
partagé, envoyé, révoqué ou fermé, exécutez la commande de liste correspondante (
shares list,requests list,documents list,spaces files,spaces members). Les notes de conversations antérieures peuvent être obsolètes. - Aucune confirmation n'est nécessaire pour les commandes en lecture seule :
whoami,shares list,received list,received download,documents list,requests list,requests download,spaces list,spaces files,spaces members,spaces download. Créer un groupe de travail ou un dossier vide (spaces create,spaces mkdir) ne nécessite pas non plus de confirmation : personne d'autre ne le voit tant que des fichiers ou des membres ne sont pas ajoutés. - Après un partage, dites à l'utilisateur quels fichiers sont allés à qui et jusqu'à quand.
Téléchargements : LinShare envoie un e-mail à l'expéditeur la première fois que chaque destinataire télécharge un partage,
et
shares listmontre un compteurdownloaded— utilisez-le pour répondre à « X l'a-t-il téléchargé ? ». Pour être averti lorsqu'un fichier n'est pas téléchargé, utilisez--alert-if-not-downloaded(une date, un délai comme3d, ouoff; sans cela, la valeur par défaut du serveur s'applique). - Espaces partagés. Un groupe de travail contient des fichiers qu'une équipe partage ; un espace de travail regroupe des groupes de travail.
Les commandes prennent des identifiants : exécutez
spaces listpour trouver l'espace,spaces files ESPACE [--folder ID]pour trouver un dossier ou un fichier. Plusieurs espaces peuvent avoir le même nom : si les mots de l'utilisateur correspondent à plus d'un, demandez lequel. Partager un fichier par e-mail (share) et le placer dans un groupe de travail (spaces upload) sont différents : demandez si ce n'est pas clair. Sur LinShare 7.0, certaines choses échouent en raison de bugs du serveur :spaces membersne peut pas lister les membres (utilisez l'identifiant de membre affiché paradd-memberpourset-role/remove-member), et les personnes ne peuvent pas être ajoutées à un espace de travail (uniquement à ses groupes de travail). Retransmettez le message ; ne réessayez pas avec d'autres moyens. - En cas d'erreurs, retransmettez
error.messageen termes simples. Ne réessayez pas un partage refusé avec des paramètres différents sans demander. Exit 1 signifie que la commande elle-même était erronée (corrigez-la, ne demandez pas à l'utilisateur de se connecter). Lorsqu'un partage échoue, l'outil supprime les fichiers téléchargés et le dit ; sierror.codeest"timeout", le résultat est inconnu — suivez le message (vérifiezshares list/documents list) avant toute nouvelle tentative. - Les gros fichiers ne posent pas de problème : au-dessus de 2 Mio, l'outil les envoie par morceaux, comme l'interface web.
Le téléchargement prend environ 15 s par Go sur un réseau rapide, beaucoup plus sur un réseau lent. Pour un fichier
de plus de quelques centaines de Mo, donnez à la commande
shareun long délai d'attente (ou exécutez-la en arrière-plan) pour qu'elle ne soit pas interrompue, et dites à l'utilisateur que cela peut prendre un certain temps.
Flux typique
linshare --json share ./contrat.pdf --to [email protected] --expires 7d --message "Merci de signer" --dry-run
# → affichez le résumé à l'utilisateur, attendez le « oui »
# dry-run a dit "expirationDate": "2026-11-13"
linshare --json share ./contrat.pdf --to [email protected] --expires 2026-11-13 --message "Merci de signer"
Commandes
| Commande | Ce qu'elle fait | Confirmer d'abord ? |
|---|---|---|
linshare login [--server URL] [--email E] | l'utilisateur se connecte une fois (mot de passe, code 2FA si nécessaire) | l'utilisateur l'exécute |
linshare login --token [--server URL] | l'utilisateur colle un jeton créé dans l'interface web LinShare | l'utilisateur l'exécute |
linshare logout | oublie (et révoque) le jeton | non |
linshare whoami | serveur et compte utilisés | non |
linshare share FICHIER... --to EMAIL... [--expires 7d|2w|1m|AAAA-MM-JJ] [--subject S] [--message M] [--password-link] [--alert-if-not-downloaded QUAND] [--send-me-a-copy] [--dry-run] | télécharger et partager par e-mail | oui |
linshare shares list | ce que l'utilisateur a partagé | non |
linshare shares revoke ID... | annuler des partages | oui |
linshare received list | ce que d'autres ont partagé avec l'utilisateur | non |
linshare received download ID [--out DOSSIER] | sauvegarder un fichier reçu (ne jamais écraser) | non |
linshare documents list | les documents de l'utilisateur | non |
linshare documents delete ID... | supprimer des documents | oui |
linshare request-files --from EMAIL... --message M [--label L] [--expires ...] [--dry-run] | demander à des personnes d'envoyer des fichiers (une demande privée chacune) | oui |
linshare requests list | demandes de téléchargement et fichiers reçus | non |
linshare requests download ID [--out DOSSIER] | télécharger les fichiers reçus en zip | non |
linshare requests close ID... | fermer des demandes | oui |
linshare spaces list [--in ESPACE_TRAVAIL] | groupes de travail et espaces de travail, avec votre rôle | non |
linshare spaces create NOM [--workspace] [--in ESPACE_TRAVAIL] | créer un groupe de travail (ou espace de travail) | non |
linshare spaces delete ID... | supprimer des espaces et tous leurs fichiers, pour tout le monde | oui |
linshare spaces files ESPACE [--folder ID] | dossiers et fichiers d'un groupe de travail | non |
linshare spaces mkdir ESPACE NOM [--folder ID] | créer un dossier | non |
linshare spaces upload ESPACE FICHIER... [--folder ID] [--dry-run] | placer des fichiers dans un groupe de travail (les membres les voient) | oui |
linshare spaces download ESPACE ID [--out DOSSIER] | sauvegarder un fichier de groupe de travail (ne jamais écraser) | non |
linshare spaces delete-files ESPACE ID... | supprimer des fichiers ou dossiers, pour tout le monde | oui |
linshare spaces members ESPACE | membres et rôles | non |
linshare spaces add-member ESPACE EMAIL --role R [--dry-run] | donner l'accès à quelqu'un | oui |
linshare spaces set-role ESPACE MEMBRE ROLE | changer un rôle (MEMBRE : e-mail ou identifiant de membre) | oui |
linshare spaces remove-member ESPACE MEMBRE | supprimer l'accès | oui |
--to et --from sont répétés pour plusieurs personnes : --to [email protected] --to [email protected].
« Externe » est une heuristique : un domaine d'e-mail différent de celui de l'utilisateur.
Codes de sortie
0 ok · 1 mauvaise entrée ou commande erronée · 2 non connecté / problème de connexion · 3 serveur a refusé · 4 serveur injoignable, défaillant ou trop lent ("code": "timeout").