Guarda, l'ho fatto 30 secondi fa perchè mi serviva trasferire dei file dal mio Slamd64 a un WXPSP2 e non mi andava di usare la chiavetta
Passo 0: Accertarsi che il router veda le macchine e che le macchine si vedano tra loro (con
ping è tutto molto semplice).
Passo 1: Assicurarsi che nessun firewall di nessun tipo blocchi le connessioni tra porte o IP. Tornare al passo 0 in caso di problemi. Spesso se due macchine non si vedono è perchè una delle due ha un firewall attivo che blocca una rete, una porta o un IP.
Passo 2: Abilitare le condivisioni in
smb.conf e in Condivisione risorse in Windows, su ogni singola cartella che si vuole condividere.
File di esempio smb.conf:
#======================= Global Settings =====================================
[global]
workgroup = WALTER
server string = Samba Server
hosts allow = 192.168.1. 127.
printing = cups
log file = /var/log/samba.%m
max log size = 50
#dns proxy = no
#map to guest = Bad User
restrict anonymous = no
guest ok = yes
domain master = no
preferred master = no
max protocol = NT
acl compatibility = winnt
ldap ssl = No
server signing = Auto
#============================ Share Definitions ==============================
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = yes
printable = yes
[Home]
comment = Angelus' Home
path = /home/masterz3d
guest ok = yes
read only = no
create mask = 0755
[Temp]
comment = Angelus' Temp
path = /home/temp
guest ok = yes
[RAID1]
comment = External RAID1 disk
path = /mnt/ext/raid
guest ok = yes
writeable = yes
create mask = 755
[Little]
comment = Little external 80G
path = /mnt/ext/80
guest ok = yes
read only = no
create mask = 755
[DVD]
comment = Angelus' DVD
path = /mnt/dvd
guest ok = yes
read only = yes
(I commenti sono preceduti da un cancelletto (#).
Passo 3: Verificare la stabilità della configurazione con
testparm. Semplicemente, da terminale digiti
testparm
e premi invio. Tutte le operazioni sui file di configurazione e sugli utenti vanno fatte da root.
Passo 4: Abilitare un utente da Ubuntu che possa loggare nel sistema GNU. Si fa con
useradd e
passwd per definirne la password.
Passo 5: (Facoltativo) Abilitare gli IP relativi al computer membro della rete nel file
/etc/hosts. Lo stesso IP che compare in
hosts deve essere rappresentato con la classe di IP che compare in smb.conf alla riga
hosts allow (192.168.1. nel mio caso, più 127. per il loopback).
Esempio: se metti la riga
192.168.0.15 WXP_pc
in
hosts devi abilitare la classe
192.168.0. in
hosts allow in smb.conf.
Se il passo 5 non è seguito, semplicemente invece di chiamare quel computer per nome (WXP_pc) lo si dovrà chiamare per IP (192.168.0.15).
Nemmeno
resolv.conf è obbligatorio. Serve solo in caso di DNS o roba simile. Se tu chiami il PC per IP non servono.
Se non ricordo male questo è tutto. Per il resto puoi accedere da GNU a una partizione WIndows tramite LAN solo montando una unità di rete tramite mount:
mount -t cifs //<ip_computer_o_nome_di_rete>/<risorsa_condivisa> <mount_point> -o user=<utente_creato _per_il_login>
mount chiederà automaticamente la password, se tutto è a posto. Se non è a posto potrà uscire con un errore 22 (Accesso negato), se non ricordo male. Mi pare che per risolverlo devi controllare il firewall o gli utenti.
Se chiede la password, la immetti e non funziona devi controllare gli utenti. Se immetti la password e funziona puoi accedere alla partizione di rete direttamente dal mount point che hai fissato.
Da Windows è più semplice. Vai su Risorse di rete e fai una ricerca dei computer connessi. Se è tutto a posto (permessi, smb.conf, host e utenti) dovrebbe mostrare un computer in rete. Ci fai doppio clic e dovrebbe chiedere un username e una password perchè samba è settato con modalità user (il default). Qui entra in gioco l'utente che hai creato. Non usare root, usa l'utente che hai creato. Mi pare che dipende anche da come Samba è stato compilato: un flag in compilazione proibisce l'accesso da root esterno.
Se è andato tutto bene entri nel computer in rete e vedi le cartelle condivise. Qui la fa da padrone smb.conf, e infatti vedi che i nomi delle cartelle sono esattametne i nomi che sono stati messi tra parentesi quadre[] nella sezione "Share Definitions". Devono esistere sia i mount point che i dispositivi, altrimenti restituisce errore. Se il mount point esiste e non è montato entri semplicemente in una cartella vuota. Per il resto dipende dai permessi che hai settato nella cartella condivisa e in smb.conf.