{"id":1622,"date":"2014-04-30T12:52:38","date_gmt":"2014-04-30T10:52:38","guid":{"rendered":"http:\/\/stephane.weblog.starend.org\/?p=1622"},"modified":"2014-04-30T12:52:38","modified_gmt":"2014-04-30T10:52:38","slug":"montage-selectif-de-cle-usb-sur-freebsd","status":"publish","type":"post","link":"http:\/\/stephane.weblog.starend.org\/?p=1622","title":{"rendered":"Montage s\u00e9lectif de cl\u00e9 USB sur FreeBSD"},"content":{"rendered":"<p style=\"text-align: justify;\">Mon probl\u00e8me a r\u00e9soudre ici est assez simple. Permettre \u00e0 un utilisateur sans droits du syst\u00e8me de monter une cl\u00e9 USB d\u00e9finit \u00e0 un emplacement sp\u00e9cifique.<\/p>\n<p style=\"text-align: justify;\">Sous Linux, \u00e7a se serait traduit par une cr\u00e9ation de r\u00e9pertoire et une ligne ajout\u00e9e \u00e0 <code>\/etc\/fstab<\/code> avec un <code>UUID=<\/code> et l&rsquo;option <code>users<\/code>.<br \/>\nMais je dois le faire sous <em>FreeBSD<\/em> et il n&rsquo;y a ni l&rsquo;option <code>users<\/code> ni <code>udev<\/code>.<\/p>\n<p style=\"text-align: justify;\">L&rsquo;exercice est fait ici avec <a title=\"FreeBSD\" href=\"http:\/\/www.freebsd.org\/\" target=\"_blank\">FreeBSD Release 10.0<\/a>. Le dossier \u00e0 utiliser est <code>\/sas<\/code>. La cl\u00e9 est format\u00e9e avec une seule partition en <em>VFAT<\/em>.<\/p>\n<h2>Label de partition<\/h2>\n<p style=\"text-align: justify;\">Ins\u00e9rer la cl\u00e9 USB.<\/p>\n<p style=\"text-align: justify;\">Il faut commencer par trouver le p\u00e9riph\u00e9rique de la partition qui nous int\u00e9resse. La commande <code>dmesg<\/code> nous renseigne sur le dernier p\u00e9riph\u00e9rique utilis\u00e9 :<\/p>\n<pre># dmesg | tail\nugen2.2: &lt;vendor 0x13fe&gt; at usbus2\numass0: &lt;vendor 0x13fe MEMUP, class 0\/0, rev 2.00\/1.10, addr 2&gt; on usbus2\numass0:\u00c2\u00a0 SCSI over Bulk-Only; quirks = 0x4000\numass0:5:0:-1: Attached to scbus5\nda0 at umass-sim0 bus 0 scbus5 target 0 lun 0\nda0: &lt; MEMUP PMAP&gt; Removable Direct Access SCSI-0 device\nda0: Serial Number 0748374E0011\nda0: 40.000MB\/s transfers\nda0: 1908MB (3907584 512 byte sectors: 255H 63S\/T 243C)\nda0: quirks=0x2&lt;NO_6_BYTE&gt;<\/pre>\n<p style=\"text-align: justify;\">Ici, c&rsquo;est le p\u00e9riph\u00e9rique <code>\/dev\/da0<\/code>. Si on regarde <code>\/dev\/da0*<\/code>, on a :<br \/>\n<code>\/dev\/da0<br \/>\n\/dev\/da0s1<\/code><\/p>\n<p style=\"text-align: justify;\">On va pouvoir ajouter un label \u00e0 cette partition <code>da0s1<\/code> de cette cl\u00e9 USB :<br \/>\n<code># glabel label sas \/dev\/ad0s1<\/code><\/p>\n<p style=\"text-align: justify;\">La partition a maintenant un label permanent qui appara\u00eet comme <code>\/dev\/label\/sas<\/code>. Si on remplace la cl\u00e9 USB par une autre cl\u00e9 partitionn\u00e9e de la m\u00eame fa\u00e7on, le label ne sera pas remis en place, il est vraiment sp\u00e9cifique au couple cl\u00e9\/partition.<\/p>\n<h2 style=\"text-align: justify;\">Point de montage<\/h2>\n<p style=\"text-align: justify;\">On commence par cr\u00e9er le dossier <code>\/sas<\/code> avec les bons droits :<br \/>\n<code># mkdir \/sas<br \/>\n# chmod 770 \/sas<br \/>\n# chown toto \/sas<br \/>\n# chgrp toto \/sas<\/code><\/p>\n<p style=\"text-align: justify;\">On pourrait monter la partition \u00e0 la main, mais c&rsquo;est mieux de l&rsquo;automatiser. On ajoute \u00e0 \/etc\/fstab :<br \/>\n<code>\/dev\/label\/sas \/sas msdosfs rw,noauto 0 0<\/code><\/p>\n<p style=\"text-align: justify;\">Ici, je permet l&rsquo;\u00e9criture (<code>rw<\/code>) et interdit le montage automatique (<code>noauto<\/code>). Le montage se fera par une action volontaire de l&rsquo;utilisateur.<\/p>\n<p style=\"text-align: justify;\">On peut v\u00e9rifier que la partition monte bien :<br \/>\n# <code>mount \/sas<br \/>\n# ls \/sas<br \/>\nPhotos<br \/>\n# umount \/sas<\/code><\/p>\n<p style=\"text-align: justify;\">On peut aussi v\u00e9rifier avec une autre cl\u00e9 USB, \u00e7a ne marche pas.<\/p>\n<h2 style=\"text-align: justify;\">Droit aux utilisateurs<\/h2>\n<p style=\"text-align: justify;\">Jusqu&rsquo;ici, seul <em>root<\/em> peut utiliser cette partition.On va faire en sorte qu&rsquo;un utilisateur le puisse aussi.<\/p>\n<p style=\"text-align: justify;\">Ajouter au fichier <code>\/etc\/rc.conf<\/code> la ligne :<br \/>\n<code>devfs_system_ruleset=\"localrules\"<\/code><\/p>\n<p style=\"text-align: justify;\">Ajouter au fichier <code>\/etc\/sysctl.conf<\/code> la ligne :<br \/>\n<code>vfs.usermount=1<\/code><\/p>\n<p style=\"text-align: justify;\">Cr\u00e9er le fichier (ou ajouter) <code>\/etc\/devfs.rules<\/code> avec comme contenu :<br \/>\n<code>[localrules=10]<br \/>\nadd path 'label\/sas' mode 0660 group toto<\/code><\/p>\n<p style=\"text-align: justify;\">Apr\u00e8s red\u00e9marrage, en ins\u00e9rant la cl\u00e9 USB, on peut voir les droits de <code>\/dev\/label\/sas<\/code> :<br \/>\n<code>crw-rw---- 1 root toto 0x69 29 avr 23:45 \/dev\/label\/sas<\/code><\/p>\n<p style=\"text-align: justify;\">Et, reconnect\u00e9 en tant que <em>toto<\/em>, on doit pouvoir monter la partition simplement en lan\u00e7ant :<br \/>\n<code>$ mount \/sas<br \/>\n$ ls \/sas<br \/>\nPhotos<br \/>\n$ umount \/sas<\/code><\/p>\n<p style=\"text-align: justify;\">Si on donne pas \u00e0 <em>toto<\/em> les droits utilisateurs sur le r\u00e9pertoire de montage, il le peut pas monter la partition sur ce r\u00e9pertoire. Mais il peut la monter ailleurs dans son dossier personnel.<\/p>\n<p style=\"text-align: justify;\">Et voila :-)<\/p>\n<h2 style=\"text-align: justify;\">Liens<\/h2>\n<p style=\"text-align: justify;\">&#8211; <a title=\"http:\/\/www.freebsd.org\/doc\/handbook\/geom-glabel.html\" href=\"http:\/\/www.freebsd.org\/doc\/handbook\/geom-glabel.html\" target=\"_blank\">http:\/\/www.freebsd.org\/doc\/handbook\/geom-glabel.html<\/a><br \/>\n&#8211; <a title=\"http:\/\/scratching.psybermonkey.net\/2010\/07\/freebsd-how-to-allow-normal-user-to.html\" href=\"http:\/\/scratching.psybermonkey.net\/2010\/07\/freebsd-how-to-allow-normal-user-to.html\" target=\"_blank\">http:\/\/scratching.psybermonkey.net\/2010\/07\/freebsd-how-to-allow-normal-user-to.html<\/a><br \/>\n&#8211; <a title=\"http:\/\/www.freebsd.org\/cgi\/man.cgi?query=devfs.rules&amp;sektion=5\" href=\"http:\/\/www.freebsd.org\/cgi\/man.cgi?query=devfs.rules&amp;sektion=5\" target=\"_blank\">http:\/\/www.freebsd.org\/cgi\/man.cgi?query=devfs.rules&amp;sektion=5<\/a><br \/>\n&#8211; <a title=\"http:\/\/www.freebsd.org\/doc\/handbook\/usb-disks.html\" href=\"http:\/\/www.freebsd.org\/doc\/handbook\/usb-disks.html\" target=\"_blank\">http:\/\/www.freebsd.org\/doc\/handbook\/usb-disks.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mon probl\u00e8me a r\u00e9soudre ici est assez simple. Permettre \u00e0 un utilisateur sans droits du syst\u00e8me de monter une cl\u00e9 USB d\u00e9finit \u00e0 un emplacement sp\u00e9cifique. Sous Linux, \u00e7a se serait traduit par une cr\u00e9ation de r\u00e9pertoire et une ligne ajout\u00e9e \u00e0 \/etc\/fstab avec un UUID= et l&rsquo;option users. Mais je dois le faire sous &hellip; <a href=\"http:\/\/stephane.weblog.starend.org\/?p=1622\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Montage s\u00e9lectif de cl\u00e9 USB sur FreeBSD<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[47,10],"tags":[],"_links":{"self":[{"href":"http:\/\/stephane.weblog.starend.org\/index.php?rest_route=\/wp\/v2\/posts\/1622"}],"collection":[{"href":"http:\/\/stephane.weblog.starend.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/stephane.weblog.starend.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/stephane.weblog.starend.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/stephane.weblog.starend.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1622"}],"version-history":[{"count":0,"href":"http:\/\/stephane.weblog.starend.org\/index.php?rest_route=\/wp\/v2\/posts\/1622\/revisions"}],"wp:attachment":[{"href":"http:\/\/stephane.weblog.starend.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1622"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/stephane.weblog.starend.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1622"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/stephane.weblog.starend.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1622"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}