# Scrittura su chiavetta usb.

## Maxgr

Scusate mi sono perso nella ricerca di una FAQ, probabilmente non riesco a formulare la querry giusta.

mounto da root una chiavetta usb, tutto ok sda1. da root nessun problema da utente non root leggo ma non riesco a scriverci sopra.

uso hal dbus udev e la chiavetta non e' inserita in /etc/fstab. i permessi, della dir /mnt/ sono (a chiave montata nella dir /pen):

darkstar ~ # ls -l /mnt

totale 16

drwx------ 2 root root    72 27 ott  2004 cdrom

drwx------ 2 root root    48 27 feb  2005 dvd

drwx------ 2 root root    72 27 ott  2004 floppy

drwxr-xr-x 7 root root 16384  1 gen  1970 pen

drwx------ 2 root root    48 26 feb 17:45 pen2

drwx------ 2 root root    48 26 feb 17:45 pen3

drwx------ 2 root root    48 26 feb 17:45 pen4

drw-r--r-- 2 root root    48 30 mar  2005 win

ho aggiunto l'utente max1 al gruppo plugdev, ma nessun risultato. 

Qualcuno sa dirmi dove mettere mano

Grazie

Max

----------

## emix

Sicuro che non ci siano dei meccanismi di protezione da scrittura (hardware) attivati e/o che la chiavetta non sia danneggiata?

----------

## Maxgr

Sicuro perche come utente root posso fare tutto sulla medesima chiavetta. In pratica se voglio salvare qualsiasi cosa che ho elaborato o scaricato da internet naturalmente con l'utente max1 (non rootl) non posso salvarlo direttamente sulla chiavettta montata, ma devo salvarlo su hard_disk e poi loggandomi come root e spostare i dati dal disco alla chiavetta. 

Max

----------

## MeMyselfAndI

la chiavetta la monti a mano?

----------

## Scen

Ma utilizzando udev+dbus+hal i dispositivi removibili (tra cui le pendrive) non dovrebbero venire montate in /media/<nome_dispositivo>? (il tutto gestito in modo trasparente)

----------

## emix

 *Maxgr wrote:*   

> Sicuro perche come utente root posso fare tutto sulla medesima chiavetta.

 

Scusami, avevo capito male.. pensavo che da utente root non riuscissi a scrivere nel dispositivo  :Rolling Eyes: 

----------

## Maxgr

Si la chiavetta la monto a mano. anche gli altri dispositivi li monto a mano. Sia perche in /etc/fstab al cdrom e dvd ho messo la flag noauto (per ragioni di sicurezza) mentre non ho niente per i dispositivi sda (il cdrom ed il dvd li uso come device ATAPI).

il cdrom ed il dvd si montano nella cartella /media solo quando gli do il comando mount attraverso l'interfaccia grafica gtkdiskfree allora automaticamente si vanno a collocare nella dir /media altrimenti a mano li metto nella dir /mnt

Probabilmente non ho settato qualche cosa nei vari files di configurazione di hal o dbus?

Max

----------

## Maxgr

Inoltre, ho notato che, con i dispositivi non montati nonn serve a nulla cambiare i permessi delle dir, cioe' usare il comando chmod etc. perche quando poi monto a mani ls dir destinazione si prende i suoi permessi diversi.

Max

----------

## syntaxerrormmm

```
/dev/uba1               /media/usbpen   auto            noauto,rw,users,gid=users,umask=002        0 0
```

Questa è la riga dal mio fstab per montare la penna; lascia perdere il device, ma le cose importanti sono gid e umask. Dai un'occhiata alla manpage di mount sul perché sono importanti.

Ciao.

----------

## Maxgr

Ok Grazie Syntaxerrormmm

corretto il tuo consiglio. Pero' avrei una osservazione per fare cio' devi modificare il file /etc/fstab sapendo, a priori, che il device inserito sara' sda1 o usba1. Ma se volessi essere piu' generico possibile, mi spiego posso voler inserire la chiavetta con una sola partizione ma posso anche inserire, invece della chiavetta, un hard-disk usb con tre o quattro partizioni. quindi mi dovrei preparare in /etc/fstab una riga per /dev/sda1 , /dev/sda2 , /dev/sda3 o /dev/sda4. A questo punto la domanda, non esiste una configurazione per rendere trasparente all'utente l'inserimento ed il riconoscimento di qualsiasi device usb con n partizioni o, visto che ormai le porte usb nei computer sono piu' di una, un device di storage per ogni porta usb senza dover inserire a priori nel file /etc/fstab tante righe quanti sarebbero i possibili devices?

Grazie

Max

----------

## MeMyselfAndI

usi udev e crei una regola personalizzata per tutti i device sd[a-z][0-9] non so precisamente come ma cerca qua sul forum ci sono un sacco di post al riguardo di udev e regole personalizzate

----------

## syntaxerrormmm

http://www.gentoo.org/doc/en/udev-guide.xml, in particolare gli ultimi link della pagina.

Ciao.

----------

## fraido

allora ti posto qui la mia regola per la penna usb:

BUS=="usb", SYSFS{manufacturer}=="TSE Inc.", SYSFS{product}=="USB Mass Storage Device", NAME="%k", SYMLINK="usbdrive", GROUP="plugdev"

ti spiego come ho fatto per scriverla:

0) attacco la penna usb e con il comando:

```
dmesg | tail
```

controllo a che device è stata attaccata.

1) usando: 

```
udevinfo -e
```

