PDA

View Full Version : eseguire samba alla fine del boot: come?


nicgalla
07-12-2004, 17:40
Ciao ragazzi,
ho un PC nell'ufficio di un cliente con una scheda di rete wireless basata sul chipset Intersil Prism54 e su cui ho installato Mandrake 10.1 community.
Sono riuscito a far funzionare correttamente la scheda di rete, con non poche difficoltà seguendo istruzioni trovate sul web, ma non riesco a far partire la connessione Samba all'unità di rete del server in automatico. Se faccio "esegui mount" dal Pannello di controllo Mandrake funziona.
Questo per un motivo:
il modo per far funzionare la scheda Prism54 è quello di inserire un delay di qualche secondo prima di eseguire IWCONFIG. La connessione SMB, che è contenuta in FSTAB, viene eseguita prima che la scheda wireless sia avviata.

Sapete dirmi dunque dove mettere la stringa MOUNT SMBFS ecc.... in modo tale che sia l'ultima cosa ad essere eseguita nel boot?
E' importante che venga eseguita con i privilegi di root.

Attenzione: ho eseguito il metodo suggerito in fedoraforum.org (http://www.fedoraforum.org/forum/showthread.php?p=127826)

che è il seguente:

Another option is to write a bash script that would do this for you and place it in your init.d directory, and placing and entry into init 5 to start it.
A script would look something like:
Code:
#!/bin/bash
/bin/mount -t smbfs -o username=username , password=password //remotecomp/test /data/test

Save to a text file, make it executable chmod +x file
copy it to /etc/rc.d/init.d
then make a link of that file into /etc/rc.d/rc5.d/ ln -s /etc/rc.d/init.d/file /etc/rc.d/rc5.d/S99file
The S99 tells init to run it at the end of the init process.

Il problema è che il comando LN non crea nessun S99file. Nella directory rc5.d c'è già un file vuoto chiamato S99locale, gli ho scritto dentro la stringa di Samba ma la connessione continua a non essere ripristinata.

Ah se solo ci fosse la cartella "Esecuzione automatica" di Windows... cmq se riesco a farlo andare darei una bella mano nella diffusione di Linux visto che lo potrei installare sui 10 pc dell'ufficio. HELP ME!!!!

Pang
07-12-2004, 20:29
Nella directory /etc/init.d/ crea un file di testo e all'interno di esso scrivi la stringa x la connessione al server (mount -t smbfs //server/condivisa /mnt/samba -o username=username,password=password), rendi eseguibile il file (chmod 755 /etc/init.d/file) e dopodichè crea un link simbolico nella directory d'avvio del tuo runlevel, che dovrebbe essere il 5 (controlla in inittab x sicurezza) in questo modo: ln -s /etc/init.d/file /etc/rc5.d/S99file . In questo modo lo script "file" sarà l'ultimo script ad essere eseguito.

nicgalla
08-12-2004, 02:11
Ciao Pang,
grazie per la risposta.

Mi hai suggerito il metodo che avevo già trovato, e che non ha funzionato, ma può darsi che vi sia un errore o abbia sbagliato qualcosa io.
- Il percorso giusto per il file è /etc/rc.d/init.d o /etc/init.d/ ?
- nel file di testo dunque non metto #!/bin/bash?
- inittab è un file? in quale dir si trova?
- nella dir rc5.d c'è già un file chiamato S99local. devo cancellarlo o lo ignoro?
- se chiamo il file pippo, il link simbolico a pippo più chiamarsi S99file o dev'essere per forsa S99pippo?
- può essere che qualche minuscolo dove andava il maiuscolo non abbia fatto andare qualcosa? non mi ricordavo che linux è case sensitive

scusa per queste domande da niubbone ma oggi ci ho spaccato la testa senza riuscirci, speriamo bene :)

Pang
08-12-2004, 07:26
- Guarda io uso Debian è la directory che contiene gli script d'avvio è /etc/init.d, non so francamente se Mandrake usa la stessa directory, in linea di massima si, ma aspetterei qualcuno più esperto di me (tipo ilsensine che usa mandrake) su questa distro.
- Poi nel file di testo #!/bin/bash conviene sempre metterlo, serve a dire all'so che lo script deve essere eseguito con la shell bash.
- inittab è un file e si trova nella directory /etc, tutti i file di configurazione del sistema sono in quella directory. Aprendo questo file da root con un editor di testo troverai una riga di questo tipo: "id:2:initdefault:". Controlla il numero perchè ad esso corrisponde la directory rc; nel mio caso al runlevel 2 i link simbolici d'avvio si trovano in /etc/rc2.d
- s99local invoca lo script, se non ricordo male, /etc/rc.local, che contiene comandi vari che vengono eseguiti all'avvio. E' una specie di contenitore generale di comandi, un pò come sulla mia Debian c'è /etc/init.d/bootmisc.sh. Se non ho detto castronerie, hai due possibilità: o lo ignori bellamente, oppure la stringa di samba potresti inserirla alla fine di quel file (/etc/rc.local), risparmiandoti così un pò di sbattimenti.
- Se il file lo chiami pippo, il link simbolico deve chiamarsi S99pippo, che significa: avvia (start) per ultimo (99) lo script pippo
- Linux a differenza di Windows è un sistema operativo case sensitive, quindi devi fare attenzione, inoltre tutti i comandi e le opzioni dei comandi sono sempre minuscoli.

Ciao

nicgalla
08-12-2004, 12:01
grazie Pang, sei stato molto gentile. Domani proverò e ti farò sapere.
Certo che con tutti i pannelli di controllo e opzioni varie in KDE qualcosa simile a Esecuzione automatica potevano metterlo :p

