# [nfts3g] monter en tant qu'utilisateur ( Résolu )

## bob1977

Bonjour,

   En tant qu'utilisateur, quand je veux monter mon disque dur externe ( en usb) formaté en ntfs avec ntfs-3g, c'est refusé parce que je ne suis pas root. Pourtant, j'ai ntfs-3g emergé avec le useflag suid *Quote:*   

>  sys-fs/ntfs3g
> 
>      Available versions:  1.2531 (~)1.5130 (~)2009.2.1 {debug hal suid}
> 
>      Installed versions:  2009.2.1(17:09:48 15/02/2009)(hal suid -debug)
> ...

 

```
ntfs-3g /dev/sdc1 /mnt/externe

Error opening '/dev/sdc1': Permission non accordée

Failed to mount '/dev/sdc1': Permission non accordée

Please check '/dev/sdc1' and the ntfs-3g binary permissions,

and the mounting user ID. More explanation is provided at

http://ntfs-3g.org/support.html#unprivileged
```

Le problème semblerait venir des droits du disque

```
ls -l /dev/sdc1

brw-r----- 1 root disk 8, 33 févr. 27 13:57 /dev/sdc1
```

 Je souhaiterais ne pas faire partie du groupe "disk" pour raisons de sécurité. Le plus simple serait que les disques durs usb ( voire firewire) soient mis dans le groupe "plugdev" au lieu de "disk".  Voila quelques infos:

Quand je branche mon DD usb:

