Forzare un utente a cambiare la password al primo login

Premessa: il comando dovrebbe funzionare su qualsiasi distribuzione GNU/Linux, più o meno recente, a patto che lo si usi come utente root. Quindi su Ubuntu andrà preceduto dal classico sudo.

Se vogliamo che un utente sia costretto a cambiare la propria password al primo login, possiamo usare il comando chage così

chage -d 0 utente

Con l’opzione “-d” impostiamo la data di scadenza della password. 0 indica al sistema che la password è scaduta.

Ecco quello che l’utente vedrà al primo login successivo alla nostra modifica

You are required to change your password immediately (root enforced)
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user utente.
Changing password for utente(current) UNIX password:
New UNIX password:
Retype new UNIX password:passwd:
all authentication tokens updated successfully.

Chage offre altre funzionalità interessanti: possiamo impostare una data di scadenza per una password con relativo periodo di preavviso. Ecco un esempio:

chage -M 180 -W 7 utente

La password del nostro utente durerà 180 giorni e per i 7 giorni che precedono la scadenza riceverà un avviso in cui gli si chiede di cambiarla.

Se vogliamo avere una panoramica di questi valori per uno specifico utente, dobbiamo invece usare chage così:

chage -l utente

Riferimenti:
Chage sui sempre ottimi Appunti di Informatica Libera.

Configurare il servizio ntp su Redhat / CentOS

Ovvero “sincronizziamo i nostri orologi!”

E’ importante che le date dei nostri server siano sincronizzate, se non lo fossero la lettura dei log di sistema risulterebbe molto più difficile e rischierebbe di rivelarsi del tutto inutile.

Fortunamente Linux ci offre tutti gli strumenti per gestire al meglio la sincronizzazione degli orologi si sistema. Vediamo come installarli e farli funzionare.

Il pacchetto da installare e ntp

Vediamo un po’ di che si tratta

# yum info ntp
Description:
The Network Time Protocol (NTP) is used to synchronize a computer's
time with another reference time source. The ntp package contains
utilities and daemons that will synchronize your computer's time to
Coordinated Universal Time (UTC) via the NTP protocol and NTP servers.
The ntp package includes ntpdate (a program for retrieving the date
and time from remote machines via a network) and ntpd (a daemon which
continuously adjusts system time).

Install the ntp package if you need tools for keeping your system's
time synchronized via the NTP protocol.

Esattamente quello che ci serve; procediamo quindi con l’installazione

# yum install ntp

Ora inseriamo nel file di configurazione del demone i Time Server a cui richiederemo l’ora esatta
# vi /etc/ntp.conf

Questi sono quelli presenti di default nel mio file di configurazione
# --- OUR TIMESERVERS -----
server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org

Una volta aggiunti i server non resta che avviare il servizio e configurarlo perché parta ad ogni riavvio del sistema.

# service ntpd start
# chkconfig ntpd on

Il pacchetto ntp comprende anche alcune utilità per interrogare manualmente i time server. Per verificare che tutto funzioni correttamente possiamo usare ntpq così

ntpq -p

L’output dovrebbe essere simile a questo

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*ntp1.inrim.it .IEN. 1 u 58 256 377 0.226 0.652 0.032
+ntp2.inrim.it .IEN. 1 u 71 256 377 0.217 0.638 0.037

Se è così abbiamo configurato correttamente il servizio.

Aggiornare il sistema con yum ignorando le dipendenze mancanti

Tenere aggiornati i sistemi è uno dei compiti principali di un System Administrator. Se abbiamo installato pacchetti da repository non ufficiali può capitare però che yum non riesca a risolvere alcune dipendenze e si blocchi del tutto, restituendo un errore.

Per poter comunque aggiornare il sistema, tralasciando i pacchetti che hanno problemi di dipendenze, possiamo utilizzare il plugin per yum yum-skip-broken.

Per installarlo:

yum install yum-skip-broken.noarch

