[BSD] user-friendly mount mint user

Zahemszky Gábor Gabor at Zahemszky.HU
2006. Jan. 17., K, 11:13:56 CET


> A devfs-el már ügyeskedtem annyit, hogy a megfelelő device file-ok
> engedélyei megfelelőek legyenek, de hiányzik a "mount" ill "umount"
> automatizálása.

Szia!

1) Nekem a legkényelmesebbnek az automounter használata tűnik. 
Hátrányai: még egy (amd) plusz szolgáltatásnak kell futnia (igazából 
kettő, mert ha más miatt nincs, akkor kell az rpcbind is). Az rpc miatt 
sajnos kívülre is nyitni kell portot (az rpcbind van olyan uninteligens, 
hogy nem tud egyedül a 127.0.0.1 -re bindolni; évekkel ezelőtt láttam 
valahol patch-et a dologra, de nem tudom hol van, és azóta se került be 
a rendszerbe ki tudja miért). Az amd-vel figyelt könyvtárakhoz pedig 
csinálsz egy-egy szimlinket a  $HOME -ba - vagy megtanulja, hogy neki 
mindig a /devices/valami kell).
  Itt egy példa a dologra:

/etc/amd.conf
[global]
#browsable_dirs         = yes
map_type                = file
search_path             = /etc
cache_duration          = 10
dismount_interval       = 5
log_file                = syslog
log_options             = error,fatal,user,noinfo,nowarn
pid_file                = yes
print_pid               = yes
restart_mounts          = yes
show_statfs_entries     = yes
unmount_on_exit         = yes

[/devices]
map_name                = amd.devices

Ha a borzolható elől kiszeded a kommentet, annak két következménye lesz:
i) ha hozzányúlsz a /devices -hez, látszik, hogy mik _lehetnének_ benne
ii) és igen okosan meg is próbálja felmountolni őket ugyanekkor, ami 
kissé lassít, és sok log-ot gyárt.
Így kommentben az a jó, hogy egy üres /devices-t látsz, aminek viszont 
ha hozzányúlsz a (külsősök által természetesen nem ismert) X 
alkönyvtárához, az egyszer csak megjelenik tartalmastul. ;-)

És persze a /etc/amd.devices, ami nélkül nem sokat ér a dolog:

/etc/adm.devices
/defaults       type:=cdfs;opts:=ro,nosuid,nodev,noexec

cd0             dev:=/dev/cd0 \
                 type:=error

cd1             dev:=/dev/cd1 \
                 type:=error

fd0             -type:=pcfs;opts:=rw,nosuid,nodev,noexec \
                 dev:=/dev/fd0

pd              -type:=pcfs \
                 dev:=/dev/da2s1

Természetesen a fentieket a HW és a felhasználói/rendszergazdai 
igényeknek megfelelően lehet/kell hangolni, azaz ha nincs 2 CD/DVD, 
akkor elég cd/DVD néven hivatkozni; ha nincs SCSI eszköz másik a gépben, 
akkor a pendrive is da0s1 -ként jelenik meg, stb. (Mellesleg ezzel lesz 
a legnagyobb szívás, eddig láttam olyan PD-t, ami (az én gépemen) da2 
-ként, olyat amelyik da2s1-ként, olyat ahol da2s2-ként, és olyat is, 
ahol da2s4-ként lehetett hivatkozni a rajta levő win/dos partícióra. 
(Ebből a da2 -t asszem devfs-sel már nem lehetne elérni, de a franc 
emlékszik rá)

Hozzá tartozó beállítások a /etc/rc.conf -ban:

rpcbind_enable="YES"
amd_enable="YES"
amd_flags="-F /etc/amd.conf"

2) Egy másik lehetőség az usbd.conf használata, ami (ha jól tudom) épp 
az elavulás irányába megy. Ott ugyanis az attach/detach művelethez 
parancsot is fűzhetsz - ezt én a devfs.{conf,rules}-ben nem találtam, 
hogy hogyan lehet megcsinálni (ha valaki tudja, ne, kíméljen!).

3) Meg lehet nézni pl. a PC-BSD-t, hogy csinálja az ilyesmit, hát 
maradjunk annyiban, életveszélyes (biztonsági megfontolásból)

Zahy < Gabor at Zahemszky dot HU >

-- 
#!/bin/ksh
Z='21N16I25C25E30, 40M30E33E25T15U!';IFS=' ABCDEFGHIJKLMNOPQRSTUVWXYZ 
';set -- $Z;for i;{ [[ $i = ? ]]&&print $i&&break;[[ $i = ??? 
]]&&j=$i&&i=${i%?};typeset -i40 i=8#$i;print -n ${i#???};[[ "$j" = ??? 
]]&&print -n "${j#??} "&&j=;typeset +i i;};IFS=' 0123456789 ';set -- 
$Z;for i;{ [[ $i = , ]]&&i=2;[[ $i = ?? ]]||typeset -l i;j="$j 
$i";typeset +l i;};print "$j"



További információk a(z) BSD levelezőlistáról