# proftpd e permessi di lettura/scrittura cartelle [~Risolto]

## ckx3009

Buondi', mi trovo con proftpd e un leggero dubbio riguardo ai permessi che dovrebbero avere le sue cartelle. Spiego come ho il tutto:

ho creato un utente con cui avvio il server ftp (quello che si setta nella configurazione), poi, usando proftpd administrator, ho creato i suoi utenti con cui si puo' loggare nel server ftp per scambio files.

la cartella che ho dedicato a questo e' /ftp e al suo interno c'e' una cartella /upload che e' quella dove l'utente puo' caricare i files.

ovviamente la /ftp e le sue sottocartelle appartengono all'utente con cui avvio il server.

il problema e' che per permettere agli utenti l'upload, e' necessario dare permesso di lettura/scrittura/esecuzione a tutti (mod xx7) e per me e' una cosa abbastanza assurda perche' mancherebbe totalmente di sicurezza. 

non posso nemmeno togliere i permessi di accesso alla /ftp perche' in quel modo anche le sottocartelle rimangono inaccessibili.

ho provato poi ad avviare il server ftp mettendo come root l'utente che lo avvia, ma il problema continua a presentarsi, come se non fosse l'utente con cui e' avviato il server a scrivere nelle sue cartelle ma altri utenti che in realta' non ci sono.

dov'e' che sbaglio?Last edited by ckx3009 on Fri Feb 27, 2009 7:37 pm; edited 2 times in total

----------

## Apetrini

Allora se ho capito bene la tua situazione dovresti far cosi:

- Tutti gli utenti che dovrebbero poter fare upload di file nella relativa directory dovrebbero far parte di uno stesso gruppo, per esempio gruppo "uploaders". Da qui setti i permessi alla directory upload (X6X) e definisci il gruppo di appartenenza della cartella come "uploaders";

in questo modo il padrone della cartella è sempre l'utente da te scelto, ma il gruppo di appartenenza è "uploaders" e solo gli utenti dentro questo gruppo potranno fare upload di file, gli altri no, in quanto i permessi puoi settarli X60 o nel modoc he piu ti piace.

P.s. ovviamente ho scritto X6X perche non credo che ti serva il diritto di esecuzione.

Edit: dimenticavo di dirti, se hai bisogno di un sistema più complesso ci sono le acl, ma per quello che devi fare dovrebbe essere più che sufficiente quello che ti ho indicato.

----------

## ckx3009

Si, ho capito che vuoi dire, pero' la questione degli utenti e' un po' piu' ostica:

differenzio utente che logga nell'ftp e utente del pc (quello che sta nell' /etc/group).

l'unico utente reale e' quello che dovrebbe avviare il server ftp, ma gli utenti che loggano in questo server, creati con proftp administrator, esistono solo per l'ftp (e sono stoccati nel solito database mysql, leggibile al server ftp che infatti permette loro di loggare ma non di scrivere).

ma, seguendo quello che dici tu, dovrei creare degli utenti reali, magari con lo stesso UID che gli ha assegnato il server ftp e metterli tutti nello stesso gruppo in modo che abbiano i permessi di lettura e scrittura, giusto?

edit: non penso che mi serva un sistema troppo incasinato, penso che gia' cosi' sia sufficiente  :Razz: 

----------

## Apetrini

Questa è una strada sconsigliata. E poi creare un utente reale per ogni utente virtuale mi sembra fuori luogo, se no fa direttamente a meno degli utenti virtuali.

Sbirciando velocemente nel manuale di proftpd ho trovato questa direttiva:

```

SQLDefaultGID

....

The SQLDefaultGID directive configures the default GID for users. This value must be greater than any configured SQLMinUserGID.

```

Non so se è fatto per funzionare in questo modo, ma puoi provare a creare un gruppo reale e poi tenere tutti gli utenti virtuali, ma assegnando a questi il GID del gruppo reale. Se no dai un occhio al manuale che dovrebbe averne di modi...

----------

## ckx3009

 *Apetrini wrote:*   

> puoi provare a creare un gruppo reale e poi tenere tutti gli utenti virtuali, ma assegnando a questi il GID del gruppo reale.

 

si, funziona!

pero' e' stupida come cosa: proftp administrator permette la creazione di utenti con uid e gid progressivi a partire da 10000 mentre gli utenti reali son creati a parte con id progressivi da 1000.

quindi non si "incontreranno" mai, a meno di non andare a modificare a manina nel mysql gli ID vari.

stupida come cosa...ma ora funzia  :Smile: 

----------

## Apetrini

Il sistema è fatto affinché le cose non collidano "accidentalmente".

Immaginati se un sistema dopo aver aggiunto utenti si sfasci a causa di collisioni strane non volute.

Comunque la cosa è documentata e proftpd non è assolutamente l'unico software che adotta questa politica, anzi.

Ricordati che il numero di partenza per la generazione id di utenti è impostabile a piacimento, da un occhio al manuale; cosi se uno proprio vuole che si incontrino, si incontreranno, ma di default si cerca di evitare la cosa.

Edit: ricordati il tag se il problema è risolto.

----------

## ckx3009

ma il sistema idiota, secondo me, e' quello dell'ftp che non puo' scrivere nelle cartelle che sono assegnate all'utente che avvia il server. per me ha poco senso che si debbano avere utenti e gruppi reali per accedere e scrivere.

----------

## randomaze

 *ckx3009 wrote:*   

> ma il sistema idiota, secondo me, e' quello dell'ftp che non puo' scrivere nelle cartelle che sono assegnate all'utente che avvia il server.

 

E se l'utente che avvia il server è root?

----------

## Apetrini

Se ho capito bene la critica era mossa poiché il server anche se gira con i permessi di root poi scrive/legge secondo i privilegi dell'utente che è loggato e che vuole eseguire tali operazioni.

Questo è normale poiché l'ftp usa direttamente il filesystem per gestire i permessi.

----------

