# [Solved] Samba e permessi

## Luc484

Salve a tutti. Ci sto diventando pazzo con questa cosa, quindi chiedo a voi prima di ammazzare qualcuno  :Smile: . Stavo sistemando alcune cose che non funzionavano bene nella mia configurazione di samba, e come ogni volta che tocco anche una stupidaggine, non funziona più nulla.

Allora, ho una share impostata così:

```
[chiara]

comment = Public Files

guest ok = no

#create mask = 0766

path = /path/chiara

browseable = yes

writable = yes

valid users = etta

hosts allow = 127.0.0.1 192.168.0.0/24

hosts deny = 0.0.0.0/0
```

ecco qui... la mia intenzione sarebbe permettere l'accesso da un pc Windows XP tramite inserimento di user e password. Ora, l'accesso da mac funziona correttamente, mentre Windows mi dice che non si possiedono i diritti di accesso necessari. Ora, quella directory /path/chiara e tutti i files al suo interno sono leggibili e scrivibili da tutto il mondo conosciuto, li ho impostati così perché le ho provate tutte. Ad ogni modo i proprietari sono l'utente luca del gruppo users (questo perché i file che arrivano in quella dir arrivano da mldonkey, ed ho visto che li pone con quei proprietari). Ad ogni modo io ho messo etta (ossia l'utente cui con si dovrebbe collegare Windows XP) come appartenente anche al gruppo users. Ovviamente Windows XP proviene dall'interno della stessa rete. Loggandomi sul server stesso come etta posso accedere chiaramente e vedere la directory /path/chiara... come mai quindi Windows XP non può?

Non solo, ma ho altre shares all'interno, a cui si accede con altri utenti. mac non ha problemi, le uso tutti i giorni e funziona benissimo. Ho provato ora ad accedere a quelle da Windows XP con gli stessi identici dati... e non ha i permessi.

Non solo, ma non capisco nemmeno con quale logica Windows XP richieda o meno i dati per l'accesso alle shares... cioè, una volta mi chiede di inserire i dati prima di mandarmi a quel paese, 8 volte no...

Riuscite a vedere qualche errore in questa configurazione? Questi sono i permessi attuali della directory chiara:

```
luca@cluca /path $ ls -l chiara

total 6771452

-rw-rwxrwx 1 etta users file1

-rw-rwxrwx 1 etta users file2

...
```

ho provato come vedete anche a mettere come owner l'utente stesso, cosa che però preferirei non fosse. Vorrei che l'utente proprietario fosse un altro. Però ora è così, con tutti i permessi impostati, eppure Windows si lamenta dicendo che non ha i permessi e di contattare l'amministratore della rete... mi sarò chiamato almeno 40 volte oggi...  :Very Happy: . Ovviamente per fare tutto questo ho seguito la guida di Gentoo.

Qualsiasi consiglio o correzione sono i benvenuti! Ciao e grazie!Last edited by Luc484 on Wed Feb 13, 2008 10:39 am; edited 1 time in total

----------

## Peach

controlla il workgroup di windows (almeno cambiagli il default workgroup). ho notato svariati problemi legati a quello

----------

## Luc484

Ho provato a renderlo uguale a quello impostato in samba, ma non ha cambiato nulla... il nome è proprio WORKGROUP.

----------

## Peach

 *Luc484 wrote:*   

> il nome è proprio WORKGROUP.

 

cambialo

usa un tuo workgroup tipo "PIPPO", ma cambialo. Io ho avuto problemi proprio legati all'uso del nome di workgroup di default. Praticamente era un po' come l'utente guest disabilitato. Non ho indagato a fondo il problema ma il problema è scomparso dopo il cambio.

in ogni caso posteresti pure la configurazione generica di samba?

EDIT: disabilita il firewall di windows che "potrebbe" creare ulteriori problemi.

in più volevo sapere se hai aggiunto l'utente a samba con smbpasswd

----------

## Luc484

oh... curioso... in effetti uno dei client che funzionava correttamente prima apparteneva ad un workgroup differente. Faccio subito il cambio.

Ecco qui tutto il file smb.conf:

```
[global]

workgroup = WORKGROUP

server string = Samba Server %v

printcap name = cups

printing = cups

load printers = yes

cups options = "raw"

use client driver = no

log file = /var/log/samba/log.%m

max log size = 50

socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192

interfaces = lo eth1

bind interfaces only = yes

security = user

restrict anonymous = no

domain master = no

preferred master = no

max protocol = NT

ldap ssl = No

server signing = Auto

guest account = luca

...
```

dopo i puntini ci sono le varie condivisioni, tutte più o meno come quella di prima. Ora mi pare che non funzioni praticamente entrambe quelle a cui accedo da postazioni Windows, tutte differenti peraltro.

I firewall dei sistemi Windows sono tutti già rimossi. C'è soltanto quello del mac, che però funziona già.

Grazie mille dell'aiuto!

EDIT: Anche cambiando i gruppi sembra non accedere dando lo stesso identico messaggio.

EDIT2: E continuo a non capire perché una directory richieda i dati di login e l'altra no... e sono configurate in modo identico...

----------

## djinnZ

 *Luc484 wrote:*   

> server string = Samba Server %v

 male, cambia subito che xp è tanto cretino da credere che sia un altro computer di un'altra rete ogni volta che aggiorni samba e perderà un sacco di tempo a cercare di capire cosa è successo.

Per risolvere i problemi del workgroup alle volte basta cancellare la cache di samba e le condivisioni su windozz.

