Project

General

Profile

Actions

attenzione, questa pagina è ancora gestita in un file salvato altrove, ed eventuali modifiche verranno perse al prossimo aggiornamento

Bepasty

Bepasty è un pastebin binario, ovvero un servizio che permette l'upload di file di vario formato, ed è quindi uno strumento ideale per la condivisione veloce di file effimeri, specialmente tra piccoli gruppi di lavoro.

È scritto in python, e comunica con un server web tramite wsgi; per questa guida useremo apache e il relativo mod_wsgi.

Installazione

Bepasty

Il pacchetto bepasty è in debian a partire da bullseye e buster-backports; lo si può installare con il comando:

# apt install [-t buster-backports] bepasty

È necessario quindi configurare bepasty creando il file /etc/bepasty.conf con i seguenti contenuti:

SITENAME="paste.example.org"
STORAGE="filesystem"
STORAGE_FILESYSTEM_DIRECTORY="/srv/bepasty/files/"

SECRET_KEY = '<a long string of random characters>'
DEFAULT_PERMISSIONS='admin,list,create,read,delete'

In questo modo tutti gli utenti possono compiere qualunque azione, ed è consigliato solo nel caso in cui il sito stesso sia protetto da HTTPAuth; in alternativa si possono usare permessi come:

DEFAULT_PERMISSIONS='read'

per permettere agli utenti non registrati la sola lettura di file esistenti, e limitare le altre operazioni ad utenti fidati; bepasty non supporta la creazione di utenti, ma associa un elenco di permessi a delle password, ad esempio:

PERMISSIONS = {
    # password per amministratori
    'correct horse battery staple': 'admin,list,create,read,delete',
    # password per utenti semplici
    'chess observing leverage diocese': 'create,read',
 }

Questo file dovrà essere letto dall'utente di apache (e contiene secrets, quindi è opportuno non sia letto dagli altri):

# chown root:www-data /etc/bepasty.conf
# chmod 640 /etc/bepasty.conf

Similmente è necessario creare le directory per i file:

# mkdir -p /srv/bepasty/files
# chown www-data:www-data /srv/bepasty/files
# chmod 750 /srv/bepasty/files

Apache

Per far caricare a bepasty il file di configurazione, è necessario passargli la variabile d'ambiente BEPASTY_CONFIG=/etc/bepasty.conf.

Il modo più comodo per farlo con apache è creare un file .wsgi, ad esempio in /var/www/bepasty/bepasty.wsgi coi seguenti contenuti:

import os

os.environ['BEPASTY_CONFIG'] = '/etc/bepasty.conf'

from bepasty.app import create_app
application = create_app()

Quindi si può configurare apache per servire il dominio creando il file /etc/apache2/sites-available/bepasty.conf:

<VirtualHost *:80>
        DocumentRoot /var/www/bepasty
        ServerName paste.example.org
        ErrorLog /var/log/apache2/paste.example.org-error.log
        CustomLog /var/log/apache2/paste.example.org-access.log combined

        RewriteEngine On
        RewriteCond %{HTTPS} !=on
        RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]

</VirtualHost>

<VirtualHost *:443>
        DocumentRoot /var/www/bepasty
        ServerName paste.example.org
        ErrorLog /var/log/apache2/paste.example.org-error.log
        CustomLog /var/log/apache2/paste.example.org-access.log combined

        WSGIDaemonProcess bepasty user=bepasty group=bepasty threads=5
        WSGIScriptAlias / /var/www/bepasty/bepasty.wsgi

        include "<your_ssl_configuration.inc>" 
</VirtualHost>

e come di consueto abilitando il sito e facendo ricaricare la configurazione:

# a2ensite bepasty
# service apache2 reload

Gestione e uso

L'uso di bepasty è molto simile a quello di qualunque pastebin, con un interfaccia web su cui incollare testo o selezionare file locali da caricare.

In questa sezione vediamo alcune caratteristiche peculiari di cui tenere conto.

Password e permessi

Anziché usare un'accoppiata nome utente / password, bepasty usa una password associata ad una combinazione di permessi.

Le password sono impostate nel file di configurazione del server, come visto in fase di installazione, e i permessi associati sono:

<dl>
<dt>create</dt>
<dd><p>permette il caricamento di nuovi file;</p></dd>
<dt>read</dt>
<dd><p>permette la visualizzazione e download di file già esistenti;</p></dd>
<dt>delete</dt>
<dd><p>permette la cancellazione di file;</p></dd>
<dt>list</dt>
<dd><p>permette di elencare tutti i file presenti sul server;</p></dd>
<dt>admin</dt>
<dd><p>permette di bloccare e sbloccare i file, e di agire su file bloccati.</p></dd>
</dl>

Cancellazione dei file

Quando si carica un file, è possibile specificare nell'interfaccia la durata oltre la quale dovrà essere cancellato. Di default (non configurabile) è un mese.

Alla scadenza, il file non viene più mostrato, ma non viene cancellato dal server fino a che non si cerca di accederci o non viene aperta la pagina con l'elenco di tutti i file.

Updated by Elena Grandi over 1 year ago · 3 revisions