Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "jeremie2/Prove14"
Differenze tra le versioni 15 e 26 (in 11 versioni)
Versione 15 del 13/10/2020 18.30.38
Dimensione: 7963
Autore: jeremie2
Commento:
Versione 26 del 29/09/2024 20.22.32
Dimensione: 5291
Autore: jeremie2
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
#format wiki
#language it
## page was renamed from GruppoDocumentazione/NuovoRilascio/ScriptHashSHA256Sum
#page created by wilecoyote
<<Indice(depth=2)>>
Linea 4: Linea 5:
<<Indice>>
<<Informazioni(forum=http://forum.ubuntu-it.org/viewtopic.php?t=641900; rilasci="20.04 18.04 16.04")>>
<<Informazioni(forum=http://forum.ubuntu-it.org/viewtopic.php?t=641900; rilasci="22.04 20.04 24.04 24.10")>>
Linea 9: Linea 9:
Quando si effettua il download di Ubuntu o qualsiasi sua [[https://www.ubuntu-it.org/derivate|variante]] da internet, c'è la possibilità che il file non venga scaricato nel modo corretto e presenti degli errori. Questi errori possono compromettere la stabilità e/o il funzionamento di Ubuntu. Nelle pagine di download di Ubuntu, oltre alle immagini '''iso''' del sistema operativo, è regolarmente presente il file '''SHA256SUM''' con l'elenco delle impronte SHA256Sum di ciascun file `iso`.
Linea 11: Linea 11:
Il programma '''sha256sum''' è progettato per verificare l'integrità e l'autenticità dei dati usando l'hash crittografica a 256 bit [[http://it.wikipedia.org/wiki/Secure_Hash_Algorithm|SHA256Sum]]. In questa pagina viene mostrato l'utilizzo di uno '''script''' in grado di rilevare dalle pagine di download tutte le impronte SHA256Sum di Ubuntu e derivate a seconda del numero di versione (22.04, 24.04, ecc..).<<BR>>
Per ogni versione verrà creato un file con l'elenco delle hash per le `iso` di Ubuntu e derivate.
Linea 13: Linea 14:
= Come funziona? = = Script =
Linea 15: Linea 16:
Dalla pagina di [[https://releases.ubuntu.com/20.04/|download]] prendiamo ad esempio i file :
 * '''ubuntu-20.04.1-desktop-amd64.iso''': immagine `iso` della versione desktop di Ubuntu;
 * '''SHA256SUM''': file con l'elenco delle impronte SHA256Sum delle immagini `iso`.
Il seguente script richiede l'[[AmministrazioneSistema/InstallareProgrammi|installazione]] del pacchetto [[apt://aiohttp-wsgi-serve|aiohttp-wsgi-serve]]. In caso di problemi è possibile utilizzare uno script [[#alternativo|alternativo]].
Linea 19: Linea 18:
Il [[https://releases.ubuntu.com/20.04/SHA256SUMS|contenuto]] del file `SHA256SUM` mostra che l'__impronta__ relativa al file `iso` della versione desktop di '''Ubuntu 20.04.1''' è questo lungo codice alfanumerico:
 {{{
b45165ed3cd437b9ffad02a2aad22a4ddc69162470e2622982889ce5826f6e3d
}}}
In questa pagina vengono mostrati diversi metodi per calcolare l'impronta dell'immagine `iso` e quindi confrontarla con quella del file `SHA256SUM`;
 * __se le due impronte coincidono__: procedere pure alla scrittura dell'immagine su supporto di memorizzazione;
 * __se le due impronte '''NON''' coincidono__: scaricare nuovamente l'immagine `iso`.
{{{
import aiohttp
import asyncio
Linea 27: Linea 22:
= Elenco delle impronte = from sys import argv
script, ubu_version = argv
Linea 29: Linea 25:
Come scritto in precedenza, le pagine di download di Ubuntu e delle sue varianti contengono ciascuna il file `SHA256SUM` che riporta la lista delle impronte '''sha256sum''' di ognuno dei file `iso` presenti nella pagina stessa. ubuntu_flavours = ("kubuntu", "ubuntu-mate", "xubuntu", "lubuntu", "ubuntu-unity", "ubuntu-budgie", "ubuntustudio", "ubuntukylin", "ubuntucinnamon")
Linea 31: Linea 27:
Per il controllo dell'impronta è quindi necessario avere a portata di mano il file `SHA256SUM`.<<BR>>
Tuttavia per comodità, ricordiamo che:
 * A [[Installazione/SHA256Sum/Hash|questo indirizzo]] è presente un elenco completo delle hash per tutte le versioni di Ubuntu;
 * A [[Installazione/SHA256Sum/Hash/Script|questo indirizzo]] viene mostrato l'utilizzo di uno script per ricavare le hash SHA256Sum di Ubuntu e varianti in base alla versione (18.04, 20.04.. ecc..).
Linea 36: Linea 28:
= Verifica da terminale (universale) = def create_versions_list():
    versions = []
    versions.append("UBUNTU")
Linea 38: Linea 32:
{{{#!wiki note
Il seguente metodo consente di verificare l'impronta '''sha256sum''' sia su '''Ubuntu''' che su qualsiasi altra sua [[https://www.ubuntu-it.org/derivate|variante]]. Per metodi tramite interfacce grafiche, vedere il [[#grafica|capitolo successivo]].
    for version in ubuntu_flavours:
        versions.append(version.upper())

    versions.append("SERVER_POWERPC")
    return versions


def create_urls_collection():
    urls = []

    # Link hash Ubuntu
    link = f"https://releases.ubuntu.com/{ubu_version}/SHA256SUMS"
    urls.append(link)

    # Link hash derivate ufficiali di Ubuntu
    for flavour in ubuntu_flavours:
        link = f"https://cdimage.ubuntu.com/{flavour}/releases/{ubu_version}/release/SHA256SUMS"
        urls.append(link)

    # Link hash versioni server alternative, ecc..
    link = f"https://cdimage.ubuntu.com/releases/{ubu_version}/release/SHA256SUMS"
    urls.append(link)

    return urls


async def fetch_page(session, url):
    async with session.get(url) as response:
        if response.status == 200:
            return await response.text()
        else:
            return None


async def main():
    ubu_versions = create_versions_list()
    urls = create_urls_collection()
    async with aiohttp.ClientSession() as session:
        hash_pages = []

        for url in urls:
            hash_pages.append(fetch_page(session, url))

        htmls = await asyncio.gather(*hash_pages)

    for flavour_name, hash_text in zip(ubu_versions, htmls):
        if hash_text is None:
            print(f"{flavour_name}\nNon presente!\n")
        else:
            print(f"{flavour_name}\n{hash_text}")


asyncio.run(main())
Linea 42: Linea 88:
Supponendo di aver scaricato nella propria '''Home''' il file `.iso` (in questo esempio l'immagine `ubuntu-20.04.1-desktop-amd64.iso`):
 0. [[AmbienteGrafico/AvviareProgrammi|Avviare]] il [[AmministrazioneSistema/Terminale|terminale]] e digitare il comando:{{{
sha256sum ubuntu-20.04.1-desktop-amd64.iso
}}}che restituirà un risultato del tipo:{{{
b45165ed3cd437b9ffad02a2aad22a4ddc69162470e2622982889ce5826f6e3d ubuntu-20.04.1-desktop-amd64.iso
= Utilizzo =

Aprire un [[Ufficio/EditorDiTesto|editor di testo]], incollare il testo dello script riportato nel paragrafo precedente e salvare il file nella propria '''Home''' con il nome `script.py`

Vengono elencati qui i comandi da [[AmministrazioneSistema/Terminale|terminale]] per ogni [[Rilasci|versione supportata]]. Ogni comando creerà nella propria '''Home''' un file con all'interno l'elenco delle impronte per una specifica versione di Ubuntu. Ad esempio il file '''hash_24-04.txt''' conterrà l'elenco delle hash SHA256Sum della versione '''24.04'''.

 * '''24.10''': digitare il comando:{{{
python3 script.py 24.10 > hash_24-10.txt
Linea 48: Linea 97:
 0. Copiare l'impronta, in questo caso:{{{
b45165ed3cd437b9ffad02a2aad22a4ddc69162470e2622982889ce5826f6e3d
 * '''24.04''': digitare il comando:{{{
python3 script.py 24.04 > hash_24-04.txt
Linea 51: Linea 100:
 0. Se con l'immagine `iso` si è scaricato anche il file `SHA256SUM`, aprire il file con un [[Ufficio/EditorDiTesto|editor di testo]]. Oppure in alternativa aprire la pagina con l'[[Installazione/SHA256Sum/Hash|elenco delle impronte]].
 0. Premere la combinazione dei tasti '''CTRL+F''' per accedere al campo di ricerca.
 0. Incollare il codice copiato al passo "2". Se non ci sono errori, il codice verrà evidenziato all'interno del file di testo.

<<Anchor(grafica)>>
= Verifica da file manager =

La verifica dell'impronta '''SHA256Sum''' delle immagini `iso`, può essere effettuata anche da interfaccia grafica. Vengono qui elencati i metodi attraverso i principali [[AmbienteGrafico/FileManager|file manager]].


== Tramite Nautilus ==

'''Nautilus''' è il file manager predefinito di '''Gnome''', usato in '''Ubuntu'''.

 0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://nautilus-gtkhash|nautilus-gtkhash]]
 0. [[AmbienteGrafico/AvviareProgrammi|Avviare]] '''Nautilus'''.
 0. Fare clic col destro sull'immagine `.iso` da verificare, selezionare '''''Proprietà → Impronte (Digest)''''' e mettere la spunta su '''SHA256''' .
 0. Digitare la somma '''SHA256''' contenuta nel file `SHA256SUM` relativo all'immagine `.iso` di cui si vuole controllare l'integrità nella casella '''Check'''.
 0. Fare clic su '''Hash''' e attendere il responso.

Il comparire del segno (./) conferma la congruità del file `.iso`.

== Tramite Nemo ==

'''Nemo''' è il file manager predefinito di '''Cinnamon''', spesso installato come rimpiazzo del file manager '''Nautilus''' usato in '''Ubuntu'''.

 0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://nemo-gtkhash|nemo-gtkhash]]
 0. [[AmbienteGrafico/AvviareProgrammi|Avviare]] '''Nemo'''.
 0. Fare clic col destro sull'immagine `.iso` da verificare, selezionare '''''Proprietà → Impronte (Digest)''''' e mettere la spunta su '''SHA256''' .
 0. Digitare la somma '''SHA256''' contenuta nel file `SHA256SUM` relativo all'immagine `.iso` di cui si vuole controllare l'integrità nella casella '''Check'''.
 0. Fare clic su '''Hash''' e attendere il responso.

Il comparire del segno (./) conferma la congruità del file `.iso`.

== Tramite Dolphin ==

'''Dolphin''' è il file manager predefinito di '''KDE''', usato in '''Kubuntu'''.

 0. [[AmbienteGrafico/AvviareProgrammi|Avviare]] '''Dolphin'''.
 0. Spostarsi nella cartella dove è stato salvato il file immagine con estensione `.iso`.
 0. Fare clic con il pulsante destro del mouse sull'immagine `.iso` e selezionare '''''Proprietà → Codici di controllo'''''.
 0. Digitare la somma '''SHA256''' contenuta nel file `SHA256SUM` relativo all'immagine `.iso` di cui si vuole controllare l'integrità.
 0. Fare clic su '''Calcola''' a fianco del '''SHA256:''' ed attendere il responso.

== Tramite Thunar ==

'''Thunar''' è il file manager predefinito di '''Xfce''', usato in '''Xubuntu'''.

 0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://thunar-gtkhash|thunar-gtkhash]]
 0. [[AmbienteGrafico/AvviareProgrammi|Avviare]] '''Thunar'''.
 0. Fare clic col destro sull'immagine `.iso` da verificare, selezionare '''''Proprietà → Impronte (Digest)''''' e mettere la spunta su '''SHA256''' .
 0. Digitare la somma '''SHA256''' contenuta nel file `SHA256SUM` relativo all'immagine `.iso` di cui si vuole controllare l'integrità nella casella '''Check'''.
 0. Fare clic su '''Hash''' e attendere il responso.

Il comparire del segno (./) conferma la congruità del file `.iso`.

= Verifica da Window =

Su Windows può essere installato il software [[https://raylin.wordpress.com/downloads/md5-sha-1-checksum-utility/|MD5 & SHA Checksum Utility]].
 0. Alla voce '''File''' può essere caricata l'immagine `iso`. Il software caricherà le impronte in diversi formati, fra cui '''SHA256'''.
 0. In basso, nel campo '''Hash''' deve essere incollato il valore dell'impronta copiato dal file `SHA256SUM` oppure dalla [[Installazione/SHA256Sum/Hash|pagina elenco]].
 0. Fare clic su '''Verify''' per confrontare le impronte.

{{{#!wiki tip
[[https://www.youtube.com/watch?v=B6WUms7PkM4|Questo video]] mostra il funzionamento di '''MD5 & SHA Checksum Utility'''.
 * '''22.04''': digitare il comando:{{{
python3 script.py 22.04 > hash_22-04.txt
}}}
 * '''20.04''': digitare il comando:{{{
python3 script.py 20.04 > hash_20-04.txt
Linea 118: Linea 107:
= Collegamenti esterni = <<Anchor(alternativo)>>
= Script alternativo =
Linea 120: Linea 110:
 * [[http://it.wikipedia.org/wiki/Secure_Hash_Algorithm|Voce enciclopedica suSHA256Sum]]
 * [[https://help.ubuntu.com/community/HowToSHA256SUM|Documento originale]]
 * [[http://en.wikipedia.org/wiki/SHA-2|Voce enciclopedica in inglese]]
 * [[Installazione/SHA256Sum/Hash|Pagina wiki con tutte le impronte di Ubuntu]]
Lo script è meno veloce del precedente, potrebbe richiedere vari secondi per l'esecuzione, tuttavia non richiede pacchetti aggiuntivi in una installazione standard di Ubuntu.

{{{
import urllib.request
import requests

from sys import argv
script, ubu_version = argv

ubuntu_flavours = ("kubuntu", "ubuntu-mate", "xubuntu", "lubuntu", "ubuntu-unity", "ubuntu-budgie", "ubuntustudio", "ubuntukylin", "ubuntucinnamon")

def print_hash(web_page):
    request = requests.get(web_page)
    if request.status_code == 200:
        web = urllib.request.urlopen(web_page)
        text = web.read().decode('utf_8')
        print(text)
    else:
        print("Non presente!\n")

#STAMPA HASH UBUNTU PRESENTI IN https://releases.ubuntu.com/
print("UBUNTU")
link = f"https://releases.ubuntu.com/{ubu_version}/SHA256SUMS"
print_hash(link)

#STAMPA HASH VARIANTI *BUNTU PRESENTI IN http://cdimage.ubuntu.com/
for i in ubuntu_flavours:
    link = f"https://cdimage.ubuntu.com/{i}/releases/{ubu_version}/release/SHA256SUMS"
    print(i.upper())
    print_hash(link)

#STAMPA HASH VERSIONI SERVER PRESENTI IN https://cdimage.ubuntu.com/releases/
print("SERVER_POWERPC")
link = f"https://cdimage.ubuntu.com/releases/{ubu_version}/release/SHA256SUMS"
print_hash(link)

}}}

= Ulteriori risorse =

 * [[Installazione/SHA256Sum|Hash sha256]]
 * [[Installazione/SHA256Sum/Hash|Elenco delle hash sha256]]


Guida verificata con Ubuntu: 20.04 22.04 24.04 24.10

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Nelle pagine di download di Ubuntu, oltre alle immagini iso del sistema operativo, è regolarmente presente il file SHA256SUM con l'elenco delle impronte SHA256Sum di ciascun file iso.

In questa pagina viene mostrato l'utilizzo di uno script in grado di rilevare dalle pagine di download tutte le impronte SHA256Sum di Ubuntu e derivate a seconda del numero di versione (22.04, 24.04, ecc..).
Per ogni versione verrà creato un file con l'elenco delle hash per le iso di Ubuntu e derivate.

Script

Il seguente script richiede l'installazione del pacchetto aiohttp-wsgi-serve. In caso di problemi è possibile utilizzare uno script alternativo.

import aiohttp
import asyncio

from sys import argv
script, ubu_version = argv

ubuntu_flavours = ("kubuntu", "ubuntu-mate", "xubuntu", "lubuntu", "ubuntu-unity", "ubuntu-budgie", "ubuntustudio", "ubuntukylin", "ubuntucinnamon")


def create_versions_list():
    versions = []
    versions.append("UBUNTU")

    for version in ubuntu_flavours:
        versions.append(version.upper())

    versions.append("SERVER_POWERPC")
    return versions


def create_urls_collection():
    urls = []

    # Link hash Ubuntu
    link = f"https://releases.ubuntu.com/{ubu_version}/SHA256SUMS"
    urls.append(link)

    # Link hash derivate ufficiali di Ubuntu
    for flavour in ubuntu_flavours:
        link = f"https://cdimage.ubuntu.com/{flavour}/releases/{ubu_version}/release/SHA256SUMS"
        urls.append(link)

    # Link hash versioni server alternative, ecc..
    link = f"https://cdimage.ubuntu.com/releases/{ubu_version}/release/SHA256SUMS"
    urls.append(link)

    return urls


async def fetch_page(session, url):
    async with session.get(url) as response:
        if response.status == 200:
            return await response.text()
        else:
            return None


async def main():
    ubu_versions = create_versions_list()
    urls = create_urls_collection()
    async with aiohttp.ClientSession() as session:
        hash_pages = []

        for url in urls:
            hash_pages.append(fetch_page(session, url))

        htmls = await asyncio.gather(*hash_pages)

    for flavour_name, hash_text in zip(ubu_versions, htmls):
        if hash_text is None:
            print(f"{flavour_name}\nNon presente!\n")
        else:
            print(f"{flavour_name}\n{hash_text}")


asyncio.run(main())

Utilizzo

Aprire un editor di testo, incollare il testo dello script riportato nel paragrafo precedente e salvare il file nella propria Home con il nome script.py

Vengono elencati qui i comandi da terminale per ogni versione supportata. Ogni comando creerà nella propria Home un file con all'interno l'elenco delle impronte per una specifica versione di Ubuntu. Ad esempio il file hash_24-04.txt conterrà l'elenco delle hash SHA256Sum della versione 24.04.

  • 24.10: digitare il comando:

    python3 script.py 24.10 > hash_24-10.txt
  • 24.04: digitare il comando:

    python3 script.py 24.04 > hash_24-04.txt
  • 22.04: digitare il comando:

    python3 script.py 22.04 > hash_22-04.txt
  • 20.04: digitare il comando:

    python3 script.py 20.04 > hash_20-04.txt

Script alternativo

Lo script è meno veloce del precedente, potrebbe richiedere vari secondi per l'esecuzione, tuttavia non richiede pacchetti aggiuntivi in una installazione standard di Ubuntu.

import urllib.request
import requests

from sys import argv
script, ubu_version = argv

ubuntu_flavours = ("kubuntu", "ubuntu-mate", "xubuntu", "lubuntu", "ubuntu-unity", "ubuntu-budgie", "ubuntustudio", "ubuntukylin", "ubuntucinnamon")

def print_hash(web_page):
    request = requests.get(web_page)
    if request.status_code == 200:
        web = urllib.request.urlopen(web_page)
        text = web.read().decode('utf_8')
        print(text)
    else:
        print("Non presente!\n")

#STAMPA HASH UBUNTU PRESENTI IN https://releases.ubuntu.com/
print("UBUNTU")
link = f"https://releases.ubuntu.com/{ubu_version}/SHA256SUMS"
print_hash(link)

#STAMPA HASH VARIANTI *BUNTU PRESENTI IN http://cdimage.ubuntu.com/
for i in ubuntu_flavours:
    link = f"https://cdimage.ubuntu.com/{i}/releases/{ubu_version}/release/SHA256SUMS"
    print(i.upper())
    print_hash(link)

#STAMPA HASH VERSIONI SERVER PRESENTI IN https://cdimage.ubuntu.com/releases/
print("SERVER_POWERPC")
link = f"https://cdimage.ubuntu.com/releases/{ubu_version}/release/SHA256SUMS"
print_hash(link)

Ulteriori risorse


CategoryInstallazioneSistema