Script di utilità del server

Si tratta di una serie di script contenuti nella cartella /usr/share/fuss-server/scripts

Gestione degli access point wifi

  • ap-control.sh

  • ap-disable

  • ap-enable

  • ap-show

Gestire o modificare password

  • chage.py

Consente di modificare su LDAP i dati di scadenza delle password per un utente

  • renewpassexpire.py

Consente di resettare su LDAP la data di scadenza delle password per tutti gli utenti o solo quelli con password già scaduta, o anche di forzarne il cambio.

  • chguserpwd.sh

Consente di assegnare una nuova password ad un utente senza conoscere la password precedente.

  • group-passwd-change.sh

Lo script è diviso in due parti: La prima parte (di norma commentata) consente di modificare la password ad una serie di utenti. E” necessario predisporre un file di testo che contenga nella prima colonna gli username e nella seconda colonna le password. Lo script legge il file ed associa l’utente alla rispettiva password. Ovviamente bisogna prima decommentare il codice e commentare la seconda parte dello script.

La seconda parte dello script (di norma non commentata) permette di attribuire la stessa password ad un gruppo di utenti ldap, ad esempio un gruppo classe.

  • mpwchange.sh

Consente di cambiare la master password

Ripulire il file know_hosts cancellando le ripetizioni

  • known-hosts-analize

Consente di analizzare il numero di ripetizioni (se superiori a 10) della stessa chiave in known_hosts. Il problema dipende dalla mancata rigenerazione delle chiavi in caso di installazione con clonezilla. Con le versioni recenti il problema è stato risolto, questo script consente di individuare quali client hanno chiavi SSH non rigenerate.

  • clean-known-hosts

Nel caso il file known_hosts di ssh sia cresciuto troppo rallentando i tempi di latenza nelle connessioni, lanciando questo script vengono eliminati tutti i doppioni di una data riga. Il problema deriva da un vecchio bug nella gestione dei client, su tutte le installazioni recenti lo script è inutile.

Rimuovere dalla cartella /var vecchi file di log

  • cleanvar.sh

Permette di rimuovere da /var file di log e mail mutt più vecchi di un certo numero di giorni. Può essere esteso per rimuovere altri file di log. Si presti attenzione ai tempi di conservazione stabiliti per legge dei log di navigazione.

Individuare dispositivi accesi o ancora nel leases dhcp

  • leases.py

Consente di rappresentare in una tabella alcuni dati (IP and MAC Address, expire time, hostname) contenuti in /var/lib/dhcp/dhcpd.leases

./leases.py -o
# permette di individuare i dispositivi in dhcp ancora accesi
./leases.py -a
# individua tutti i dispositivi in dhcp accesi o il cui tempo
# di leases (in genere 24 ore) non è ancora scaduto

Spegnimento di tutti i client e accensione/spegnimento dei client appartenenti ad un cluster

  • lanpoweroff.sh

Permette di spegnere tutte le macchine della LAN. Per evitare di spegnere anche il server è possibile whitelistarlo, ma bisogna prestare molta attenzione.

  • leases-poweroff.sh

Permette di spegnere tutte le macchine a cui il server ha assegnato un IP via dhcp. Si può usare insieme al servizio cron per programmare lo spegnimento serale delle macchine. Sono escluse le macchine alle quali è stato assegnato un IP statico.

  • cluster-wakeup.sh

Consente di accendere con etherwake tutte le macchine di una lista presente in un file di testo a due colonne contenente gli hostname nella prima colonna e i mac address nella seconda colonna.

./cluster-wakeup.sh <filename>
  • cluster-poweroff.sh

Spegne tutti i PC listati nello stesso file

./cluster-poweroff.sh <filename>

Script da lanciare dopo aver aggiunto hosts a dhcp-reservations

  • dnsreserv.py

Questo script va lanciato per aggiornare i record DNS dopo l’aggiunta di hostname a /etc/dhcp/dhcp-reservations

Pulire database kerberos

  • forget_client

Script per eliminare tutte le occorrenze di un hostname dai cluster e dai database Kerberos

./forget_client <hostname>

Nelle ultime versioni del fuss-client viene lanciato prima di joinare un client con:

fuss-client -H <hostname>

per evitare duplicazioni di chiavi.

  • forget_clients

Permette di rimuovere tutte le occorrenze degli hostname di una lista dai cluster e dai database **Kerberos. Gli hostname devono essere elencati in un file di testo.

