Bug 7551 - hal must configure r/w mounts, if at all
: hal must configure r/w mounts, if at all
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/hal)
: unstable
: all Linux
: P2 blocker
Assigned To:
:
:
:
:
: 7079
  Show dependency tree
 
Reported: 2005-08-03 23:09 by
Modified: 2006-03-15 16:37 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2005-08-03 23:09:35
уж раз hal пишет строчки для монтирования, было бы уместно для r/w носителей
писать строчки для r/w монтирования.  из письма:

> - hal/subfs отлично работающие(этих версий еще нет в Sisyphus)

cdrw/cdrw смонтировался (/media/cdrom)
floppy смонтировался, под пользователем читается, но не пишется
        -- не хватает либо uid/gid, либо umask=0 (/media/floppy)
6-in-1 card reader с SD (sdb1) смонтировался, что примечательно
        -- не требуется перетыкать ридер, можно просто менять
        карточки; с записью из-под пользователя -- такая же
        проблема, что и с дискеткой

PS: showexec must die :(  JPG выставляет исполнябельными...
------- Comment #1 From 2005-08-04 09:39:59 -------
Пример опций для разных файловых систем, пожалуйста.
------- Comment #2 From 2005-08-04 13:36:05 -------
*** Bug 7560 has been marked as a duplicate of this bug. ***
------- Comment #3 From 2005-08-04 13:45:27 -------
Дистрибутив: 3.0rc2
Как и с ALM2.4 не хватает опций:
- для Floppy: <quiet,umask=0,iocharset=utf8,codepage=866>;
- для FlashDisk: <quiet,umask=0,iocharset=utf8,codepage=866>;
- для CD/DVD: <iocharset=utf8,ro>;
------- Comment #4 From 2005-08-04 13:50:03 -------
umask=0 сработает для vfat, udf, iso9660.  Небезопасно, но для сменных
носителей
в контексте Compact 3.0 приемлемо.

Для vfat надо добавлять quiet -- иначе при попытке chown()/chmod() будет лишняя
ругань, особенно неприятная при диалоговых окнах.

Пример для floppy упомянут в #7462.

Ну и для vfat/iso9660 (не знаю про udf) надо iocharset сообразно системному
прописывать (на крайний случай хоть utf8 прибивать), для vfat -- в идеале
OEM-кодировку сообразно языку (на крайний случай 866 гвоздями -- не cp866!).

PS: Ром, для ISO9660/Joliet (наиболее распространённые) codepage не нужен. 
Разве для RockRidge-only, но это надо ставить эксперимент, т.к. живьём не
видел.
------- Comment #5 From 2005-08-04 14:21:12 -------
> PS: Ром, для ISO9660/Joliet (наиболее распространённые) codepage не нужен. 
> Разве для RockRidge-only, но это надо ставить эксперимент, т.к. живьём не видел.

codepage ненужен, нужен только iocharset. Собственно, codepage для CD я не
указывал.
------- Comment #6 From 2005-08-04 14:27:43 -------
(In reply to comment #0)
> PS: showexec must die :(  JPG выставляет исполнябельными...

Это где такое?  У меня не выставляет.  А вот без этой опции действительно
некрасиво - на vfat исполняемое получается всё.
------- Comment #7 From 2005-08-04 14:31:00 -------
Для vfat ещё хорошо бы добавить shortname=mixed, чтобы не портился регистр для
коротких имён файлов.
------- Comment #8 From 2005-08-04 14:39:22 -------
(In reply to comment #6)
> Это где такое?
В свеженалитом с нуля эксклюзивно 2.9.14.  Причём раньше (давно) использовал
noexec, но и showexec, когда появился -- вроде даже работал (exec/com/bat +,
остальные -).
------- Comment #9 From 2005-08-04 15:00:24 -------
(In reply to comment #8)
> (In reply to comment #6)
> > Это где такое?
> В свеженалитом с нуля эксклюзивно 2.9.14.

Странно.  Это точно vfat?  Что в /proc/mounts на самом деле?

> Причём раньше (давно) использовал
> noexec, но и showexec, когда появился -- вроде даже работал (exec/com/bat +,
> остальные -).

noexec сейчас как раз не работает как надо - исполнение блокируется, но файлы
всё равно показываются как исполняемые.
------- Comment #10 From 2005-08-04 18:19:19 -------
принято все, кроме iocharset.

В следущей сборке hal подправлю.

С iocharset пока предложение такое: сделать отдельный конфиг для hal, в котором
прописывать кодировку сменных устройств.

конфиг заложить естественно в /etc/

Ну или добиться таки исправленного libnatspec и собратся submount с ним.
------- Comment #11 From 2005-08-04 18:59:09 -------
(In reply to comment #6)
> А вот без этой опции действительно
> некрасиво - на vfat исполняемое получается всё.
dmask=0,fmask=0111 ? (2.6 only)
Тем более что на ntfs не поддерживается showexec.
------- Comment #12 From 2005-08-04 19:06:37 -------
(In reply to comment #0)
> PS: showexec must die :(  JPG выставляет исполнябельными...
Не верю.

static int is_exec(unsigned char *extension)
{
        unsigned char *exe_extensions = "EXECOMBAT", *walk;

        for (walk = exe_extensions; *walk; walk += 3)
                if (!strncmp(extension, walk, 3))
                        return 1;
        return 0;
}
------- Comment #13 From 2005-08-04 19:33:37 -------
(In reply to comment #0)
> PS: showexec must die :(  JPG выставляет исполнябельными...

А это случаем не тот JPG, в котором после кучи пробелов .exe? ;)
------- Comment #14 From 2005-08-04 22:32:40 -------
> > > Это где такое?
> > В свеженалитом с нуля эксклюзивно 2.9.14.
> Странно.  Это точно vfat?  Что в /proc/mounts на самом деле?
Сейчас не посмотреть, на тот диск уже rc3 заливался (взорвался на ошибке при
установке пакетов третьей стадией, btw -- так и бросил, пошёл домой).

Это была usb flash, `mount` глаз не царапнул -- видимо, vfat.
Сам удивился.

(In reply to comment #10)
> принято все, кроме iocharset.  В следущей сборке hal подправлю.
Вот и аюшки :-)

> С iocharset пока предложение такое: сделать отдельный конфиг для hal, в котором
> прописывать кодировку сменных устройств.
> конфиг заложить естественно в /etc/
Разумно.

> Ну или добиться таки исправленного libnatspec и собратся submount с ним.
Насколько понимаю, Виталик на отдыхе и с неделю его точно ждать не следует.
Попрошу Женю глянуть.

> > PS: showexec must die :(  JPG выставляет исполнябельными...
> Не верю.
Но факт.  Сам глаза протёр, проверил -- написано и даже правильно.
------- Comment #15 From 2005-08-04 23:01:14 -------
(In reply to comment #13)
> А это случаем не тот JPG, в котором после кучи пробелов .exe? ;)
Не, test имени dd тоже был "зелёным". ;(
------- Comment #16 From 2005-08-08 12:09:37 -------
+         <match key="volume.fstype" string="vfat">
+             <merge key="volume.policy.mount_option.umask" type="string">0</merge>
+             <merge key="volume.policy.mount_option.dmask" type="string">0</merge>
+             <merge key="volume.policy.mount_option.fmask"
type="string">0111</merge>
+             <merge key="volume.policy.mount_option.quiet" type="bool">true</merge>
+             <merge key="volume.policy.mount_option.shortname"
type="string">mixed</merge>
+         </match>
+
+         <match key="volume.fstype" string="ntfs">
+             <merge key="volume.policy.mount_option.dmask" type="string">0</merge>
+             <merge key="volume.policy.mount_option.fmask"
type="string">0111</merge>
+             <merge key="volume.policy.mount_option.quiet" type="bool">true</merge>
+             <merge key="volume.policy.mount_option.umask" type="string">0</merge>
+         </match>

Вот так пойдет ?
------- Comment #17 From 2005-08-08 12:15:01 -------
fixed (hal-0.5.3-alt6)

так же просьба подумать, как быть с ext2/ext3, reiserfs и другими файловыми
системами на USB flash'ках. Там все пока что глуховато ;-(
------- Comment #18 From 2005-08-08 12:26:46 -------
IMHO проще пока забить и рекомендовать продвинутым пользователям самостоятельно
настроить запись в fstab с тем же subfs.  Можешь повесить на #7371, если надо
будет к этому вернуться.
------- Comment #19 From 2005-08-08 12:47:46 -------
(In reply to comment #16)
> +             <merge key="volume.policy.mount_option.umask" type="string">0</
merge>
> +             <merge key="volume.policy.mount_option.dmask" type="string">0</
merge>
> +             <merge key="volume.policy.mount_option.fmask"
> type="string">0111</merge>

Не надо мешать umask и [fd]mask.
------- Comment #20 From 2005-08-08 12:55:06 -------
хм.. действительно, бня какая-то.
сейчас исправлю
------- Comment #21 From 2005-08-21 19:39:07 -------
Дистрибутив: 3.0rc5

- на cdrom и floppy нормальных параметров всё ещё не поставили;
- на usbflash поставили и даже пишется, т.е. к опциям притензий нет;

Однако, вылезла другая проблема с usbflash, пишется она на скорости около 70кб/сек.
Проверял на двух флешках. Есть предположение, что это в ядре 2.6.12 что-то
сломано. Ибо недавно на ALM2.4 поставил ядро 2.6.12wks и там появилась эта
проблема, т.е. пишет на скорости 70кб/сек, а читает на 512кб/сек.
------- Comment #22 From 2005-08-22 11:46:36 -------
можно подробнее о параметрах для cdrom и floppy ?
------- Comment #23 From 2005-08-22 20:57:25 -------
(In reply to comment #22)
> можно подробнее о параметрах для cdrom и floppy ?
 
Вот чего имеется в /etc/fstab:
/dev/cdrom /media/cdrom subfs fs=cdfss,nosuid,nodev,noexec 0 0
/dev/fd0                /media/floppy           subfs  
user,nosuid,nodev,noexec,noauto,fs=floppyfss,comment=managed 0 0

А хотелосьбы видеть параметры:
- для Floppy: <quiet,umask=0,iocharset=utf8,codepage=866>;
- для CD/DVD: <iocharset=utf8,ro>;
------- Comment #24 From 2005-08-31 18:47:54 -------
Дистрибутив 3.0rc6
Необходимых опций для cdrom и floppy всё ещё не видать.
------- Comment #25 From 2005-08-31 18:50:20 -------
а зачем собственно iocharset=utf8 для cdrom ?

Если она реально не работает (cdrom не монтируется с такой опцией) ?
------- Comment #26 From 2005-08-31 23:56:15 -------
1. Если у пользователя будет локаль не utf8, будет ли передан нужный параметр? 

2. Тогда это бага на ядро, если оно не понимает указания utf8. 
Или где-то есть верховная политика "неуказание кодировки есть признание её за 
UTF8?" 
Есть ли обоснование для этого? Ведь наверное в ядре при неуказании кодировки 
используется какой-то DEFAULT? 
Впрочем, припоминая историю с mkisofs, код перекодирования в которую стянут из 
ядра, некоторые проблемы с этим в ядре есть... 
------- Comment #27 From 2005-09-01 09:03:18 -------
Само собой ничего не произойдет. в данный момент я просто прописываю дефолтные
значения настроек в HAL. Если пользователь поменяет данные настройки, то у него
все будет хорошо.

По поводу пункта 2. Насколько я понимаю - в iso9660 и в udf файловая система
изначально в Unicode. соответственно перекодировка не требуется. 

VFAT, кстати, тоже ругается на UTF, но при этом монтирует.
------- Comment #28 From 2005-09-01 12:49:54 -------
(In reply to comment #27)
> По поводу пункта 2. Насколько я понимаю - в iso9660 и в udf файловая система
> изначально в Unicode. соответственно перекодировка не требуется. 

Там всё несколько хуже.  В udf и расширении Joliet для iso9660 действительно всё
в Unicode, поэтому для них нужно указывать опцию iocharset, чтобы имена
выдавались в нужной кодировке. В "чистом" iso9660 допускается только ASCII. А
вот для расширения Rock Ridge перекодировка имён файлов не поддерживается вообще.


> VFAT, кстати, тоже ругается на UTF, но при этом монтирует.

Причём ругается правильно.  Проблема с vfat в том, что в nls_utf8 нет таблиц для
преобразования регистра символов (точнее, всё ещё хуже - в интерфейсе nls в ядре
преобразование регистра поддерживается только для однобайтовых кодировок), в
результате файловая система начинает работать с учётом регистра символов, что не
соответствует нормальному поведению vfat. Поэтому у vfat есть отдельная опция
utf8, а использовать iocharset=utf-8 не рекомендуется (хотя, похоже, и опция
utf8 там реализована как-то странно).
------- Comment #29 From 2005-09-03 20:00:06 -------
On Sat, Sep 03, 2005 at 06:29:25PM +0400, Dimitrius wrote:
> 2.) Бага с записью на floppy так и не исправлена. Прочитать
> содержимое можно дискеты, а записать нет.

:(
------- Comment #30 From 2005-09-13 13:31:54 -------
исправлено в hal-0.5.4-alt3
------- Comment #31 From 2006-02-17 19:45:31 -------
К 3.1 всё равно отдельно смотреть...
------- Comment #32 From 2006-03-13 18:58:16 -------
(In reply to comment #4)
> umask=0 сработает для vfat, udf, iso9660.  Небезопасно, но для сменных носителей
> в контексте Compact 3.0 приемлемо.

А нельзя ли создать соответствующие группы и монтировать с gid, чтобы запись
позволялать только тем, кто в данных группах состоит, а не все подряд?
------- Comment #33 From 2006-03-14 09:32:30 -------
не факт что это можно. точнее - не для всех файловых систем.
------- Comment #34 From 2006-03-15 16:37:23 -------
(In reply to comment #32)
> А нельзя ли создать соответствующие группы и монтировать с gid, чтобы запись
> позволялать только тем, кто в данных группах состоит, а не все подряд?
Группы floppy и cdrom уже есть, но их ещё заполнять надо.  Плюс см. #c33