```

udevadm monitor --udev --environment

udevmonitor will print the received events for:

UDEV the event which udev sends out after rule processing

UDEV  [1235753338.792350] add      /devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.2 (usb)

UDEV_LOG=3

ACTION=add

DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.2

SUBSYSTEM=usb

MAJOR=189

MINOR=141

DEVTYPE=usb_device

PHYSDEVBUS=usb

DEVICE=/proc/bus/usb/002/014

PRODUCT=18a5/216/103

TYPE=0/0/0

BUSNUM=002

DEVNUM=014

SEQNUM=2489

UDEVD_EVENT=1

DEVNAME=/dev/bus/usb/002/014

UDEV  [1235753338.798149] add      /devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.2/2-1.2:1.0 (usb)

UDEV_LOG=3

ACTION=add

DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.2/2-1.2:1.0

SUBSYSTEM=usb

DEVTYPE=usb_interface

PHYSDEVBUS=usb

DEVICE=/proc/bus/usb/002/014

PRODUCT=18a5/216/103

TYPE=0/0/0

INTERFACE=8/6/80

MODALIAS=usb:v18A5p0216d0103dc00dsc00dp00ic08isc06ip50

SEQNUM=2490

UDEVD_EVENT=1

UDEV  [1235753338.801040] add      /class/scsi_host/host17 (scsi_host)

UDEV_LOG=3

ACTION=add

DEVPATH=/class/scsi_host/host17

SUBSYSTEM=scsi_host

PHYSDEVPATH=/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.2/2-1.2:1.0

PHYSDEVBUS=usb

PHYSDEVDRIVER=usb-storage

SEQNUM=2491

UDEVD_EVENT=1

UDEV  [1235753338.807442] add      /class/usb_endpoint/usbdev2.14_ep81 (usb_endpoint)

UDEV_LOG=3

ACTION=add

DEVPATH=/class/usb_endpoint/usbdev2.14_ep81

SUBSYSTEM=usb_endpoint

MAJOR=253

MINOR=19

PHYSDEVPATH=/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.2/2-1.2:1.0

PHYSDEVBUS=usb

PHYSDEVDRIVER=usb-storage

SEQNUM=2492

UDEVD_EVENT=1

DEVNAME=/dev/usbdev2.14_ep81

UDEV  [1235753338.808771] add      /class/usb_endpoint/usbdev2.14_ep02 (usb_endpoint)

UDEV_LOG=3

ACTION=add

DEVPATH=/class/usb_endpoint/usbdev2.14_ep02

SUBSYSTEM=usb_endpoint

MAJOR=253

MINOR=20

PHYSDEVPATH=/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.2/2-1.2:1.0

PHYSDEVBUS=usb

PHYSDEVDRIVER=usb-storage

SEQNUM=2493

UDEVD_EVENT=1

DEVNAME=/dev/usbdev2.14_ep02

UDEV  [1235753338.809971] add      /class/usb_endpoint/usbdev2.14_ep00 (usb_endpoint)

UDEV_LOG=3

ACTION=add

DEVPATH=/class/usb_endpoint/usbdev2.14_ep00

SUBSYSTEM=usb_endpoint

MAJOR=253

MINOR=21

PHYSDEVPATH=/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.2

PHYSDEVBUS=usb

PHYSDEVDRIVER=usb

SEQNUM=2494

UDEVD_EVENT=1

DEVNAME=/dev/usbdev2.14_ep00

UDEV  [1235753343.779146] add      /devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.2/2-1.2:1.0/host17/target17:0:0/17:0:0:0 (scsi)

UDEV_LOG=3

ACTION=add

DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.2/2-1.2:1.0/host17/target17:0:0/17:0:0:0

SUBSYSTEM=scsi

DEVTYPE=scsi_device

PHYSDEVBUS=scsi

MODALIAS=scsi:t-0x00

SEQNUM=2495

UDEVD_EVENT=1

UDEV  [1235753343.783760] add      /class/scsi_disk/17:0:0:0 (scsi_disk)

UDEV_LOG=3

ACTION=add

DEVPATH=/class/scsi_disk/17:0:0:0

SUBSYSTEM=scsi_disk

PHYSDEVPATH=/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.2/2-1.2:1.0/host17/target17:0:0/17:0:0:0

PHYSDEVBUS=scsi

PHYSDEVDRIVER=sd

SEQNUM=2496

UDEVD_EVENT=1

UDEV  [1235753343.815444] add      /class/bdi/8:32 (bdi)

UDEV_LOG=3

ACTION=add

DEVPATH=/class/bdi/8:32

SUBSYSTEM=bdi

SEQNUM=2499

UDEVD_EVENT=1

UDEV  [1235753343.825283] add      /class/scsi_generic/sg4 (scsi_generic)

UDEV_LOG=3

ACTION=add

DEVPATH=/class/scsi_generic/sg4

SUBSYSTEM=scsi_generic

MAJOR=21

MINOR=4

PHYSDEVPATH=/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.2/2-1.2:1.0/host17/target17:0:0/17:0:0:0

PHYSDEVBUS=scsi

PHYSDEVDRIVER=sd

SEQNUM=2501

UDEVD_EVENT=1

DEVNAME=/dev/sg4

UDEV  [1235753343.826870] add      /class/scsi_device/17:0:0:0 (scsi_device)

UDEV_LOG=3

ACTION=add

DEVPATH=/class/scsi_device/17:0:0:0

SUBSYSTEM=scsi_device

PHYSDEVPATH=/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.2/2-1.2:1.0/host17/target17:0:0/17:0:0:0

PHYSDEVBUS=scsi

PHYSDEVDRIVER=sd

SEQNUM=2500

UDEVD_EVENT=1

UDEV  [1235753343.892495] add      /block/sdc (block)

UDEV_LOG=3

ACTION=add

DEVPATH=/block/sdc

SUBSYSTEM=block

MAJOR=8

MINOR=32

DEVTYPE=disk

PHYSDEVPATH=/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.2/2-1.2:1.0/host17/target17:0:0/17:0:0:0

PHYSDEVBUS=scsi

PHYSDEVDRIVER=sd

SEQNUM=2497

UDEVD_EVENT=1

ID_VENDOR=WDC_WD50

ID_MODEL=00AAVS-00ZTB0

ID_REVISION=0103

ID_SERIAL=xxxxxxxxxxxxxxxxxxxxxxxxxxx-0:0

ID_SERIAL_SHORT=xxxxxxxxxxxxxxxx

ID_TYPE=disk

ID_INSTANCE=0:0

ID_BUS=usb

ID_PATH=pci-0000:00:1d.7-usb-0:1.2:1.0-scsi-0:0:0:0

DEVNAME=/dev/sdc

DEVLINKS=/dev/disk/by-id/usb-xxxxxxxxxxxxxxxxxxxxxxxxxxx-0:0 /dev/disk/by-path/pci-0000:00:1d.7-usb-0:1.2:1.0-scsi-0:0:0:0

UDEV  [1235753343.939265] add      /block/sdc/sdc1 (block)

UDEV_LOG=3

ACTION=add

DEVPATH=/block/sdc/sdc1

SUBSYSTEM=block

MAJOR=8

MINOR=33

DEVTYPE=partition

PHYSDEVPATH=/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.2/2-1.2:1.0/host17/target17:0:0/17:0:0:0

PHYSDEVBUS=scsi

PHYSDEVDRIVER=sd

SEQNUM=2498

UDEVD_EVENT=1

ID_VENDOR=WDC_WD50

ID_MODEL=00AAVS-00ZTB0

ID_REVISION=0103

ID_SERIAL=xxxxxxxxxxxxxxxxxxxxxxxxxxx-0:0

ID_SERIAL_SHORT=xxxxxxxxxxxxxxxx

ID_TYPE=disk

ID_INSTANCE=0:0

ID_BUS=usb

ID_PATH=pci-0000:00:1d.7-usb-0:1.2:1.0-scsi-0:0:0:0

ID_FS_USAGE=filesystem

ID_FS_TYPE=ntfs

ID_FS_VERSION=3.1

ID_FS_UUID=133F02CD30DEA9E5

ID_FS_UUID_ENC=133F02CD30DEA9E5

ID_FS_LABEL=externe

ID_FS_LABEL_ENC=externe

ID_FS_LABEL_SAFE=externe

DEVNAME=/dev/sdc1

DEVLINKS=/dev/disk/by-id/usb-xxxxxxxxxxxxxxxxxxxxxxxxxxx-0:0-part1 /dev/disk/by-path/pci-0000:00:1d.7-usb-0:1.2:1.0-scsi-0:0:0:0-part1 /dev/disk/by-uuid/133F02CD30DEA9E5 /dev/disk/by-label/externe

```

  L'avant dernière section ou la suivante ont l'air de contenir les informations intéressantes. Donc si j'ai bien compris le fonctionnement d'udev, je devrais mettre ca dans un fichier de /etc/udev/rules.d:

