Il primo boot è ormai storia passata e la configurazione di base del sistema è completa. In questa sezione vengono descritte, più o meno in ordine sparso, alcune operazioni comuni e alcuni comandi utili.
Durante l'avvio del sistema il kernel scrive a video una lunga serie di messaggi relativi alle operazioni eseguite e alle periferiche riconosciute. Questi messaggi sono fondamentali sia per diagnosticare eventuali problemi sia per determinare i nomi dei dispositivi associati alle periferiche. Il comando dmesg ripropone i messaggi visualizzati dal kernel durante l'avvio del sistema, consentendo di controllarli con tutta calma. In particolare, quando si chiede assistenza su una delle mailing list di NetBSD perché qualche periferica non funziona a dovere conviene sempre accludere al messaggio l'output di dmesg (o almeno la parte relativa alla periferica in questione).
# dmesg | more
Se qualcosa sul sistema non funziona come dovrebbe e decidete di ricorrere all'aiuto di una delle mailing list di NetBSD, ricordatevi di accludere al vostro messaggio l'output di dmesg rilevante per il vostro problema. Queste informazioni saranno d'aiuto agli altri per diagnosticare il vostro problema.
Una delle domande che ricorre più frequentemente sulle mailing list è "come si fa a montare il CD-ROM?": i nuovi utenti sono di solito sorpresi dal fatto che il programma di installazione riconosce e utilizza il lettore di CD ma dopo il riavvio il sistema sembra essersene "dimenticato". Vediamo ora la procedura da adottare. Il device corrispondente al CDROM si può ricavare con il già citato comando dmesg. Supponiamo, per esempio, che dmesg visualizzi queste informazioni:
# dmesg | grep ^cd cd0 at atapibus0 drive 1: <ASUS CD-S400/A, , V2.1H> type 5 cdrom removable
In questo caso si potrà montare il cdrom con
# mkdir /mnt/cdrom # mount -t cd9660 -o ro /dev/cd0a /mnt/cdrom
Per evitare di ripetere questi comandi ogni volta, conviene inserire una riga in /etc/fstab.
/dev/cd0a /mnt/cdrom cd9660 ro,noauto 0 0
A questo punto, senza bisogno di riavviare, per montare il cdrom basta dare il comando
# mount /mnt/cdrom
Se il cdrom è montato non è possibile espellerlo manualmente (cioè premendo il pulsante sul lettore): bisogna prima dare il comando
# umount /mnt/cdrom
In alternativa si può espellerlo via software (anche se è montato) con il comando
# eject cd0
Per usare il floppy si può utilizzare un meccanismo simile a quello del CD-ROM. Per prima cosa si crea il punto di mount, per esempio:
# mkdir /mnt/floppy
Per leggere e scrivere un floppy in formato MSDOS si può ora dare il comando:
# mount -t msdos /dev/fd0a /mnt/floppy
Se si usano molto i floppy in formato MSDOS, il mio suggerimento è di installare il package "mtools" che accede direttamente al floppy (ma anche a una partizione DOS) in modo molto comodo.
Se NetBSD condivide il disco fisso con MS-DOS o con Windows è possibile rendere visibili le relative partizioni modificando la disklabel. La prima cosa da fare è determinare la geometria della partizione DOS, per esempio con il comando fdisk.
# fdisk wd0 NetBSD disklabel disk geometry: cylinders: 6232 heads: 16 sectors/track: 63 (1008 sectors/cylinder) ... Partition table: 0: sysid 6 (Primary 'big' DOS, 16-bit FAT (> 32MB)) start 63, size 2088516 (1019 MB), flag 0x80 beg: cylinder 0, head 1, sector 1 end: cylinder 259, head 0, sector 4 1: sysid 169 (NetBSD) start 2088579, size 4193277 (2047 MB), flag 0x0 beg: cylinder 259, head 0, sector 4 end: cylinder 779, head 0, sector 1 2: <UNUSED> 3: <UNUSED>
Nota: in questo esempio è stato usato il disco wd0. Ognuno deve sostituire l'identificativo corretto per il proprio disco (per esempio, sd0, ecc.)
L'esame dell'output di fdisk mostra che la partizione DOS inizia al settore 63 e ha dimensione 2088516. La partizione NetBSD inizia al settore 2088579 (si noti che 2088579 = 2088516 + 63). Questi dati servono per modificare la disklabel BSD, usando l'editor specificato dalla variabile di ambiente $EDITOR. È necessario aggiungere una riga alla disklabel specificando i dati della partizione MS-DOS appena ricavati e usando la prima lettera libera come identificativo della partizione.
# disklabel -e wd0 ... # size offset fstype [fsize bsize cpg] ... e: 3450624 2831232 4.2BSD 1024 8192 16 # (Cyl. 2808* - 6231) f: 2088516 63 MSDOS
Le partizioni da "a" a "e" erano occupate e, pertanto, è l'identificativo scelto per la riga è stato "f". I campi "size" e "offset" sono stati riempiti con i dati trovati prima. Ora si crea il punto di mount, per esempio:
# mkdir /msdos
e infine si aggiunge la riga seguente a /etc/fstab
/dev/wd0f /msdos msdos rw,noauto 1 3
Per accedere alla partizione MS-DOS basta dare il comando:
# mount /msdos
Con il metodo appena descritto si possono leggere partizioni FAT e FAT32. Se si vuole che la partizione MS-DOS venga montata automaticamente all'avvio, basta eliminare l'opzione "noauto", in questo modo:
/dev/wd0f /msdos msdos rw 1 3
La gestione degli utenti e dei gruppi si effettua tramite i programmi useradd(8) e groupadd(8). Per esempio, per aggiungere un nuovo utente carlo, assegnandolo a un gruppo con il suo stesso nome, creiamo dapprima il gruppo con:
# groupadd carlo
poi creiamo il nuovo utente:
# useradd -G wheel -g carlo -m -s /bin/ksh carlo
Con un solo comando abbiamo fatto parecchie operazioni in un colpo solo:
indica di aggiungere l'utente anche al gruppo "wheel" (quello di root), il che gli consentirà di eseguire il comando su.
specifica il gruppo di appartenenza dell'utente, il questo caso il gruppo precedentemente creato.
richiede la creazione della home directory per l'utente.
sceglie la shell ksh per l'utente.
il nome dell'utente da aggiungere.
In questo esempio abbiamo manualmente scelto la shell ksh, però i valori di default utilizzati da useradd possono essere configurati: vedere la pagina di manuale useradd(8). Il comando
# useradd -Dmostra i valori di default correnti.
Il comando:
# useradd -D -s /bin/kshimposta ksh come shell di default del comando useradd.
Nota: lo strumento da utilizzare per aggiungere o modificare gli utenti manualmente è vipw, che consente di modificare in modo sicuro il file delle password.
Le shadow password sono il default per NetBSD, e non possono essere disabilitate: tutte le password di /etc/passwd contengono un '*'; le password crittografate sono contenute in un file separato, /etc/master.passwd, che può essere letto solo da root. Quando si lancia vipw per editare il file delle password, il programma apre una copia di /etc/master.passwd; quando si esce, vipw controlla la validità della copia, genera /etc/passwd e installa il nuovo /etc/master.passwd. Infine esegue pwd_mkdb che crea i file /etc/pwd.db e /etc/spwd.db, che sono dei database equivalenti a /etc/passwd e /etc/master.passwd e consentono un accesso più veloce.
La conseguenza di tutto ciò è che le shadow password sono gestite in modo automatico (trasparente, per usare un termine che va di moda oggi) da NetBSD: finchè si usa vipw per editare il file delle password non è necessario alcun cambiamento alle procedure standard di amministrazione di sistema.
È importante ricordare che l'amministrazione degli account deve sempre essere effettuata usando vipw (oppure chfn, chsh, chpass, passwd): non bisogna mai modificare direttamente /etc/master.passwd.
La localizzazione è un settore in cui NetBSD è purtroppo ancora piuttosto debole; il supporto è ancora carente anche se sarà colmato nelle prossime release, visto che il codice necessario è già presente nella versione current. Nel frattempo ci si deve un po' arrangiare. Per gli utenti europei, la prima cosa da fare è procurarsi il tarball locale.tgz dal sito di NetBSD e installarlo con i comandi:
# cd / # gunzip < /path/to/locale.tgz | tar xvf -
Successivamente aggiungere le istruzioni seguenti ai file globali di configurazione della shell (per esempio /etc/profile):
LANG=it export LANG LC_CTYPE=it_IT.ISO8859-1 # Per avere il simbolo dell'euro # LC_CTYPE=it_IT.ISO8859-15 export LC_CTYPE
Queste impostazioni consentono di utilizzare le lettere accentate e di avere i menu in italiano in alcuni programmi (per esempio mutt).
Il comando da usare è shutdown. Per esempio:
# shutdown -h now # shutdown -r now
In alternativa si possono usare i comandi:
# halt # reboot
halt/reboot e shutdown non sono sinonimi: quest'ultimo è molto più sofisticato, consente di programmare la chiusura del sistema, di notificare gli utenti, ecc. Per i dettagli consultare le rispettive pagine di manuale.