Per aggiornare il sistema ora basterà aggiungere l’opzione –skip-broken, come nell’ esempio seguente:

yum update --skip-broken

Amministrare Mysql via web con PhpMinAdmin

PhpMinAdmin è un’alternativa semplice e snella al più completo – ma anche decisamente più complicato – PhpMyAdmin.

Funziona sia con Php 4.3 che con Php 5, e sia con MySQL 4.1 che con MySQL 5.0, coprendo così la quasi totalità dell’installato più recente.

L’installazione è semplicissima dal momento che si tratta di un unico file: basta scaricarlo da questa pagina su SourceForge (al momento non è ancora localizzato in italiano, quindi per risparmiare qualche byte potete scegliere la versione solo in inglese) e copiarlo nella DocumentRoot di apache.

Tutte le operazioni più comuni sono disponibili attraverso un’ interfaccia pulita e senza inutili fronzoli: si possono creare e droppare database e tabelle, gestire i permessi di accesso ed esportare dump dei database (l’elenco completo delle funzionalità si trova sulla pagina ufficiale del progetto).

Configurare sendmail per l’invio della posta


Sulle distribuzione derivate da Red Hat il programma di posta installato di default è sendmail. Vediamo quali sono i passi per poter inviare posta all’esterno.

La direttiva SMART_HOST dice a sendmail di reindirizzare tutta la posta in uscita attraverso un altro server invece di consegnarla direttamente. Per modificare la configurazione di sendmail occorre avere il pacchetto sendmail-cf. Per sapere se è installato usiamo il comando:
rpm -qa |grep sendmail-cf
Se non è presente possiamo installarlo con il comando:
yum install -y sendmail-cf
Ora possiamo modificare il file di configurazione /etc/mail/sendmail.mc e decommentare la riga dove compare la stringa SMART_HOST.

NOTA BENE: I commenti hanno una forma assurda del tipo “dnl #”

Prima della modifica

dnl define(`SMART_HOST’,`smtp.your.provider’)

Dopo la modifica

define(`SMART_HOST’,`postaserver.mio.it’)

A questo punto si può ricostruire il file sendmail.cf con il comando seguente
m4 sendmail.mc > sendmail.cf
forzare il server a rileggere la configurazione e testare il tutto
service sendmail reload
mail -s "Test" mioindirizzo@ciao.it

NOTA: per uscire dalla composizione basta scrivere un punto “.” in una riga vuota e dare invio.

Backup backup backup!

Se si vuole evitare il licenziamento un buon inizio è quello di salvare SEMPRE una copia dei file di configurazione, più o meno critici, che si stanno editando. Secondo me ‘cp‘ e ‘date’ assieme stanno benone e danno il vantaggio di imbastire un rudimentale sistema di controllo delle revisioni.

Quando mi tocca editare un file critico prima lanciare vim ne faccio una copia così:
cp drbd.conf drbd.conf.`date +%Y%m%d%H%M`

Il risultato somiglia a questo

ls -l /etc/drbd.conf
-rw-r--r-- 1 root root 2729 Jun 12 16:47 /etc/drbd.conf
-rw-r--r-- 1 root root 1819 Jun 12 16:29 /etc/drbd.conf.200706121629
-rw-r--r-- 1 root root 1800 Jun 12 16:29 /etc/drbd.conf.200706121809

Creare un repository per Yum

Anzitutto dobbiamo installare il pacchetto createrepo

yum install createrepo

Poi dobbiamo raggruppare tutti i pacchetti che dovranno far parte del nostro repository in una cartella ed eseguire il comando

createrepo -v /cartella/mieiRPM

NOTA BENE Tutte le volte che vorremo aggiungere un file sarà necessario rieseguire il comando.

Ora non si deve far altro che pubblicare la directory, ad esempio su un server Apache.

Per utilizzare il nuovo repository ciascun client dovrà avere un file simile a quello che segue nella directory /etc/yum.repos.d

