Table des matières

pastebinit

Introduction

Ce logiciel, très prisé pour l'entraide, permet de partager via internet le résultat de toutes les commandes nécessaires afin d'obtenir une explication ou d'en offrir une…

Installation

Pour mettre en application ce tuto, la version 1.1-1 de pastebinit est nécessaire.

L'installation se fait tout simplement en tapant :

apt-get update && apt-get install pastebinit

Travaux pratiques

TP-01 Lister le montage des disques - commande fdisk -l

Normalement dans une entraide, sur le forum ou sur le chan, vous êtes en user… pour ne pas passer d'un terminal user à un terminal root pour réaliser une commande root :

Nous allons utiliser l'option -c de su (voir SU Connection momentanée)

 su -c 'fdisk -l | pastebinit -

' Explication des options :

  1. utilisation du caractère pipe (|) afin de renvoyer la commande fdisk vers une seconde commande sans intermédiaire ni détail, (voir les METACARACTERES)
  2. utilisation de l'option tiret (-) à la fin de la commande pastebinit pour l'initialiser (voir le man pastebinit)

Nous obtenons, après avoir taper le mot de passe root, le résultat:

 su -c 'fdisk -l | pastebinit -'
 Mot de passe : 

Après la validation du mot de passe, nous obtenons :

 http:pastebin.com/f4bb5834c

Cette url (ici pour l'exemple) : http:pastebin.com/f4bb5834c sera disponible selon l'option choisi :

 un jour - un mois - toujours
ATTENTION ! Cette url peut être consultée par quiconque la compose dans son navigateur… Attention donc à ne pas transmettre des passwd en clair avec !
ATTENTION ! bis Toute personne visitant les log du site ou se trouvant à “l'écoute…” sur le réseau…“ peut également les intercepter !

L'url transcrite dans un navigateur, le pastebin obtenu est en 2 parties,

  1. celle du haut pour le texte,
  2. celle du bas pour d'éventuelles modifications/corrections…

Éventuellement, après quelques modifications réalisées, un clic sur send vous donnera une nouvelle adresse url à communiquer… le paste modifié !

TP-02 (Donner la proposition d'une mise à jour sur un pinning...)

Débutant, voir :

Le fichier pinning modifié et après avoir mis à jour le fichier /etc/apt/sources.list avec la commande aptitude update), nous envoyons :

 su -c 'aptitude -s safe-upgrade | pastebinit -' (option -s pour simulation...)

Et nous trouverons à la sortie l'url du paste résultant que nous pourrons communiquer par mail, forum ou autre salon irc.

TP-03 Option -i (Donner la composition d'un fichier)

Pour donner en paste le fichier fstab par exemple :

 pastebinit -i /etc/fstab

Vous donnera l'url du paste de ce fichier.

Toujours du compère captnfab sur le chan DF.

Que toutes les descendances linuxiennes lui offrent, le temps venu, une retraite calme et enjouée, comme son gentil caractère…

Quelques scripts

Nos émminents membres nous proposent des scripts pour un lancement de pastebin.

script façon firebird :

Source sur le forum là :

Il existe des dock ou autre launchers qui intègrent des moyens via du drag'n'drop mais il faut se taper le dock en question… Et puis ça fait utiliser la souris…
J'ai donc tapoté un script pour ne plus m'embêter. ;-)

Il faut que les paquets libnotify-bin et pastebinit soient installés.
#!/bin/bash
URL=$(clipit -p | pastebinit -b http://pastebin.com)
echo $URL | clipit
notify-send $URL
echo $URL

Ensuite j'utilise clipit comme presse-papier mais vous pouvez en utilisez un autre du moment qu'il supporte les actions.

Donc ensuite dans clipit je créer une action Pastit :

 /pathtomonscript/pastit.sh

Ne pas oublier de cocher la synchronisation des presse-papier dans clipit ou assimilé.

L'utilisation full clavier donne ainsi :

COMMANDES ACTION
Ctrl+Inser copier le texte
Ctrl+Alt+A raccourcis de clipit pour le menu d'action
Pastit On est averti par une notification quand le paste est bien terminé
Maj+Inser collage du lien pastebin (oui il est déjà prêt à coller)

On pourrait probablement faire un raccourci encore plus simple pour lancer l'action…

script façon cthuluh :

Source sur le forum là :

#!/bin/sh
 
usage () {
    printf '%s\n' "Usage: $0 [ -h | -n filename ]" >&2
    exit "${1:-0}"
}
 
pastebin_dir=$HOME/public_html/paste
file=
umask 0022
 
while getopts ":n:h" opt; do
    case $opt in
        'n')
            file=$OPTARG
            ;;
        'h')
            usage
            ;;
        '?')
            usage 1
            ;;
        ':')
            printf '%s\n' "Argument for option '$OPTARG' missing." >&2
            usage 2
            ;;
        *)
            usage 1
            ;;
    esac
done
 
shift "$(($OPTIND - 1))"
 
if [ "$#" -ne 0 ]; then
    usage 1
fi
 
if [ ! -d "$pastebin_dir" ]; then
    mkdir -p "$pastebin_dir"
fi
 
if [ ! -f "$pastebin_dir/index.html" ]; then
    cat <<'EOF' > "$pastebin_dir/index.html"
<?xml version="1.0" encoding="UTF-8"?>
 
<!DOCTYPE html
          PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>
      Verbotten
    </title>
  </head>
  <body>
    <h1>
      GTFO
    </h1>
  </body>
</html>
EOF
fi
 
if [ -n "$file" ]; then
    file=$pastebin_dir/$file
    touch "$file"
else
    file=$(mktemp "$pastebin_dir/XXXXXXXX.txt")
fi
 
chmod a+r "$file"
 
cat > "$file"
 
file=${file##*/}
 
printf '%s\n' "http://$(hostname -d)/~$USER/paste/$file"

Script façon Thuban

Source sur le forum, là :

Script façon SwitchT

Envoyer sa configuration matérielle sur pastehtml.com: Entrer cette fonction dans le fichier .bashrc, ou directement dans une console.

lshw(){ curl -s -S --data-urlencode "txt=$(su -c 'lshw -html -sanitize')" "http://pastehtml.com/upload/create?input_type=html&result=address";echo;}

Puis utiliser:

lshw

voir : lshw; j'ai ajouté l'option -sanitize qui masque les informations sensibles (ip, numéro de série…); puis utilisé su au lieu de sudo. Nécessite les paquets curl et lshw.

Remerciements

Merci à firebird d'avoir initié ces scripts ainsi qu'à cthuluh et Thuban de faire profiter des leurs les amis ! :-D

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !