Bug 7551

Summary: hal must configure r/w mounts, if at all
Product: Sisyphus Reporter: Michael Shigorin <mike>
Component: halAssignee: Anton Farygin <rider>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: blocker    
Priority: P2 CC: eostapets, lav, rom_as, wrar, zerg
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 7079    

Description Michael Shigorin 2005-08-03 23:09:35 MSD
уж раз 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 Anton Farygin 2005-08-04 09:39:59 MSD
Пример опций для разных файловых систем, пожалуйста.
Comment 2 Michael Shigorin 2005-08-04 13:36:05 MSD
*** Bug 7560 has been marked as a duplicate of this bug. ***
Comment 3 Roman Savochenko 2005-08-04 13:45:27 MSD
Дистрибутив: 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 Michael Shigorin 2005-08-04 13:50:03 MSD
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 Roman Savochenko 2005-08-04 14:21:12 MSD
> PS: Ром, для ISO9660/Joliet (наиболее распространённые) codepage не нужен. 
> Разве для RockRidge-only, но это надо ставить эксперимент, т.к. живьём не видел.

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

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

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

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

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

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

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

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

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

А это случаем не тот JPG, в котором после кучи пробелов .exe? ;)
Comment 14 Michael Shigorin 2005-08-04 22:32:40 MSD
> > > Это где такое?
> > В свеженалитом с нуля эксклюзивно 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 Michael Shigorin 2005-08-04 23:01:14 MSD
(In reply to comment #13)
> А это случаем не тот JPG, в котором после кучи пробелов .exe? ;)
Не, test имени dd тоже был "зелёным". ;(
Comment 16 Anton Farygin 2005-08-08 12:09:37 MSD
+         <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 Anton Farygin 2005-08-08 12:15:01 MSD
fixed (hal-0.5.3-alt6)

так же просьба подумать, как быть с ext2/ext3, reiserfs и другими файловыми
системами на USB flash'ках. Там все пока что глуховато ;-(
Comment 18 Michael Shigorin 2005-08-08 12:26:46 MSD
IMHO проще пока забить и рекомендовать продвинутым пользователям самостоятельно
настроить запись в fstab с тем же subfs.  Можешь повесить на #7371, если надо
будет к этому вернуться.
Comment 19 Andrey Rahmatullin 2005-08-08 12:47:46 MSD
(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 Anton Farygin 2005-08-08 12:55:06 MSD
хм.. действительно, бня какая-то.
сейчас исправлю
Comment 21 Roman Savochenko 2005-08-21 19:39:07 MSD
Дистрибутив: 3.0rc5

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

Однако, вылезла другая проблема с usbflash, пишется она на скорости около 70кб/сек.
Проверял на двух флешках. Есть предположение, что это в ядре 2.6.12 что-то
сломано. Ибо недавно на ALM2.4 поставил ядро 2.6.12wks и там появилась эта
проблема, т.е. пишет на скорости 70кб/сек, а читает на 512кб/сек.
Comment 22 Anton Farygin 2005-08-22 11:46:36 MSD
можно подробнее о параметрах для cdrom и floppy ?
Comment 23 Roman Savochenko 2005-08-22 20:57:25 MSD
(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 Roman Savochenko 2005-08-31 18:47:54 MSD
Дистрибутив 3.0rc6
Необходимых опций для cdrom и floppy всё ещё не видать.
Comment 25 Anton Farygin 2005-08-31 18:50:20 MSD
а зачем собственно iocharset=utf8 для cdrom ?

Если она реально не работает (cdrom не монтируется с такой опцией) ?
Comment 26 Vitaly Lipatov 2005-08-31 23:56:15 MSD
1. Если у пользователя будет локаль не utf8, будет ли передан нужный параметр? 
 
2. Тогда это бага на ядро, если оно не понимает указания utf8. 
Или где-то есть верховная политика "неуказание кодировки есть признание её за 
UTF8?" 
Есть ли обоснование для этого? Ведь наверное в ядре при неуказании кодировки 
используется какой-то DEFAULT? 
Впрочем, припоминая историю с mkisofs, код перекодирования в которую стянут из 
ядра, некоторые проблемы с этим в ядре есть... 
Comment 27 Anton Farygin 2005-09-01 09:03:18 MSD
Само собой ничего не произойдет. в данный момент я просто прописываю дефолтные
значения настроек в HAL. Если пользователь поменяет данные настройки, то у него
все будет хорошо.

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

VFAT, кстати, тоже ругается на UTF, но при этом монтирует.
Comment 28 Sergey Vlasov 2005-09-01 12:49:54 MSD
(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 Michael Shigorin 2005-09-03 20:00:06 MSD
On Sat, Sep 03, 2005 at 06:29:25PM +0400, Dimitrius wrote:
> 2.) Бага с записью на floppy так и не исправлена. Прочитать
> содержимое можно дискеты, а записать нет.

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

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