# Questo repository contiene pacchetti RPM creati da me
[mieirpm]
name=Rpm_miei
baseurl=http://server.casa.i.it/Mieirpm
gpgcheck=0

Dopo aver eseguito

yum update

i nuovi rpm saranno disponibili

I demoni di un sistema Linux – Parte 2

Termino la rassegna dei demoni su Linux.

mdmmonitor e mdmpd
Sono i demoni che si occupano di gestire il RAID (redundant array of inexpensive/independent disks).

  • server: acceso
  • desktop: spento

messagebus
Il demone si occupa dello scambio di messaggi in un sistema D-BUS.

  • server: acceso
  • desktop: acceso

netplugd e ifplugd
Configurano “al volo” le interfacce Ethernet quando si collegano i cavi e provvedono a sconfigurarle quando le si scollega dalla rete. Possono servire su un laptop.

  • server: spento
  • desktop: spento

named
E’ il demone DNS. Deve essere in esecuzione solo sui server destinati alla risoluzione dei nomi.

  • server: spento (se non siamo su un DNS)
  • desktop: spento

nfsd
E’ il demone NFS. Da usarsi solo se intendono condividere files via NFS.

  • server: spento
  • desktop: spento

ntpd
Il demone che si occupa delle sincronizzazione dell’orario di sistema.

  • server: acceso
  • desktop: acceso

portmap
Portmap gestisce le connessioni RPC (remote procedure call). Utile tenerlo attivo se si usano servizi come NFS e NIS.

  • server: spento
  • dekstop: spento

postfix
Server di posta, lo storico rivale di sendmail.

  • server: spento (a meno che non si tratti di un mail server)
  • desktop: spento

sendmail
Storico server di posta.

  • server: spento (se non è un server di posta)
  • desktop: acceso

smartd
Questo demone si occupa della gestione del sistema SMART (Self-Monitoring, Analysis and Reporting Technology), che si occupa di monitorare lo stato di saluti dei dischi.

  • server: acceso
  • desktop: acceso

spamassassin
Demone che spacca lo spam. Utile solo sui server di posta.

  • server: spento
  • desktop: spento

sshd
Essenziale per collegarsi ai propri server in modo sicuro da remoto.

  • server: acceso (sempre!)
  • desktop: acceso

syslog
Gestisce il logging di sistema. Sempre acceso.

  • server: acceso
  • desktop: acceso

winbind
E’ il demone che consente di accedere al proprio sistema Linux autenticandosi su un dominio Win. Ebbene sì: è possibile.

  • server: spento
  • desktop: spento

xfs
Il font server xfs. Aiuta a migliare le prestazioni delle applicazioni grafiche.

  • server: acceso
  • desktop: acceso

ypbind
Il Nis client. Se si usano le Yellow Pages (NIS) il demone deve essere attivo. Ma chi usa ancora NIS????

  • server: spento
  • desktop: spento

I demoni di un sistema Linux – Parte 1

I ‘demoni’ Unix sono servizi eseguiti in background. Ecco una rassegna dei principali.
Il sistema di riferimento è Red Hat.

acpid
Questo demone si occupa di gestire principalmente il controllo energetico.

  • server: spento
  • desktop: acceso

anacron
Anacron è un servizio analogo a cron che manda in esecuzione un task che per un certo periodo non è stato eseguito.

  • server: spento
  • desktop: acceso

apmd
E’ il demone che gestisce l’ Advanced Power Management del Bios; se l’hardware supporta ACPI non c’è bisogno di eseguirlo.

  • server: spento
  • desktop: spento

atd
E’ un demone che consente di eseguire un determinato task in un dato momento. Spesso mi è tornato utile.

  • server: acceso
  • desktop: acceso

autofs
E’ il demone che si occupa del mount (e dell’umount) automatico di filesytem.
server: spento
desktop: acceso