reperisci tutte le info riguardanti tutti i device attualmente attaccati al sistema; quindi controlli per il device che ti ha detto il dmesg. Di solito questo è sufficiente per scrivere una regola di udev; in particolare ci servono le seguenti voci: 

BUS,

SYSFS{manufacturer},

 SYSFS{product}

se però magari hai bisogno di info riguardo ad un device diverso da una penna usb, per cui non vengono riportate quelle voci(ad esempio il floppy) puoi invece utilizzare il path di /sys, che da me per la penna corrisponde alla entry:

```
P: /block/sda
```

per lanciare il comando:

```
udevinfo -a -p /sys/block/sda
```

e cerchi nella sezione che corrisponde al bus usato dalla tua periferica(nel nostro caso usb) da cui poi recuperi gli stessi valori di cui sopra. 

2) In un file che non sia già presente in /etc/udev/rules.d/ e che termini con ".rules" (mi pare che la guida consigli /etc/udev/rules.d/10-local.rules perchè pare che quel file non venga sovrascritto aggiornando udev) salvi questa prima parte della regola :

BUS=="usb", SYSFS{manufacturer}=="TSE Inc.", SYSFS{product}=="USB Mass Storage Device"

3) infine ci "appendi" queste altre info:

NAME="%k", SYMLINK="usbdrive", GROUP="plugdev"

che specificano:

Symlink: con questa direttiva verrà creato un link simbolico chiamato, nel mio caso, usbdrive. Questo lo userò in /etc/fstab per il montaggio automatico, vedi dopo. Nota: mi pare che invece si sconsigliasse l'uso della direttiva KERNEL perchè forzava il sistema a dare un nome al device diverso da quello che indica il kernel. 

Name: specifica il numero della partizione. Questo serve se attacchi un hd che potenzialmente può avere piu' partizioni, allora automaticamente udev pensa a creare i nomi con il numero di partizione passatogli dal kernel.

group: specifica che per montare al volo la penna bisogna essere nel gruppo specificato, nel mio caso: plugdev. Puoi anche non metterlo.

Dopo aver modificato le regole di udev, puoi dare questo comando, per essere sicuro che le regole vengano ricaricate:

```
udevstart
```

4) configurazione di /etc/fstab:

ti basta aggiungere una riga del genere.

```
/dev/usbdrive           /media/usbdrive vfat            user,rw                 0 0
```

5)assicurati di avere nel f.s. un path uguale a quello specificato nell'fstab e poi fai ripartire per sicurezza il servizio coldplug:

```
mkdir /media/usbdrive

chmod 755 /media/usbdrive
```

```
/etc/init.d/coldplug restart
```

6) se hai ancora potenzialmente dei problemi in scrittura ciò può dipendere dal fatto che devi aggiungere come ti hanno precedentemente scritto una roba del genere al fstab:

```
/dev/usbdrive           /media/usbdrive vfat            user,rw,umask=000                 0 0
```

ad un mio amico questo cmq. non funzionava, ha risolto mettendoci quattro '0' al posto di tre: umask=0000

7) il fatto che comunque avendo hal e udev non ti monti al volo la penna usb è, a mio avviso, comunque il sintomo che qualcosa non funziona. Sei sicuro di aver compilato con la flag "hal" attivata il seguente software:

```

kde-base/kdebase

gnome-base/gnome-vfs

```

in caso negativo aggiungi hal in /etc/make.conf (oppure usando ufed) e poi, dando un: 

```
emerge -pvN world | grep hal
```

guarda quali pacchetti sono eventualmente interessatti dalla modifica della flag; oppure puoi usare:

```
equery h hal
```

e ricompilali.

Questi passi sono stati fatti al volo...forse ho dimenticato qualcosa....eventualmente posta dei problemi....

ciao 

fraido

----------

## adam_z

 *Maxgr wrote:*   

> Scusate mi sono perso nella ricerca di una FAQ, probabilmente non riesco a formulare la querry giusta.
> 
> mounto da root una chiavetta usb, tutto ok sda1. da root nessun problema da utente non root leggo ma non riesco a scriverci sopra.
> 
> uso hal dbus udev e la chiavetta non e' inserita in /etc/fstab. i permessi, della dir /mnt/ sono (a chiave montata nella dir /pen):
> ...

 

Puo' essere che non riesce a scrivere da utente normale (NON root) perche' non ha il permesso (adesso /pen e' 755, per scrivere dovrebbe essere 757): sbaglio?

----------

## fraido

 *adam_z wrote:*   

> Puo' essere che non riesce a scrivere da utente normale (NON root) perche' non ha il permesso (adesso /pen e' 755, per scrivere dovrebbe essere 757): sbaglio?

 

(Scusa ho letto solo ora) Beh si potrebbe essere, ma penso dipenda da quando ha fatto lo "screenshot" del f.s.; ovvero i permessi vengono "sovrascritti" nel momento in cui si monta un device; quindi ad esempio:

```
drwx------ 2 gentoo gentoo    4096 Jul  8 10:56 tmp/
```

e dopo aver montato(a mano in questo caso) il device: 

```
mount /dev/hdc1 tmp/

drwxrwxrwx 5 root   root       152 Jun 24 12:43 tmp/
```

quindi automaticamente una volta montato il dispositivo la directory assume altri permessi...quelli bisogna settarli, nell'fstab (umask, users, ecc...)

fraido

----------

## adam_z

ho imparato una cosa nuova, che i permessi delle unita' montate dipendono dal fstab.

CMQ tornando al problema di cui sopra, mi sembra che "/pen" sia montato e quindi i permessi non corretti.

----------

