Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

FreeBSD et vfs.usermount

13 réponses
Avatar
Thomas Baruchel
Bonjour,

j'ai bien conscience de poser une question archi-classique, archi-documentée,
archi-tout ; j'ai bien conscience de poser une question que l'on trouve
posée telle quelle, dans les mêmes termes parmi les premières réponses de
Google. J'ai bien conscience de reposer une question que j'ai moi-même posée
il y a quelques années, et à laquelle certains avaient patiemment répondu
(ce qui ne veut pas dire qu'une solution avait marché...) Mais, malgré
tout ce que j'ai pu lire dans le Handbook, sur Internet, etc. je n'ai
absolument jamais réussi à monter quoi que ce soit en tant qu'utilisateur.

Précisions:

mon /etc/sysctl.conf contient
vfs.usermount=1
C'est la seule ligne qu'il comporte. On voit au démarrage que la ligne est
prise en compte, et un sysctl -a | grep usermount donne:
vfs.usermount: 1

Bon, par ailleurs la commande 'groups' (ou id -Gn pour les puristes) donne:
baruchel wheel operator

Or le seul utilisateur de ma machine s'appelle 'baruchel'

Passons aux droits des périphériques:
mon fichier /etc/devfs.conf contient
perm acd0 0660
own acd0 root:operator
ce qui est pris en compte au redémarrage : ls -l /dev/acd* donne
crw-rw---- 1 root operator 4, 13 1 jul 22:46 /dev/acd0
crw-r----- 1 root operator 4, 27 1 jul 22:46 /dev/acd0t01

Faut-il revenir sur le piège final des droits de montage ? Créons
un répertoire dans le HOME de l'utilisateur ; donnons-lui tous les
droits possibles et imaginables, puis tentons de le monter:
cd9660: /dev/acd0: Operation not permitted
Pour lever tout doute, précisons que la commande fonctionne sans problème
sous root...
Je ne comprends pas. Tout semble correctement réglé, mais je n'ai JAMAIS pu
réussir cela ni sous 5.1, ni sous 5.2 ni sous 5.3 :-(

Je ne peux donner ici la sortie, trop longue, de sysctl -a, mais à tout
hasard je donne ci-dessous toutes les lignes commençant par vfs.

Cordialement,

vfs.nfs4.access_cache_timeout: 60
vfs.nfs4.nfsv3_commit_on_close: 0
vfs.devfs.noverflow: 32768
vfs.devfs.generation: 97
vfs.devfs.inodes: 97
vfs.devfs.topinode: 100
vfs.nfs.downdelayinitial: 12
vfs.nfs.downdelayinterval: 30
vfs.nfs.realign_test: 0
vfs.nfs.realign_count: 0
vfs.nfs.bufpackets: 4
vfs.nfs.reconnects: 0
vfs.nfs.iodmaxidle: 120
vfs.nfs.iodmin: 4
vfs.nfs.iodmax: 20
vfs.nfs.defect: 0
vfs.nfs.nfs_ip_paranoia: 1
vfs.nfs.diskless_valid: 0
vfs.nfs.diskless_rootpath:
vfs.nfs.access_cache_timeout: 60
vfs.nfs.nfsv3_commit_on_close: 0
vfs.ufs.dirhash_minsize: 2560
vfs.ufs.dirhash_maxmem: 2097152
vfs.ufs.dirhash_mem: 189580
vfs.ufs.dirhash_docheck: 0
vfs.pfs.vncache.entries: 0
vfs.pfs.vncache.maxentries: 0
vfs.pfs.vncache.hits: 0
vfs.pfs.vncache.misses: 0
vfs.vmiodirenable: 1
vfs.runningbufspace: 0
vfs.bufspace: 30769152
vfs.maxbufspace: 33882112
vfs.bufmallocspace: 397312
vfs.maxmallocbufspace: 1661337
vfs.lobufspace: 33161216
vfs.hibufspace: 33226752
vfs.bufreusecnt: 1878
vfs.buffreekvacnt: 0
vfs.bufdefragcnt: 0
vfs.lorunningspace: 524288
vfs.hirunningspace: 1048576
vfs.dirtybufferflushes: 0
vfs.altbufferflushes: 0
vfs.recursiveflushes: 0
vfs.numdirtybuffers: 25
vfs.lodirtybuffers: 268
vfs.hidirtybuffers: 537
vfs.dirtybufthresh: 483
vfs.numfreebuffers: 2043
vfs.lofreebuffers: 119
vfs.hifreebuffers: 238
vfs.getnewbufcalls: 2033
vfs.getnewbufrestarts: 0
vfs.flushwithdeps: 0
vfs.cache.numneg: 87
vfs.cache.numcache: 1401
vfs.cache.numcalls: 67828
vfs.cache.dothits: 322
vfs.cache.dotdothits: 258
vfs.cache.numchecks: 66983
vfs.cache.nummiss: 3233
vfs.cache.nummisszap: 51
vfs.cache.numposzaps: 87
vfs.cache.numposhits: 60590
vfs.cache.numnegzaps: 21
vfs.cache.numneghits: 3266
vfs.cache.nchstats: 60590 3266 108 0 3284 0 192 498
vfs.cache.numcwdcalls: 98
vfs.cache.numcwdfail1: 0
vfs.cache.numcwdfail2: 0
vfs.cache.numcwdfail3: 0
vfs.cache.numcwdfail4: 0
vfs.cache.numcwdfound: 98
vfs.cache.numfullpathcalls: 0
vfs.cache.numfullpathfail1: 0
vfs.cache.numfullpathfail2: 0
vfs.cache.numfullpathfail3: 0
vfs.cache.numfullpathfail4: 0
vfs.cache.numfullpathfound: 0
vfs.write_behind: 1
vfs.read_max: 8
vfs.opv_numops: 64
vfs.usermount: 1
vfs.numvnodes: 1459
vfs.wantfreevnodes: 25
vfs.freevnodes: 489
vfs.reassignbufcalls: 1817
vfs.nameileafonly: 0
vfs.timestamp_precision: 0
vfs.worklist_len: 8
vfs.nfsrv.nfs_privport: 0
vfs.nfsrv.async: 0
vfs.nfsrv.commit_blks: 0
vfs.nfsrv.commit_miss: 0
vfs.nfsrv.realign_test: 0
vfs.nfsrv.realign_count: 0
vfs.nfsrv.gatherdelay: 10000
vfs.nfsrv.gatherdelay_v3: 0
vfs.ffs.doasyncfree: 1
vfs.ffs.doreallocblks: 1

--
Thomas Baruchel

10 réponses

1 2
Avatar
Olivier Brisson
Thomas Baruchel schrieb:
Bonjour,

j'ai bien conscience de poser une question archi-classique,
archi-documentée, archi-tout ; j'ai bien conscience de poser une
question que l'on trouve posée telle quelle, dans les mêmes termes
parmi les premières réponses de Google. J'ai bien conscience de
reposer une question que j'ai moi-même posée il y a quelques années,
et à laquelle certains avaient patiemment répondu (ce qui ne veut pas
dire qu'une solution avait marché...) Mais, malgré tout ce que j'ai pu
lire dans le Handbook, sur Internet, etc. je n'ai absolument jamais
réussi à monter quoi que ce soit en tant qu'utilisateur.

Précisions:

mon /etc/sysctl.conf contient
vfs.usermount=1
C'est la seule ligne qu'il comporte. On voit au démarrage que la ligne est
prise en compte, et un sysctl -a | grep usermount donne:
vfs.usermount: 1

Bon, par ailleurs la commande 'groups' (ou id -Gn pour les puristes) donne:
baruchel wheel operator

Or le seul utilisateur de ma machine s'appelle 'baruchel'

Passons aux droits des périphériques:
mon fichier /etc/devfs.conf contient
perm acd0 0660
own acd0 root:operator
ce qui est pris en compte au redémarrage : ls -l /dev/acd* donne
crw-rw---- 1 root operator 4, 13 1 jul 22:46 /dev/acd0
crw-r----- 1 root operator 4, 27 1 jul 22:46 /dev/acd0t01

Faut-il revenir sur le piège final des droits de montage ? Créons
un répertoire dans le HOME de l'utilisateur ; donnons-lui tous les
droits possibles et imaginables, puis tentons de le monter:
cd9660: /dev/acd0: Operation not permitted
Pour lever tout doute, précisons que la commande fonctionne sans problème
sous root...
Je ne comprends pas. Tout semble correctement réglé, mais je n'ai JAMAIS pu
réussir cela ni sous 5.1, ni sous 5.2 ni sous 5.3 :-(

Je ne peux donner ici la sortie, trop longue, de sysctl -a, mais à tout
hasard je donne ci-dessous toutes les lignes commençant par vfs.

Cordialement,

[...]


Bonjour,

Tu as oublié de mettre ceci dans le fichier de conf de ton Kernel:

device ata
device atapicam
device scbus
device cd
device pass

Ensuite, dès que tu as rebooté ta machine, tu peux faire un
$ camcontrol devlist

et tu obtiendras un truc du genre:
<PLEXTOR CD-R PX-W8220T 1.04> at scbus0 target 4 lun 0 (cd0,pass0)

<LITEON DVD-ROM LTD163D GHR3> at scbus2 target 1 lun 0 (cd1,pass1)

J'utilise cette méthode pour ripper des DVD en tant qu'user avec OGMRip.
Tu auras toutes les infos dans ma doc à l'adresse suivante:
http://ogmrip.sourceforge.net/docs/ogmrip-freebsd.html

Cordialement,

Olivier

Avatar
talon
Thomas Baruchel wrote:
Précisions:

mon /etc/sysctl.conf contient
vfs.usermount=1
Moi je l'ai vu marcher aussi bien sous 5.3 et sous 5.4

Ne pas oublier que le point de montage doit t'appartenir.
Donc tu devrais faire, en tant que Baruchel
mkdir mnt
mount /dev/... mnt
Finalement il m'est arrivé des bizarreries genre obligé de me reloguer
ou rebooter (je ne me souviens pas) avant que ça marche, mais aprés
ça marche à tous les coups.

C'est la seule ligne qu'il comporte. On voit au démarrage que la ligne est
prise en compte, et un sysctl -a | grep usermount donne:
vfs.usermount: 1



--

Michel TALON

Avatar
Thomas Baruchel
Le 01-07-2005, Olivier Brisson a écrit :
device ata
device atapicam
device scbus
device cd
device pass


Merci de cette réponse rapide ; c'est fait.

Ensuite, dès que tu as rebooté ta machine, tu peux faire un
$ camcontrol devlist


camcontrol: couldn't open /dev/xpt0: Permission denied

Peut-être dois-je donner des permissions au groupe operator
à xpt0 dans /etc/devfs ?

et tu obtiendras un truc du genre:
<PLEXTOR CD-R PX-W8220T 1.04> at scbus0 target 4 lun 0 (cd0,pass0)
<LITEON DVD-ROM LTD163D GHR3> at scbus2 target 1 lun 0 (cd1,pass1)


:-(

Pour l'instant cela ne correspond pas, mais à tout hasard deux mount
(dans un répertoire qui m'appartient) :
cd9660: /dev/acd0: Operation not permitted
msdosfs: /dev/da0s1: Operation not permitted

:-(

Quand je disais que cela ne marche jamais ;-)

--
Thomas Baruchel

Avatar
F. Senault

camcontrol: couldn't open /dev/xpt0: Permission denied

Peut-être dois-je donner des permissions au groupe operator
à xpt0 dans /etc/devfs ?


Probable.

(J'ai quelques doutes quant à l'utilité de charger la couche scsi pour
accéder en lecture à /dev/acd0, mais bon.)

/.../

Pour l'instant cela ne correspond pas, mais à tout hasard deux mount
(dans un répertoire qui m'appartient) :
cd9660: /dev/acd0: Operation not permitted
msdosfs: /dev/da0s1: Operation not permitted

:-(

Quand je disais que cela ne marche jamais ;-)


A tout hasard, fais d'abord un essai réussi en root, puis avec un
utilisateur classique, que le kernel tenterait de charger un module
quelconque avant de faire son montage ?

Fred
--
Something inside of me has opened up its eyes
Why did you put it there did you not realize
This thing inside of me it screams the loudest sound
Sometimes I think I could (Nine Inch Nails, Burn)

Avatar
Thomas Baruchel
Le 01-07-2005, F. Senault a écrit :
(J'ai quelques doutes quant à l'utilité de charger la couche scsi pour
accéder en lecture à /dev/acd0, mais bon.)


J'étais content de mon noyau, j'aimerais effectivement ne pas rajouter
des tonnes de trucs pour un besoin aussi simple (sinon je ferai ce genre
de choses en root :-( )

A tout hasard, fais d'abord un essai réussi en root, puis avec un
utilisateur classique, que le kernel tenterait de charger un module
quelconque avant de faire son montage ?


Très léger changement :
msdosfs: /dev/da0s1: Permission denied
au lieu de 'Operation not permitted' :-(
(je retrouve le message d'erreur précédent avec kldunload msdosfs)

Je précise que je rencontre les mêmes problèmes sur une machine différente
sous FreeBSD 5.3 :-(

--
Thomas Baruchel

Avatar
Thomas Baruchel
Le 01-07-2005, Thomas Baruchel a écrit :
Je ne comprends pas. Tout semble correctement réglé, mais je n'ai JAMAIS pu
réussir cela ni sous 5.1, ni sous 5.2 ni sous 5.3 :-(


Je crois que j'ai trouvé : les périphériques figuraient dans
le /etc/fstab en 'noauto' ; depuis que j'ai retiré ces lignes,
cela fonctionne.

--
Thomas Baruchel

Avatar
Thomas Baruchel
Le 02-07-2005, Thomas Baruchel a écrit :
Le 01-07-2005, Thomas Baruchel a écrit :
Je ne comprends pas. Tout semble correctement réglé, mais je n'ai JAMAIS pu
réussir cela ni sous 5.1, ni sous 5.2 ni sous 5.3 :-(


Je crois que j'ai trouvé : les périphériques figuraient dans
le /etc/fstab en 'noauto' ; depuis que j'ai retiré ces lignes,
cela fonctionne.


Dernier problème, mieux cerné : le chargement des modules pour msdos et
cd9660. Je suppose que je n'aurais plus le problème de
l'Operation not permitted si je compilais en dur ces deux supports dans
le noyau, mais j'hésite à le faire car les besoins sont très ponctuels.
Y a-t-il une solution autre (par modules) qui permette à l'utilisateur
(qui appartient aux groupes wheel et operator) d'effectuer l'opération ?

--
Thomas Baruchel


Avatar
JJ
Michel Talon wrote:
Thomas Baruchel wrote:

Précisions:

mon /etc/sysctl.conf contient
vfs.usermount=1


Moi je l'ai vu marcher aussi bien sous 5.3 et sous 5.4
Ne pas oublier que le point de montage doit t'appartenir.
Donc tu devrais faire, en tant que Baruchel
mkdir mnt
mount /dev/... mnt
Finalement il m'est arrivé des bizarreries genre obligé de me reloguer
ou rebooter (je ne me souviens pas) avant que ça marche, mais aprés
ça marche à tous les coups.


C'est la seule ligne qu'il comporte. On voit au démarrage que la ligne est
prise en compte, et un sysctl -a | grep usermount donne:
vfs.usermount: 1




Bienvenue au club :) , en ce qui me concerne, en plus de la config
évoquée dans la question de départ, j'ai supprimé le répertoire /cdrom,
et créé à la place un lien vers un répertoire utilisateur, /home/moi/cdrom.
Ce n'est peut etre pas élégant, mais au moins, ca marche...

J.J.


Avatar
F. Senault

Dernier problème, mieux cerné : le chargement des modules pour msdos et
cd9660. Je suppose que je n'aurais plus le problème de
l'Operation not permitted si je compilais en dur ces deux supports dans
le noyau, mais j'hésite à le faire car les besoins sont très ponctuels.
Y a-t-il une solution autre (par modules) qui permette à l'utilisateur
(qui appartient aux groupes wheel et operator) d'effectuer l'opération ?


A part charger les modules au boot (via... err... le fichier qui va
bien), je ne crois pas qu'il y ait de solution de chargement de modules
par un utilisateur lambda à la demande.

Franchement, le support de ce genre de choses, dans le kernel ou en
modules, ne va pas mettre la machine à genoux. Ne te tracasse pas
d'avoir un ou deux trucs très peu utilisés en mémoire.

Fred
--
As black as the night can get
Everything is safer now (Nine Inch Nails,
There's always a way to forget I'm Looking Forward To
Once you learn to find a way how Joining You, Finally)

Avatar
Thomas Baruchel
Le 02-07-2005, F. Senault a écrit :
Franchement, le support de ce genre de choses, dans le kernel ou en
modules, ne va pas mettre la machine à genoux. Ne te tracasse pas
d'avoir un ou deux trucs très peu utilisés en mémoire.


Merci, c'est ce que j'ai fait ; j'ai choisi la solution par modules

Cordialement,

--
Thomas Baruchel

1 2