Files di Configurazione Cosa sono Sono normali files di testo atti a configurare il comportamento delle componenti del S.O. sia durante il bootstrap sia in seguito durante l'uso quotidiano per adattare il comportamento del S.O. alle proprie necessità; ciò contribuisce alla leggenda metropolitana del S.O. che parte e non si ferma più. Come usarli Basta modificarli con l'editor preferito (dopo una provvidenziale copia di backup), poi occorre indurre i programmi a rileggerli. Dove sono In genere sono posizionati sotto /etc, oppure dove la documentazione del Software indica di volta in volta. Una notevole eccezione è costituita da quelli sotto /proc e /sys Introduzione 1
/etc/inittab Scopo Fornire informazioni a init che è il primo processo creato dal kernel, in modo che possa innescare la successiva creazione di altri processi che a loro volta... Tipicamente questi programmi si mettono in attesa di un evento, lo eseguono e si rimettono in attesa; es. login Esempio e uso Ha una sintassi molto semplice ed è suddiviso in paragrafi. <id>: identificativo unico da 1 a 4 caratteri <runlevels>: monoutenza, multiutenza, servizi speciali, grafica, tutto... <action>:azione da intraprendere <process> : processo da eseguire n.b. : nella letteratura standard vengono chiamati demoni (daemon), in questa sede si preferisce la versione di daymon (monitor giornalieri) /etc/inittab 2
/etc/fstab Scopo Permettere l'aggiunta dei File-Sytems in fase di bootstrap e la successiva modifica di uso o rimozione durante la normale attività Esempio e uso # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/hda4 / ext3 defaults,errors=remount-ro 0 1 /dev/hda5 none swap sw 0 0 /dev/hdc /media/cdrom0 udf,iso9660 ro,user,noauto 0 0 /etc/fstab 3
/etc/fstab <file system> indica il supporto fisico su cui risiede il FileSystem: partizione di hard disk, cdrom, memoria ram o altro <mount point> in quale directory verrà inserito <type> ext2,ext3,reiserfs,vfat,nfs e molti altri <options> lettura,scrittura... <dump> backup in automatico con dump <pass> se da verificare durante la fase di bootstrap Analoghe considerazioni valgono per /etc/mtab che però viene gestito in memoria ram /etc/fstab 4
/etc/crontab Scopo il programma cron permette di pianificare le operazioni da effettuare periodicamente, mentre at una volta sola. Sui laptop può essere instalato anacron (che non presuppone in sistema sempre up) Esempio e uso $ echo 0,5,10,15,20,25,30,35,40,45,50,55 * * * * date > `tty` > /tmp/experiment $ crontab /tmp/experiment $ crontab -l avremo visualizzata l' ora ogni 5 minuti sul terminale dal quale avremo lanciato il comando at 17:00 Friday << COMMAND mail -s Rapporto settimanale mailing_list < report_written COMMAND /etc/crontab 5
/etc/hosts Scopo Fornire una mappatura fra nomi dei computer e indirizzi di rete in assenza di servizi come il DNS : in pratica un elenco telefonico locale. Esempio e uso 127.0.0.1 localhost 192.168.1.10 foo.mydomain.org foo 192.168.1.13 bar.mydomain.org bar 146.82.138.7 master.debian.org master 209.237.226.90 www.opensource.org abbastanza autoesplicativo: il primo campo è l'indirizzo IP segue il nome e l'eventuale alias /etc/hosts 6
/etc/inetd Scopo Avere un unico daymon che ascolta per connessioni (Internet) e decide quale servizio attivare Esempio e uso # Packages should modify this file by using update-inetd(8) ## <service_name> <sock_type> <proto> <flags> <user> <server_path> <args> ##:INTERNAL: Internal services #echo stream tcp nowait root internal #echo dgram udp wait root internal #chargen stream tcp nowait root internal ftp stream tcp nowait root /usr/bin/ftp opzioni Questo stralcio di file mostra che solo ftp è usato per connessioni da remoto /etc/inetd 7
/etc/passwd Scopo Permettere l'identificazione di chi tenta il login al Sistema Esempio e uso root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync Porre attensione al secondo campo dove è presente una x che indica la presenza di una password criptografata Nelle versioni recenti esiste un file separato in aggiunta a /etc/passwd ed è /etc/shadow /etc/inetd 8
Gestione Utenti La possibilità di inserire-cancellare-modificare l'accesso a persone differenti oppure a diverse personaltà dello stesso Utente, impostando l'ambiente di uso del S.O. in modo da soddisfare i propri bisogni. Con la diffusione dell'informatica, infatti, sono sempre più frequenti le situazioni nelle quali un PC finisce con essere usato da più persone della stessa famiglia: sia per studio che per svago. Un Utente può decidere di crearsi una login per l' uso di Internet, una per sviluppo software, una per giocare. Non è strettamente necessario separare le attività, tuttavia è possibile farlo se utile. Un Utente possiede un identificativo numerico unico, appartiene ad un gruppo e di conseguenza obbedisce a regole che in alcuni casi lo limitano. Unica eccezione è l' Utente root. Gestione Utenti 9
Gestione Utenti Un Utente viene gestito dal S.O. tramite un numero univoco : uid (user id). Possiede una directory (/home/...), una shell per interagire col Sistema, appartiene ad un gruppo. L'insieme dei compiti che può svolgere è limitato dal Sistema tramite l'uso di alcune speciali informazioni, sotto certe condizioni modificabili dall' Utente stesso: sebbene ciò possa apparire come una fastisiosa limitazione è bene all' inizio fare il login come utente diverso da root, in quanto si é meno esposti a situazioni potenzialmente pericolose come la cancellazione di files importanti per il S.O. Un file ha dei permessi associati al proprietario del file, al gruppo di appartenenza e a tutti coloro i quali non appartengono alle prime due categorie. Il comando che permette di cambiare questi permessi è : chmod La sintassi è : chmod [-R] modo files -R cambia ricorsivamente i permessi delle directory e del loro contenuto. modo permessi in formato simbolico oppure ottale files sono il files chmod 10
Gestione Utenti Il formato simbolico è composta da tre parti, ognuna delle quali è opzionale. Tipo di proprietà : u (utente), g (gruppo), a (altri) Operatore : + (aggiunge permessi), - (toglie permessi), = (sostituzione permessi) Valori da impostare : r (lettura), w (scrittura), x (esecuzione o ricerca nelle directory) In generale, occorre avere il permesso di esecuzione pe tutti i files che devono essere eseguiti direttamente, il che comprende i programmi compilati e le procedure di shell (script). Inoltre è nesessario specificare il permesso di esecuzione per le directory, consentendo la ricerca all' interno delle stesse. chmod 11
Gestione Utenti Nel formato ottale i valori seguenti vengono sommati per formate una mappa di bit. Valore Significato 4000 Set user ID in esecuzione 2000 Set group ID in esecuzione 1000 per creare le directory : solo il proprietario può creare/cancellare file 400 Lettura proprietario 200 Scrittura proprietario 100 Esecuzione proprietario 40 Lettura gruppo 20 Scrittura gruppo 10 Esecuzione gruppo 4 Lettura altri 2 Scrittura altri 1 Esecuzione altri chmod 12
Gestione Utenti Supponiamo di voler aggiungere il permesso di scrittura per il gruppo e di togliere quello di lettura per tutti gli altri da tutti i files.sxw della directory corrente. I permessi correnti sono lettura/scrittura per il proprietario (400 per lettura proprietario, 200 (per scrittura proprietario), lettura per gruppo (40) e per gli altri (4), per un totale di 644 ottale.-rw-r--r-- 1 anto anto 0 2005-11-06 21:20 elenco -rw-r--r-- 1 fly staff 0 2005-11-06 21:19 primo.sxw -rw-r--r-- 1 fly staff 0 2005-11-06 21:19 secondo.sxw -rw-r--r-- 1 fly staff 0 2005-11-06 21:19 terzo.sxw Nel formato simbolico possiamo scrivere : chmod g+w,o-r *.sxw ed ottenere 11-06 21:20 elenco -rw-rw---- 1 fly staff 0 2005-11-06 21:19 primo.sxw -rw-rw---- 1 fly staff 0 2005-11-06 21:19 secondo.sxw -rw-rw---- 1 fly staff 0 2005-11-06 21:19 terzo.sxw chmod 13
Gestione Utenti Per cambiare l'utente e/o il gruppo possiamo utilizzare il comando : chown. Dobbiamo essere nelle condizioni di poter effettuare ciò oppure essere root. la sua sintassi è : chown [-R] [utente][.][gruppo] files [-R] [utente] [gruppo] Cambia ricorsivamente la proprietà delle directory e del loro conenuto Nuovo ID utente Nuovo ID di gruppo N.B. : i varii ID devono essere noti al Sistema altrimenti si avrà una segnalazione di errore chown 14
Gestione Utenti Quando si esegue un programma che crea un file, il programma deve richiedere alcuni permessi. Per esempio, un editor di testo normalmente deve richiedere il permesso di lettura/scrittura (almeno per il prprietario...) mentre un programma che crea n programma eseguibile avrà bisogno anche del permesso di esecuzione. I permessi ricevuti sono limitati dal valore della mask. Ogni bit settato nella mask corrisponde a un permesso non concesso. Per esempio, se la mask è impostata a zero, non ci sono limitazioni e tutti i permessi vengono concessi. Ogni bit impostato ad 1 indica che non sarà possibile avere quel permesso nei files creati. Sintassi : umask [mask] Solitamente non si concede l' accesso in scrittura al gruppo e nessun tipo di accesso agli altri. I bit corrispondenti a questi permessi (in ottale) sono 20 per la scrittura del gruppo, 1 per l' esecuzione degli altri, 2 per la scrittura degli altri e 4 per la lettura degli altri. Se sommiamo il tutto otteniamo la seguente mask : 027 umask 000 010 111 umask 15