./forget_clients <file>
  • keytabclean.sh

Script per rimuovere chiavi duplicate nei database kerberos.\

Copiare le configurazioni alla reinstallazione di un server

  • fuss-dump.sh

  • fuss-restore.sh

Per l’utilizzo si veda la corrispondente sezione nella fuss-tech-guide.

Pulizia delle Home

Fuss-server imposta un cronjob notturno:

  • home-cleanup, tutte le sere (/usr/share/fuss-server/scripts/home-cleanup)

  • home-cleanup-weekly, il sabato sera (/usr/share/fuss-server/scripts/home-cleanup.weekly)

alle 22.00, che effettua una pulizia delle home, cancellando i file:

.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml
.cache/chromium/*
.cache/google-chrome/*
.cache/mozilla/firefox/*

di tutti gli utenti LDAP, ad eccezione di admin e nobody, ed ignorando gli utenti locali.

A partire dalla versione 10.0.33 l’orario di questo cronjob è modificabile tramite variabili in /etc/fuss-server/fuss-server-defaults.yaml:

home_cleanup_time_hour: 22
home_cleanup_time_minute: 0

Pulizia di ulteriori file

Se si ha la necessità di cancellare con cadenza quotidiana o settimanale determinati file nelle home degli utenti, questi ultimi possono essere aggiunti in coda alla lista nei rispettivi script.

File Singleton* dei browser Google Chrome e Chromium

Per eliminare dalle home i file Singleton*, che si creano utilizzando i browser Google Chrome e Chromium , ma non vengono cancellati se si chiude la sessione senza aver chiuso prima i browser, impedendone l’apertura su un nuovo client, si consiglia di aggiungere ad home-cleanup-weekly le righe:

.config/chromium/Singleton*
.config/google-chrome/Singleton*

Script per settare le quote disco per singoli utenti o gruppi

  • setuserquota.py

Questo script è progettato per impostare le quote disco per gli utenti LDAP della rete.

./setuserquota.py soft_block_limit hard_block_limit
# soft_block_limit (limite di avviso per l'uso del disco)
# hard_block_limit (limite massimo di utilizzo del disco)
  • setgroupquota.py

Questo script python è progettato per impostare le quote disco per gruppi di utenti LDAP della rete.

./setgroupquota.py group soft_block_limit hard_block_limit
# group (gruppo ldap a cui applicare i limiti)
# soft_block_limit (limite di avviso per l'uso del disco)
# hard_block_limit (limite massimo di utilizzo del disco)
  • setgroupquota.sh

Questo script bash permette di impostare le quote disco per gruppi di utenti LDAP della rete.

./setgroupquota.sh group soft_block_limit hard_block_limit [mountpoint]
# group (gruppo ldap a cui applicare i limiti)
# soft_block_limit (limite di avviso per l'uso del disco)
# hard_block_limit (limite massimo di utilizzo del disco)
# [mountpoint] (il default e /home)

Script per rimuovere tutti i PC da una coda di stampa

  • print-queue-clean.sh

Lo script fa la scansione completa delle stampanti di rete e permette, previa conferma di rimuovere tutti i client dalla corrispondente coda di stampa.

Script per cancellare una lista di utenti e le relative home

  • users-delete.sh

Permette di rimuovere gli utenti elencati in un file di testo, insieme alle loro home, senza backup. Il vantaggio è evidentemente quello di non doverli rimuovere ad uno ad uno. Si ricorda ad ogni modo che, tra la fine del 2024 e l’inizio del 2025, anche lato Octonet la rimozione dell’utente comporta la contestuale rimozione della home senza la creazione del file di backup *.tar.gz .

./users-delete.sh <file>

Script per l’installazione dell’agent di OCS inventory

  • ocs-agent-inst

Si veda la Sezione della guida

Script per per creare il profilo windows per gli utenti in reti dual boot

  • prepare-roaming-profile-existing-homes.yml

  • roaming-profile

Script che analizza il file di log di autenticazione SSH

  • listsshkeyaccess.sh

Permette di tracciare gli accessi SSH effettuati tramite chiave pubblica, associando le chiavi agli utenti e agli indirizzi IP, consentendo di verificare chi si è connesso e da dove.

Script per stampare tutti i fingerprint SSH del server

  • ssh-fingerprints.sh

Estrae e visualizza le informazioni sulle chiavi pubbliche del server SSH locale, consentendo di verificare le impronte digitali delle chiavi.