se metti 

```
guest account = luca
```

 e 

```
restrict anonymous = no
```

 vuol dire che se non c'è perfetta corrispondenza tra gli utonti unix e windows (in pratica sempre) accede come anonimo usando la password di luca.

Quindi togli il restrict anonimous, imposta con 

```
smbpasswd
```

 un nome utente e password su samba uguale al nome utente di windows, se detto nome non è in passd/shadow su unix puoi anche impostare una corrispondenza tramite smbusers.

Per esempio se hai etta nel passwd di linux ed Etta come nome utente di windows devi mettere 

```
Etta = etta
```

 in smbusers

----------

## Luc484

Il problema è che non posso conoscere a priori il nome dell'account windows su cui si loggerà l'utente. Purtroppo continua proprio a non funzionare. Adesso finalmente mi viene richiesta user e password, ma quando le inserisco mi ritorna fuori la schermata di login, non si capisce neanche se fossero sbagliati o cos'altro.

Per di più non riesco neanche a concedere accesso libero a quelle directory. Toglienda valid user ed aggiungendo guest ok = yes mi chiede comunque una password, ed accede inserendo la password del guest account...

Che sbaglio?

Grazie mille!

----------

## djinnZ

direttive: force user (usa solo l'utente assegnato) o guest only (usa solo l'accesso anonimo) in congiunzione con guest = user (sulla vecchia 2.0 funzionava anche per share e non solo in [global] ma credo che fosse un errore).

Se non ti è chiaro il metodo appena ho tempo ti spiego i due modi di risolvere la cosa.[/code]

----------

## Luc484

Se ti fosse possibile sarebbe una gran cosa. Ho riseguito nuovamente anche la guida su samba.org, ma non c'è nulla da fare. Funziona solo quando pongo guest, ma ovviamente in quel caso entra con l'account guest, che non è quello che mi serve. Ho reinserito l'utente da zero, sia nel sistema che in samba, ma non cambia nulla. Seguendo la guida ho utilizzato force user e force group, ma non ha cambiato nulla. Tra l'altro non capisco con quale criterio chieda i dati per il login. Alle volte li chiede, alle volte semplicemente dice di non avere i diritti. Strano perché ho provato a seguire la guida alla lettera ma proprio non funziona. Ed è abbastanza strano visto che ha funzionato così per mesi e mesi, se non anni.

----------

## djinnZ

Se non vuoi che siano autenticati ti basta

```
public = yes

force user = etta
```

 se vuoi che siano autenticati devi creare uno user sambaguest (o come ti pare) su linux appartenente al gruppo del proprietartio della dir, assegnare una password a guest con smbpasswd ed impostare

```
guest = sambaguest

...

[share]

...

guest only = yes

force mask = 0770
```

 guest only esclude force user e valid users esclude guest only (o viceversa, secondo le versioni di samba), logico. Quando dice di non avere i diritti riprova, anche subito, alle volte capita che non riesca a raccapezzarsi per un momento (avrai cambiato commento per via di quel %v in server string e windozz fa i capricci).

----------

## Luc484

Orca... che casino... aspetta... neanche questo lo posso fare, perché se cambio quello tutto il resto che ora entra con guest non funzionerebbe più... il guest è già un altro utente, ossia il mio. Mi toccherebbe dare la mia password a questo punto... e la cosa non è fattibile...  :Smile:  Per cui caspita si, mi tocca per forza renderle pubbliche quelle directories. Se non fosse che non ho garanzia neanche del pc dai cui accedono e non avendo DNS potrei anche utilizzare l'allow degli ip... che casino! Mai avessi cercato di cambiare qualcosa! Prima funzionava tutto! Non riesco a capire se sono io, oppure se è Windows che fa quello che vuole. Utilizzare due utenti diversi per due directories diverse da qualche giorno è impossibile... va bene, mi arrendo, ormai le ho proprio provate tutte  :Smile: .

Grazie mille per l'aiuto!

EDIT: Aspetta, ma qui devo essere proprio incapace io! Ho impostato in modo che non si dovessere autenticare, forzandoli ad un utente che ha accesso alla directory in questione... ma chiede comunque i dati per il login... Ma è giusto che sia così? Anche con public = yes?

EDIT2: Ok, qualcosa non mi quadra decisamente. Allora, ho riscritto completamente il file di configurazione di samba, ho condiviso una cartella, a cui ho dato i permessi corretti. Alla fine ce l'ho fatta, a parte una piccola stranezza, ma probabilmente è normale. Funziona correttamente. Allora ho detto, adesso ne faccio un altra... bene, l'altra non funziona... mi da il solito messaggio di permessi mancanti... come se i permessi mancassero... eppure giuro che sono identici a quelli dell'altra directory che funziona perfettamente. La configurazione della share è un copia incolla, assolutamente identica. Avete mica qualche idea su cosa possa esserci che non va?

EDIT3: Scoperto l'arcano... Il problema stava nel fatto che le directories avevano i permessi corretti, ma devono avere permessi corretti anche le directory padre fino alla root. A me pare strana questa cosa, ma è così mi pare. Ora però noto una cosa, non è possibile permettere l'accesso ad una condivisione solo ad un utente? Cioè, solo a quello e non agli altri. Ora vedo che gli utenti possono tutti accedere a tutte le directory con i propri dati di login.

Grazie mille per l'aiuto!

EDIT4: Come non detto, ultimo edit. Sembra che ora funzioni come avrebbe dovuto dall'inizio usando valid users. Ciao a tutti!

----------

