4 ----------------------------------------------------------
5 Appunti sulla installazione e configurazione dei servizi
6 ----------------------------------------------------------
12 Questa guida e' dedicata agli studenti delle lezioni di informatica tenute da Andrea nel lab208. Nella parte iniziale sono presenti alcuni richiami alle impostazioni tipiche di rete e di installazione del laboratorio 208 (lab208) dove generalmente si tengono le lezioni. Questi parametri non sono interessanti per chiunque si trovasse al di fuori della rete piffa.net .
16 Generato con: http://docutils.sourceforge.net/rst.html
18 Configurazione sistema
19 =========================
21 ---------------------------
23 Impostazioni di base per la configurazione del sistema operativo e della rete nel laboratorio 208 facente parte della rete piffa.net .
29 Parametri della rete attualmente in uso:
31 ============= ================
33 ------------------------------
36 broadcast 10.10.208.255
43 ============= ================
50 Abilitare /etc/bash_completion nel file ``/etc/bash.bashrc`` oppure ``~/.bashrc`` ::
52 . /etc/bash_completion
54 Il file ``/etc/bash_completion`` deve essere ,ente nel sistema, in caso contrario installare il pacchetto: ``bash-completion``
60 Sara' opportuno installare la versione completa dell'editor vim tramite il pacchetto vim e modificare il file di configurazione generale ``/etc/vim/vimrc`` ::
62 " All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just
63 " /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime
64 " you can find below. If you wish to change any of those settings, you should
65 " do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten
66 " everytime an upgrade of the vim packages is performed. It is recommended to
67 " make changes after sourcing debian.vim since it alters the value of the
68 " 'compatible' option.
70 " This line should not be removed as it ensures that various options are
71 " properly set to work with the Vim-related packages available in Debian.
74 " Uncomment the next line to make Vim more Vi-compatible
75 " NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous
76 " options, so any other options should be set AFTER setting 'compatible'.
79 " Vim5 and later versions support syntax highlighting. Uncommenting the next
80 " line enables syntax highlighting by default.
83 " If using a dark background within the editing area and syntax highlighting
84 " turn on this option as well
87 " Uncomment the following to have Vim jump to the last position when
91 au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
92 \| exe "normal! g'\"" | endif
95 " Uncomment the following to have Vim load indentation rules and plugins
96 " according to the detected filetype.
98 filetype plugin indent on
101 " The following are commented out as they cause vim to behave a lot
102 " differently from regular Vi. They are highly recommended though.
103 set showcmd " Show (partial) command in status line.
104 "set showmatch " Show matching brackets.
105 set ignorecase " Do case insensitive matching
106 "set smartcase " Do smart case matching
107 "set incsearch " Incremental search
108 set autowrite " Automatically save before commands like :next and :make
109 "set hidden " Hide buffers when they are abandoned
110 "set mouse=a " Enable mouse usage (all modes) in terminals
112 " Source a global configuration file if available
113 " XXX Deprecated, please move your changes here in /etc/vim/vimrc
114 if filereadable("/etc/vim/vimrc.local")
115 source /etc/vim/vimrc.local
121 Scaricare il pacchetto ``xtightvncviewer`` e lo script ``guarda.sh`` che deve essere reso eseguibile in una posizione (collocazione nel *path* degli utenti, es ``echo $PATH`` per visualizzare l'attuale path ) comoda per gli utenti.
127 wget http://debian.piffa.net/guarda.sh
131 Si noti che non e' possibile lanciare un applicativo sul server grafico di un utente da una shell in cui si e' loggati come altro utente, anchee se root. E' quindi necessario essere l'utente di sistema che si e' loggato inizialmente nella sessione grafica per poter lanciare lo script guarda.sh .
133 Controllare con ``whoami`` di essere l'utente normale (es ``utente | studente | proprio nome`` ), in caso si sia assunta una altra ``id`` si apra un altra shell o si esca da quella attuale con ``exit`` .
135 Lista dei pacchetti di base
136 -----------------------------
138 I pacchetti installati generalmente [#]_ per poter seguire le lezioni sono::
140 kde-core kdm kde-i18n-it xorg vim less xtightvncviewer
142 .. [#] ``kde-core`` e' piu' leggero del pacchetto ``kde``
145 ---------------------
147 Vediamo i due file principali di apt:
149 * ``/etc/apt/sources.list``
151 * ``/etc/apt/apt.conf``
156 Questo file contiene i sorgenti da cui *apt* preleva i pacchetti da installare tramite *dpkg*, vengono quindi precisati i metodi (ad es. http / ftp / cdrom / file), la release che si vuole tracciare (es ``stable, testing, unstable`` oppure i corrispondenti release name es: ``Lenny, Squeeze, Sid``), i rami di interesse (es: ``main`` che e' l'archivio principale, ``non-free`` per il software non libero, ``contrib`` per i pacchetti non realizzati dai manutentori ufficiali).
158 Gli archivi sono generalmente:
160 * ``deb`` per pacchetti Debian binari
162 * ``deb-src`` per i pacchetti sorgenti (quindi da compilare, come il kernel) degli stessi pacchetti binari. In genere se non compilate spesso potete evitare di tracciare i sorgenti per risparmiare tempo e banda.
165 ``/etc/apt/sources.list`` ::
167 # esempio di accesso a un CDROM:
168 # cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official i386 kde-CD Binary-1 20090$
170 # Archivio principale debian via http su piffa.net,
171 # non funziona al difuori dell'aula dei corsi
172 deb http://debian.piffa.net/debian/ Lenny main
173 # deb http://debian.piffa.net/debian/ Lenny non-free contrib
175 # Mirror da kernel.org da usare a casa:
176 deb http://mirrors.eu.kernel.org/debian/ Lenny main
178 # Security dal sito principale
179 deb http://security.debian.org/ Lenny/updates main
180 deb-src http://security.debian.org/ Lenny/updates main
182 # Debian volatile per le cose soggette a cambiamenti non legati
183 # a dinamiche di sicurezza
184 deb http://volatile.debian.org/debian-volatile Lenny/volatile main
185 deb-src http://volatile.debian.org/debian-volatile Lenny/volatile main
187 # Esempio di accesso a un filesystem locale contenente i pacchetti:
188 # deb file:/mnt/mirror Sid main non-free contrib
194 Questo file contiene le opzioni di apt, come ad esempio il proxy::
196 Acquire::http::Proxy "http://10.10.208.254:3128"
214 Samba e' un progetto libero che fornisce servizi di condivisione di file e stampanti a client SMB/CIFS.
216 Samba e' liberamente disponibile, al contrario di altre implementazioni SMB/CIFS, e permette di ottenere interoperabilità tra Linux, Unix, Mac OS X e Windows.
218 Samba e' un software che può girare su piattaforme che non siano Microsoft Windows, per esempio, UNIX, Linux, IBM System 390, OpenVMS e altri sistemi operativi. Samba utilizza il protocollo TCP/IP utilizzando i servizi offerti sul server ospite. Quando correttamente configurato, permette di interagire con client o server Microsoft Windows come se fosse un file e print server Microsoft agendo da Primary Domain Controller (PDC) o come Backup Domain Controller, può inoltre prendere parte ad un dominio Active Directory.
220 Pacchetti da installare per utilizzare Samba in modalita' client [#]_ ::
225 Pacchetti da installare per utilizzare Samba in modalita' server::
227 samba smbfs smbclient
229 .. [#] Anche se nato per le i sistemi Windows, Samba puo' essere usato anche per montare cartelle sotto GNU/Linux come alternativa a NFS. Per la condivisione di stampanti sarebbe invece opportuno intervenire direttamente su ``CUPS``.
231 Durante la prima installazione viene chiesto il nome del gruppo di appartenenza, il default per Windows e' ``WORKGROUP``. In aula usiamo invece ``208`` .
233 Se necessario per riconfigurare Samba si usi il comando::
235 dpkg-reconfigure samba-common
237 Quando si utilizza Samba bisogna tener conto di 3 livelli di password (e generalmente volete usare *sempre la stessa password* per ognuno di questi) e delle differenze tra le modalita' di autenticazione (e quindi anche di criptaggio delle passwords) usate da sistemi GNU/Linux e Windows:
239 1 Sistema \*Unix ( GNU/Linux )
240 E' la password dell'utente di sistema che viene usata sul sistema operativo su cui gira il software Samba. E' importante tenere conto anche delle *user-id* e *group-id* degli utenti che dovranno fisicamente scrivere sui file system. Se un utente non puo' scrivere in una certa posizione del file system (ad esempio nella cartella ``/mnt/condivisione`` che sara' stata necessariamente creata inizialmente dall'utente ``root``) per mancanza di privilegi allora neanche Samba potra' farlo nel momento in mette a disposizione la risorsa all'utente. Se si montano file-system dedicati per le condivisioni controllare i permessi e propieta' dei *punti di mount**.
241 Queste passwords sono salvate nel solito file /etc/shadow (richiamato da /etc/passwd).
243 2 Password per l'applicativo Samba
244 Samba deve essere compatibile con Windows e quindi utilizzare un sistema di criptazione delle password diverso da /etc/shadow.a Le password per Samba possono essere gestite ad esempio col comando ``smbpasswd`` e vengono generalmente salvate all'interno di ``/var/lib/samba/passdb.tdb`` .
246 3 Password per Windows.
247 Gli utenti Windows effettuano il log-in alla partenza della sessione di Windows. Se si avra' l'accortezza di usare sempre stessa password data precedentemente anche a Windows (o viceversa impostare la password per GNU/Linux / Samba uguale a quella di Windows) l'utente potra' accedere automaticamente alle condivisioni a lui disponibili.
253 Creiamo per primo l'utente sotto GNU/Linux, facendo attenzione a *non dargli una shell di sistema*. Gli utenti Windows che accedono al server solo per le condivisioni non hanno bisogno di poter eseguire comandi sul server!
255 Creazione di un utente denominato sambo::
257 adduser --shell /bin/false sambo
259 Nel file ``/etc/passwd`` avremo qualcosa come::
261 sambo:x:1001:1001:Sambo utente Samba!,,,:/home/sambo:/bin/false
264 Aggiunta dell'utente al database delle password per Samba e generazione della sua password:
268 Se successivamente si vorra' modificare la password di un utente gia' esistente si usi:
273 La password sotto Windows verra' modificata sul sistema Windows.
275 Creare la condivisione
276 ------------------------
278 La condivisione altro non e' che una cartella sul server che viene resa disponibile sui client negoziando l'accesso in base all'autenticazione tramite user-name / password. Si decida se fisicamente debba risiedere nella home di un utente (nel caso quest'ultimo ne sia l'unico fruitore) o in una cartella in /mnt/ nel caso piu' utenti accedano a questa. Nel secondo caso si gestiscano gli accessi sotto GNU/Linux tramite i gruppi.
280 Creazione della risorsa sambo_share nella home dell'utente sambo::
282 # mkdir /home/sambo/sambo_share
283 # chown sambo:sambo /home/sambo/sambo_share/
285 Bisognerebbe notare i permessi di esecuzione del file-system che ospita la cartella. Se i file che saranno contenuti nella condivisione saranno da usarsi sotto Windows non c'e' motivo che questi siano eseguibili sotto GNU/Linux.
286 Si potrebbe avere quindi, ipotizzando una condivisione in /mnt/share che consista in un file system dedicato:
290 /dev/hda10 /mnt/share ext3 rw,nosuid,noexec 0 3
292 Si noti anche l'uso di *nosuid* per evitare la possibilita' di eseguire programmi con credenziali diverse da quelle originali.
294 Configurazione dell'applicativo Samba vero e proprio.
295 ------------------------------------------------------
297 Avendo preparato gli utenti (ancora una volta: non si dia una shell completa a un utente che serve solo per Samba o la posta elettronica) e la cartella sul file system si puo' procedere a configurare la condivisione su Samba.
300 /etc/samba/smb.conf riga ~235 , Share Definitions (in vim si usi 235gg )::
303 # Percorso della cartella condivisa
304 path = /home/sambo/sambo_share
305 # Se gli utenti possono scrivere / modificare file
307 # Negoziazione degli accessi su base utenti / passwords
309 # Altri parametri opzionali di interesse
310 # Se posso vedere la condivisione da esplora risorse
311 # anche se non ho i privilegi per accedervi.
313 # Commento indicativo della risorsa
314 comment = Condivisione per Sambo
316 Dopo aver salvato il file si puo' fare un primo controllo tramite l'utility testparm , che controlla la sintassi del file di configurazione di Samba. Se questo non rileva problemi si puo' procedere a un /etc/samba# /etc/init.d/samba restart .
322 Come testare il servizio
326 smbclient -U sambo -L localhost
328 Questo comando permette di esplorare la risorsa qualificandosi come utente, in questo modo potete testare il corretto funzionamento dell'autenticazione. Si provi inizialmente a sbagliare la password deliberatamente, poi a inserirla correttamente: dovrebbero essere visibili le risorse disponibili al solo utente sambo: la suo /home e la cartella samba_share::
330 Sharename Type Comment
331 --------- ---- -------
332 sambo_share Disk Condivisione per Sambo
333 print$ Disk Printer Drivers
334 IPC$ IPC IPC Service (base server)
335 sambo Disk Home Directories
337 In alternativa e' possibile montare realmente la condivisone anche su GNU/Linux tramite un client per samba e testare il corretto funzionamento::
339 mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo
344 * controllato fino alla riga 289
346 * definizioni degli applicativi prese direttamente da wikipedia
348 sintassi: in ``monospace`` :