auditd
Un sistema di logging in kernel space delle system calls.

  • server: spento (se non ci sono problemi)
  • desktop: spento

avahi
Avahi è un’implementazione di zeroconf un servizio che permette di condividere risorse senza la necessità di costruire reti IP complesse (nema DNS, nema SMB/NFS/FTP, nema sicurezza!)

  • server: spento
  • desktop: spento

bluethooth
Il nome è autoesplicativo, se non si usano device bluethooth non si ha necessità di tenere in piedi il servizio.

  • server: spento
  • desktop: spento

cpuspeed
Il demone adegua la frequenza del processore alla quantità di energia disponibile. Può tornare utile sui laptop

  • server: spento
  • desktop: spento

crond
E’ lo schedulatore di tutti i sistemi Unix/Linux, utile tenerlo acceso sempre, anche se non si usa direttamente c’è sempre qualche funzione del sistema che lo richiede.

  • server: acceso
  • desktop: acceso

CUPS
Gestisce il sottosistema di stampa. Se si vuole stampare deve essere attivo e opportunamente configurato.

  • server: spento (se non è un server di stampa!)
  • desktop: acceso

gpmd
Questo programma permette di usare il mouse anche in console.

  • server: acceso
  • desktop: spento

hald
HAL sta per Hardware Abstraction Layer, il demone si occupa di raccogliere informazioni sull’Hardware e renderle disponibili al sistema. Utile a molti programmi.

  • server: acceso
  • desktop: acceso

hplipd
Utile solo se si usano stampanti o scanner HP.

  • server: spento
  • desktop: spento

httpd
Questo qui è nientepopodimeno che Apache. Non c’è bisogno di aggiungere altro.

  • server: spento (se non è un web-server!)
  • desktop: spento

ip6tables e iptables
Il firewall di Linux. Acceso sempre…a meno che il vostro sistema non si trovi in una farm dentro a un perimetro ben protetto.

  • server: acceso
  • desktop: acceso

irda
Se si pensa di utilizzare dispositivi a infrarossi lasciarlo attivo.

  • server: spento
  • desktop: spento

irqbalance
In un sistema multiprocessore il demone in questione distribuisce fra le CPU gli interrupts. Perfettamente inutile su di un sistema monoprocessore.

  • server: acceso
  • desktop: spento

kudzu
E’ il demone che, all’avvio, gestisce il riconoscimento dell’hardware. Utile e con un consumo di risorse nullo dal momento che viene eseguito durante il processo di avvio.

  • server: acceso (utile anche se si suppone non si aggiunga hardware ogni tre minuti)
  • desktop: spento

lm_sensors
Gestisce il monitoraggio delle temperature, del voltaggio e delle ventole di raffreddamento.

  • server: acceso
  • desktop: spento

Registrare una sessione con script

Spesso può essere utile registrare i comandi che si digitano in console, ad esempio nel caso li si voglia riutilizzare in un secondo momento in uno script di shell.
A rendere più espliciti i possibili utilizzi c’è il nome, in effetti l’utility in questione si chiama proprio script.
Per provarla è sufficiente aprire un terminale e digitare

script

Di default script scrive un file chiamato typescript nella directory dove viene lanciato. Se si vuole specificare un nomefile e un path differenti si esegua il comando così

script /directory/nomefile

Quando si decide di interrompere la registrazione è sufficiente digitare exit. A questo punto si può riprendere il file dove si sono registrate le nostre operazioni e visualizzarlo o correggerlo.
Di default script salva tutto quello che viene visualizzato a schermo, quindi si rischia di aver un file sporcato da caratteri speciali. Per evitare che questo accada si può invocare dalla bourne shell utilizzando il comando che segue

SHELL=/bin/sh PS1=”$ ” script

E’ molto importante evitare l’uso di comandi come vi o top in una sessione di script pena la quasi completa illeggibilità del file di output.
Se invece si vuole riprendere un file creato in precedenza si può lanciare script così

script -a nomefile