Всем привет!Есть странная проблема с монтированием vfat раздела - не применяются "права", невозможно записать в раздел не под рутом.
Исходные данные:
/dev/hdc1 - флешка с файловой системой vfat
/flash - каталог, куда ее замонтировать
uid=101 - пользователь, под которым надо писать во флеш
uid=102 - группа, которой можно писать во флещ.делаем:
bash-3.2# uname -r
2.6.18-53.1.4.el5 (centos какая-то)#пробуем замонтировать так:
bash-3.2# mount -t vfat -o uid=101,defaults,dmask=007,fmask=007 /dev/hdc1 /flash
#отображаемые права без изменений:
bash-3.2# ls -n
total 72
. . .
drwxr-xr-x 6 0 0 4096 Dec 31 1969 flash
. . .#пробуем замонтировать по-другому:
bash-3.2# mount -t vfat -o uid=101,defaults,dmask=000,fmask=000 /dev/hdc1 /flash
#ни каких изменений:
bash-3.2# ls -n
total 72
. . .
drwxr-xr-x 6 0 0 4096 Dec 31 1969 flash
. . .Что пробовал:
- всевозможные комбинации параметров mount
- прописывать жестко в fstab
- монтировать под пользователем, которому нужна запись
и еще три десятка рецептов, которые не помогли.Немного о системе:
bash-3.2# mount
/dev/mapper/livecd-rw on / type ext3 (rw,noatime)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)Эта система - "прошивка" VoIP сервера. Корень запакован в squashfs, стартует с флешки как livecd, после запуска носитель не доступен, потом его монтируем по метке в каталог /flash. Можно, конечно, все перевести в ext3 и проблема уйдет, но много виндозных пользователей (как и я сам), которые не могут читать/писать ext3 разделы, что нехорошо скажется на скорости восстановления системы в случае сбоя.
Спасибо за советы.
pmount ?
нету такого
В пакетах тоже нету
>[оверквотинг удален]
>sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
>
>Эта система - "прошивка" VoIP сервера. Корень запакован в squashfs, стартует с
>флешки как livecd, после запуска носитель не доступен, потом его монтируем
>по метке в каталог /flash. Можно, конечно, все перевести в ext3
>и проблема уйдет, но много виндозных пользователей (как и я сам),
>которые не могут читать/писать ext3 разделы, что нехорошо скажется на скорости
>восстановления системы в случае сбоя.
>
>Спасибо за советы.mkdir /mnt/flash
и добав в fstab:
/dev/hdc1 /mnt/flash vfat users,owner,rw,umask=000 2 2
затем mount /mnt/flash
Не хочет:bash-3.2# mount /mnt/flash
mount: /dev/hdc1 already mounted or /mnt/flash busyпри этом:
bash-3.2# mount
/dev/mapper/livecd-rw on / type ext3 (rw,noatime)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)есть подозрение что мешает /dev/mapper
а другой, не live-cd, системе монтируется и мапит права на файлы исправно с этой же флешкой
в ообычной системе я мапил все нормально. и права выставляются и владелец как надо
есть подозрение что флешка уже каким-то образом подключена, и когда я ее еще раз подключаю, она моунтится с прежними правамикак узнать, какие ресурсы подключены через lvm?
>в ообычной системе я мапил все нормально. и права выставляются и владелец
>как надо
>есть подозрение что флешка уже каким-то образом подключена, и когда я ее
>еще раз подключаю, она моунтится с прежними правами
>
>как узнать, какие ресурсы подключены через lvm?/etc/lvmtab
>[оверквотинг удален]
>proc on /proc type proc (rw)
>sysfs on /sys type sysfs (rw)
>devpts on /dev/pts type devpts (rw,gid=5,mode=620)
>tmpfs on /dev/shm type tmpfs (rw)
>none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
>sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
>
>есть подозрение что мешает /dev/mapper
>а другой, не live-cd, системе монтируется и мапит права на файлы исправно
>с этой же флешкойmkfs -T vfat /dev/hdc1
может быт вправде девайс занять. =)))
>mkfs -T vfat /dev/hdc1
>
>
>
>может быт вправде девайс занять. =)))только не таким способом
решение найдено.Как и предполагалось, еще одно монтирование совершалось с прежними правами. Решить проблему можно с помощью петлевого устройства (раздел монтируется при старте по метке):
mount -L TRIXBOXLIVE -t vfat -o loop,remount,gid=102,uid=101,umask=000 /flashНО! по каким-то причинам этот способ не работает. Поэтому в стартовом скрипте сделал так:
umount -f /flash
DEVICE=$(blkid -o device -t LABEL="TRIXBOXLIVE" -l)
LOOP_DEV=$(losetup -f)
losetup "${LOOP_DEV}" "${DEVICE}"
mount "${LOOP_DEV}" /flash -o uid=101,gid=102,umask=000 -t vfat
может umask=117 лучше
не, там много кому надо писать в этот каталог, так что нормально.
Вообще про систему вот тут можно почитать:
http://lynks.ru/blog/articles/trixbox-embedded-26
>не, там много кому надо писать в этот каталог, так что нормально.
>
>Вообще про систему вот тут можно почитать:
>http://lynks.ru/blog/articles/trixbox-embedded-26777 & 117 = 660 оно же --rw-rw----
>>не, там много кому надо писать в этот каталог, так что нормально.
>>
>>Вообще про систему вот тут можно почитать:
>>http://lynks.ru/blog/articles/trixbox-embedded-26
>
>777 & 117 = 660 оно же --rw-rw----А как всем остальным писать? а как скрипты запускать? Никак. потому и 000
>>>не, там много кому надо писать в этот каталог, так что нормально.
>>>
>>>Вообще про систему вот тут можно почитать:
>>>http://lynks.ru/blog/articles/trixbox-embedded-26
>>
>>777 & 117 = 660 оно же --rw-rw----
>
>А как всем остальным писать? а как скрипты запускать? Никак. потому и
>000Чёй-то я вас не пойму, с начала трахаетесь с настройкой прав для определённого
юзера и группы, потом даёте права 777. Где тайный смысл?А скрипты пускаются:
sh /flash/myscrip.sh
perl /flash/myscript.pl
python /flash/mysctipt.py
и т.п.
>Чёй-то я вас не пойму, с начала трахаетесь с настройкой прав для
>определённого
>юзера и группы, потом даёте права 777. Где тайный смысл?проблема была в том, что при повторном монтировании флеша ему давались прежние права доступа (для рута), даже если явно определить другое.
mount с опцией remount не помогал, так как в процессе загрузки перемонтирующий скрипт располагался на этой же самой флешке, она была занята. Пришлось написать вышеприведенную конструкцию с монтированием через петлевое устройство.