LINUX.ORG.RU
ФорумAdmin

права при монтировании udf cdrw на запись


0

0

Форматирую от имени пользователя диск:
mkudffs /dev/pktcdvd/pktcdvd0 (права соответственно позволяют это)
Монтирую от имени пользователя диск через fstab:
/dev/pktcdvd/pktcdvd0 /mnt/cdrom-rw udf iocharset=koi8-r,noauto,rw,noatime,users 0 0
захожу на диск - создать файл не могу. Создать файл может только root. Создаю рутом дирректорию, выставляю в ней права на запись для пользователя - пользователь может писать в эту дирректорию. Но не в корень диска.
Если же сделать от рута:
chown Пользователь /mnt/cdrom-rw (при примонтированном диске),
то пользователь может писать в корень диска.

На самой же дирректории права позволяют:
drwxrwx--- 2 root cdrw 48 Апр 22 21:04 cdrom-rw/ - при отмонтированном
drwxr-xr-x 3 root root 92 Май 10 15:19 cdrom-rw/ - при примантированном

Вопрос - как сделать доступ для пользователя без изменения владельца диска от рута?

Есть такая проблема. mkudffs создаёт фс с владельцем, везде
установленым в рута, и без права записи для других. Нормального
решения я не нашёл - сделал патч на mkudffs, который устанавливает
владельца в того, кто запустил процесс, но по-хорошему это не решение,
ибо на другой системе где будет читаться/писаться этот диск пользователи
будут другие...

Если интересно - вот этот патч:
--- udftools-1.0.0b3/mkudffs/mkudffs.c.ORIG     2004-02-23 00:35:33.000000000 -0300
+++ udftools-1.0.0b3/mkudffs/mkudffs.c  2004-03-14 22:34:54.000000000 -0300
@@ -568,6 +568,15 @@
        struct terminalEntry *te;

        desc = udf_mkdir(disc, pspace, NULL, 0, offset, NULL);
+       if(getuid()) {
+           if (disc->flags & FLAG_EFE) {
+               ((struct extendedFileEntry *)desc->data->buffer)->uid = cpu_to_le32(getuid());
+               ((struct extendedFileEntry *)desc->data->buffer)->gid = cpu_to_le32(getgid());
+           } else {
+               ((struct fileEntry *)desc->data->buffer)->uid = cpu_to_le32(getuid());
+               ((struct fileEntry *)desc->data->buffer)->gid = cpu_to_le32(getgid());
+           }
+       }
        offset = desc->offset;

        if (disc->flags & FLAG_STRATEGY4096)

slav ★★
()
Ответ на: комментарий от slav

Спасибо большое!
Наложил патч - заработало!

У корня диска получаются права 755. Если бы эти права были 777 к примеру, то это в некоторой степени решило бы проблему. Всё же сохранение владельца, а самое главное прав на файлы - иногда очень полезны.

progserega
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.