Knudson
08-12-2004, 12:33
ciao

al limite se non riesci a configurare a mano puoi sempre ricorrere a programmini con GUI, tipo swat se non ricordo male :)

ciao!

nicgalla
08-12-2004, 23:44
Hmmm..SWAT non credo sia installato nella Mandrake, però proverò a dare un'occhiata nei pacchetti. Dubito che ci sia un'opzione simile, d'altronde è colpa del driver per la Prism che ci impiega cent'anni a inizializzarsi...

Pang
09-12-2004, 06:36
Swat è un interfaccia grafica che serve a configurare samba lato server, non lato client

nicgalla
09-12-2004, 12:22
Ciao ragazzi, sono riuscito a farlo funzionare inserendo la stringa nel file rc.local, come avevo già provato. Senza contare però che avevo copiato la stringa da fstab e che c'erano due zeri alla fine che andavano tolti. Probabilmente servono solo in fstab.

Ora però c'è un altro problema: tutti i file sono aperti in sola lettura e ovviamente non è possibile salvare nemmeno con un nome nuovo.

Ho digitato mount nella console e l'unità di rete non contiene (rw) come le altre unità ma c'è scritto (0) [nb. non era una o, c'era il puntino dentro)

Mi sono letto la descrizione di mount con man, e ho visto che il parametro di scrittura è -w. Però dovrebbe essere di default, cmq l'ho messo e come risultato ho ottenuto che non si è connesso proprio.

Faccio notare che sul server windows ho impostato tutti i diritti in lettura/scrittura, dunque se fosse un problema di diritti non dovrebbe nemmeno leggere.

La stringa mount che uso è questa (vado a memoria)
/bin/mount //server/dati /mnt/dati -t smbfs -o user, credentials=/etc/samba/giuseppe.auth


HELP!!! questa installazione è più difficile del previsto...

nicgalla
09-12-2004, 14:49
ragazzi ho capito cosa non va, se mi loggo come root ho i privilegi di lettura/scrittura, se entro come utente solo quelli di lettura. Però io ho mantenuto la stessa username (giuseppe) e password sia nel server windows xp sia nel client linux.
Ho provato a usare la dicitura "users" al posto di "user" nella stringa mount ma non cambia. cosa faccio?

ilsensine
09-12-2004, 16:08
mount -t smbfs //share /mount/point -o gid=<gruppo>,fmask=770,dmask=770,<altre opzioni>

Così lo share risulterà leggibile e scrivibile da tutti gli utenti appartenenti al gruppo indicato. Non ti consiglio di fare in altro modo, ad es. rendendo la directory scrivibile da chiunque, in modo da non introdurre altri buchi neri di sicurezza oltre a quelli già introdotti con questo comando.
Io personalmente non farei così, in quanto l'utility smbmount può essere usata da qualsiasi utente senza i privilegi di root, e le interfacce grafiche per essa non mancano (ad es. linneighborhood).

nicgalla
09-12-2004, 17:30
Ti ringrazio Ilsensine per avermi risposto, ti farò sapere se avrò successo o meno.
Per quanto riguarda il problema sicurezza non mi preoccupo molto perchè di sicurezza li proprio non ce n'è... d'altronde ci sono anche client win98 che basta fare annulla ed entrano... fra l'altro ho dovuto disattivare WPA perchè non ho trovato il modo di configurarlo, ora il wi-fi è senza protezione (!) metterò una wep key.
Interfacce grafiche: detto da utente novizio sotto questo aspetto c'è ancora tanta strada da fare, non è possibile che si limitino a scrivere dei settaggi in un file. Credo che nessuna interfaccia mi permetta di decidere a che punto del boot effettuare la connessione; certo che se il driver prism54 non fosse mongolo, le GUI funzionerebbero sicuramente.

nicgalla
10-12-2004, 15:46
Caro Mod,
il comando mount che mi hai dato funziona benone!

Ora però c'è un problema più grave: mi hanno detto di installare dei font mancanti (non c'è l'Arial!), allora dal pannello di controllo Mandrake l'ho installato prendendoli da Windows. Inizialmente non si avviava più Openoffice, così ho rimosso il font ma l'utilità si era chiusa all'improvviso. OO però aveva ripreso a funzionare.
Ho riavviato e la GUI non si carica più!

Escono questi errori:

(EE) failed to load module "usr/x11r6/lib/modules/extensions/libglx.a" (once-only module)
(WW) SIS(0) failed to set up write-combining range (0XC000000, 0X2000000)

Fatal server error: could not open default font 'fixed'

Insomma i font l'hanno fatto incazzare, come ci vuol poco a farlo crashare. Ma ditemi, posso ripristinarlo con qualche comando o cancellando qualche file, oppure mi conviene reinstallare?

ilsensine
10-12-2004, 16:25
XFdrake
Riconfigurando l'interfaccia grafica, dovrebbe ricreare un file di configurazione utilizzabile.

nicgalla
10-12-2004, 19:14
ho provato il comando che mi hai detto ma non ha funzionato, quando sceglievo "prova" mi usciva il solito errore.

Ho cercato informazioni sul write-combining range ma nulla di utile, ho fatto prima a reinstallare.

Certo che è bastata una banale installazione di un paio di font TrueType (presi da Windows dunque non corrotti) per mandare in crisi l'interfaccia grafica!

Knudson
10-12-2004, 20:07
Originariamente inviato da Pang
Swat è un interfaccia grafica che serve a configurare samba lato server, non lato client

pensavo gli servisse sul server, sorry capito male ^_^