```
ID_TYPE=="disk", ID_BUS=="usb", GROUP="plugdev"
```

 Alors, j'ai plein d'interrogations:

  * Est-ce que ces règles vous paraissent correctes? 

  * Dans quel fichier, je dois les mettre ?

  * Comment les tester ?

  * Est-ce une bonne idée de ne pas mettre un disque dans le groupe "disk"?

 Merci d'avance pour vos réponses.Last edited by bob1977 on Thu Mar 05, 2009 11:42 pm; edited 1 time in total

----------

## bob1977

Un petit up pour dire que je suis toujours intéressé par des réponses ...

----------

## xaviermiller

Salut,

Chez moi tout va tout seul grâce à hal. Je suis en ~ (~x86 et ~amd64)

----------

## bob1977

J'ai les dernieres versions de hal et ntfs3g en ~amd64 . Tu utilises un disque externe en usb et il se branche tout seul sans que tu ne fasses partie du group disk?

----------

## xaviermiller

Oui, tout seul. Je n'ai rien fait de spécial.

J'utilise XFCE et mes disques, qu'ils soient NTFS, FAT, Linux, tout se monte tout seul de manière transparente.

Vérifie que l'utilisateur est dans les bons groupes (je ne sais plus la liste par cœur, mais c'est du genre usb, plugdev, ...)

----------

## tmasscool

A quoi ressemble le fstab ?

Est-ce que le disque peut être monté avec les options "users" ?

----------

## CryoGen

moi j'ai un fichier pour hal pour ca (je ne sais plus depuis combien de temps je l'ai donc je ne sais pas si c'est toujours utile mais chezmoicamarche©)

