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.