mirror of
https://github.com/Tygs/0bin.git
synced 2023-08-10 21:13:00 +03:00
97 lines
3.6 KiB
Plaintext
97 lines
3.6 KiB
Plaintext
|
=======================================
|
||
|
Outil en ligne de commande zerobinpaste
|
||
|
=======================================
|
||
|
|
||
|
zerobinpaste est un simple outil CLI (similaire à pastebinit ou wgetpaste) à utiliser
|
||
|
avec des fichiers ou des redirection shell dans le terminal ou des scripts simples.
|
||
|
|
||
|
Exemple de cas d'utilisation::
|
||
|
|
||
|
% zerobinpaste README.rst
|
||
|
http://some.0bin.site/paste/0cc3d8a8...
|
||
|
|
||
|
% grep error /var/log/syslog | zerobinpaste
|
||
|
http://some.0bin.site/paste/81fd1324...
|
||
|
|
||
|
% zerobinpaste docs/en/*.rst
|
||
|
easy_install.rst http://some.0bin.site/paste/9adc576a...
|
||
|
apache_install.rst http://some.0bin.site/paste/01408cbd...
|
||
|
options.rst http://some.0bin.site/paste/921b2768...
|
||
|
...
|
||
|
|
||
|
% ps axlf | zerobinpaste | mail -s "Process tree on $(date)" root
|
||
|
|
||
|
Les liens produits peuvent être ensuite copier-coller sur un channel IRC
|
||
|
ou autre.
|
||
|
|
||
|
L'outil produit le chiffrement lui-même sur la machine et la clé (après le hash)
|
||
|
n'est jamais envoyée au serveur ou nul par ailleurs excepté la sortie standard
|
||
|
de l'outil (ex: le terminal).
|
||
|
|
||
|
L'outil doit être buildé avec `node.js`_ séparément (voir plus bas).
|
||
|
|
||
|
|
||
|
Usage
|
||
|
=====
|
||
|
|
||
|
Au minimum il faut préciser le site pastebin (l'url principal d'où on posterait
|
||
|
dans le navigateur) doit être spécifié à l'outil via l'option -u (--url) (on peut
|
||
|
le simplifier avec un alias shell - ex: ``alias zp='zerobinpaste -u http://some.0bin.site``)
|
||
|
ou dans le fichier de configuration "~/.zerobinpasterc" (format json).
|
||
|
|
||
|
| Les arguments positionels sont interprétés comme des fichiers à uploader et chiffrer.
|
||
|
| Si aucun argument n'est passé, le script tentera de lire stdin.
|
||
|
|
||
|
Le fichier de configuration le plus simple pourrait ressembler à celà:
|
||
|
|
||
|
{"url": "http://some.0bin.site"}
|
||
|
|
||
|
Toute option (dans sa forme longue, ex: "url pour --url) utilisable en ligne de commande
|
||
|
peut être spécifié ici.
|
||
|
|
||
|
Lancez l'outil avec -h ou --help pour voir la liste des paramètres supportés.
|
||
|
|
||
|
|
||
|
Build / Installation
|
||
|
====================
|
||
|
|
||
|
En bref:
|
||
|
|
||
|
0bin% cd tools
|
||
|
0bin/tools% make
|
||
|
...
|
||
|
0bin/tools% cp zerobinpaste ~/bin # install to PATH
|
||
|
|
||
|
La commande "npm" (packagé and installé avec node.js) est requise pour télécharger
|
||
|
les dépendances indispensables à la production de l'éxécutable.
|
||
|
|
||
|
Utilisez "make" dans le dossier "tools" pour produire une version non-minifié" de "zerobinpaste".
|
||
|
|
||
|
La commande ``make ugly`` peut être utilisé à la place de ``make`` pour créer une version "minified"
|
||
|
(requière l'installation de uglifyjs_, script produit environ 25% plus petit en taille).
|
||
|
|
||
|
Le script "zerobinpaste" ainsi produit seulement besoin de node.js (et la commande "node") pour
|
||
|
s'éxcuter et peut être placé n'importe où dans le PATH système (ex : "~/bin", "/usr/local/bin")
|
||
|
afin d'être exécuté en tapant simplement "zerobinpaste".
|
||
|
|
||
|
|
||
|
Pourquoi node.js et pas python
|
||
|
==============================
|
||
|
|
||
|
Malheureusement, il est assez difficile et peu fiable de répliquer un protocole
|
||
|
chiffrement non trivial et non documenté tel que celui de certaines méthodes
|
||
|
de SJCL_, et la moindre erreur garantie de produire une paste illisible.
|
||
|
|
||
|
L'implémentation actuelle utilise le même code Javascript (via le moteur V8 de node.js)
|
||
|
que le navigateur, du coup il est simple et robuste.
|
||
|
|
||
|
Il est prévu de supporter plus tard un schéma de chiffrement plus configurable, moins
|
||
|
complexe et plus courant, permettant à des clients non-javascript de fonctioner également.
|
||
|
|
||
|
Voir le `pull request concerné`_ pour plus de détails.
|
||
|
|
||
|
.. _node.js: http://nodejs.org/
|
||
|
.. _uglifyjs: https://github.com/mishoo/UglifyJS
|
||
|
.. _SJCL: http://crypto.stanford.edu/sjcl/
|
||
|
.. _pull request concerné: https://github.com/sametmax/0bin/pull/39
|