```
cryogen@Exia ~ $ cat /etc/hal/fdi/policy/10-ntfs3g.fdi

<?xml version="1.0" encoding="UTF-8"?>

<deviceinfo version="0.2">

        <device>

                <match key="volume.fstype" string="ntfs">

                <merge key="volume.fstype" type="string">ntfs-3g</merge>

                </match>

        </device>

</deviceinfo>
```

EDIT: Ajout

Hum j'en ai un aure aussi XD va falloir que je nettoie un de ces jours :p

```
cryogen@Exia ~ $ cat /etc/hal/fdi/policy/10-ntfs-policy.fdi 

<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->

<deviceinfo version="0.2">

<!-- mount ntfs volume with the ntfs-3g driver. If you want to change this policy to

use the read only ntfs driver for default instead, just replace ntfs-3g by ntfs --> 

        <device>

        <match key="volume.fstype" string="ntfs">

        <merge key="volume.policy.mount_filesystem" type="string">ntfs-3g</merge>

                </match>                                                         

        </device>

<!-- if ntfs-3g, we need some special option (don't touch this policy if you change

the default policy to ntfs above. In any way, **don't touch this policy**)-->

        <device>

        <match key="volume.fstype" string="ntfs-3g">

        <append key="volume.mount.valid_options" type="strlist">nonempty</append>

        <merge key="storage.policy.mount_option.nonempty" type="bool">true</merge>

        <merge key="volume.policy.mount_option.nonempty" type="bool">true</merge>

        </match>

        </device>

</deviceinfo>
```

----------

## nemo13

 *bob1977 wrote:*   

> Un petit up pour dire que je suis toujours intéressé par des réponses ...

 

Bonjour,

dans la série "chez-moi-çà-marche"

en full x64 et ~ avec :

```
 eix -I hal

[U] app-misc/hal-info

      Installed versions:  20080508(17:10:50 15/12/2008)

       Description:         The fdi scripts that HAL uses

[U] sys-apps/hal

      Installed versions:  0.5.11-r4(17:04:31 15/12/2008)(acpi crypt dell disk-partition kernel_linux  )

      Description:         Hardware Abstraction Layer
```

```
eix -I udev

[U] sys-fs/udev

      Installed versions:  135-r2(19:00:24 21/12/2008)(-selinux)

      Description:         Linux dynamic and persistent device naming support (aka userspace devfs)
```

les régles udev suivantes dans /etc/udev/rules.d

 *Quote:*   

> 90-hal.rules

 

# pass all events to the HAL daemon

RUN+="socket:/org/freedesktop/hal/udev_event"

 *Quote:*   

> 99-fuse.rules

 

KERNEL=="fuse", MODE="0666"

puis pour XFCE :

dans le panneau "préférences du gestionnaire de fichiers"

...dans l'onglet "avancé"

....... j'ai coché " activer le gestionnaire de volume"

et ne pas oublier :

dans le panneau "disques amovibles et média"

de cocher ce qui faut dans l'onglet stockage.

A+:jlp

nota : j'ai un peu lu en diagonale donc question bête :

est-ce que tes autres support amovibles montent à l'insertion ?

----------

## bob1977

Désolé pour le temps de réponse mais j'ai résolu le problème grace a tmassscool. Dans mon fichier /etc/fstab, j'avais mis une ligne pour monter le disque dur avec mount. Je ne pensais pas que c'etait bloquant pour le montage automatique ou alors il y avait une erreur dans ma ligne de montage. En la commentant et en remettant mon DD, il s'est monté tout seul.

 A titre indicatif, j'avais mis ca:

```
/dev/sdc1      /mnt/externe   ntfs-3g   rw,users,user,gid=users,uid=bob,dmask=002,fmask=002,iocharset=iso8859-15,codepage=850,utf8,noauto
```

 Merci a tous pour votre aide.

----------

## CryoGen

Ouais c'est une erreur classique ^^ 

Pour utiliser les automounts faut surtout pas avoir d'entrée correspondante dans le fstab  :Smile: 

----------

