1

На машине с Ubuntu 9.10 (Karmic Koala) я записал компакт-диск из командной строки, используя:

cdrecord -v speed=16 dev=0,1,0 /FPS.iso

Компакт-диск теперь содержит исполняемый файл и некоторые файлы. Я протестировал компакт-диск, загрузив его на другую машину (Red Hat 5.3), и при попытке запустить программу я получаю следующее сообщение:

bash: ./FPS1_1: Permission denied

Я могу открыть другие файлы, такие как текстовые документы (исполняемый файл также поставляется с общими библиотеками). Я понял, что записал CD как root, поэтому я записал другой как другой пользователь, но у меня все еще остается та же проблема. Как я могу удалить это разрешение или в чем проблема?

PS изображение было в / если это поможет.

Команда, которую я использовал для создания изображения:

mkisofs -frvJL -o /buffer/mycd.iso /temp/mydirectory/

-r означает "Создать рационализированную информацию о каталогах Rock Ridge". Должен ли я использовать -R ("Создать информацию о каталогах Rock Ridge")?

2 ответа2

1

Проблема не в том, как вы записали диск, а в том, как вы создали образ. Если вы не включите расширения Rock Ridge при создании ISO, тогда он будет использовать любые параметры, указанные во время операции монтирования, вместо тех разрешений, которые у него были изначально.

1

Как показывает ответ Игнасио , это больше связано с генерацией ISO и монтированием файловой системы, чем с записью ISO на диск.


Вы можете смонтировать CDR или ISO с опцией umask, чтобы убедиться, что файлы имеют исполняемый бит в смонтированной файловой системе. Например, umask = 022 даст всем файлам права доступа 755, также известные как rwxr-xr-x.

mount -t iso9660 -o umask=022 /dev/cdrom /path/to/mount/point

Это исправит проблему с разрешениями один раз; для постоянного исправления добавьте опцию umask в свои системы монтирования (/etc/fstab или любые используемые автомонтировщики) или исправьте ISO-образ.


В Ubuntu mkisofs является символической ссылкой на genisoimage. Согласно man-странице genisoimage, -R может быть ближе к тому, что вы хотите, чем -r (выделено мной):

-R Генерировать записи SUSP и RR с использованием протокола Rock Ridge для дальнейшего описания файлов в файловой системе ISO9660.

-r Это похоже на параметр -R, но для владельца файла и режимов установлены более полезные значения. Uid и gid установлены в ноль, потому что они обычно полезны только в авторской системе и не полезны для клиента. Все биты чтения файлов установлены в истину, так что файлы и каталоги доступны для глобального чтения на клиенте. Если для файла установлен какой-либо бит выполнения, установите все биты выполнения, чтобы исполняемые файлы были глобально исполняемыми на клиенте. Если для каталога задан какой-либо бит поиска, задайте все биты поиска, чтобы каталоги были доступны для глобального поиска на клиенте. Все биты записи очищаются, потому что файловая система будет монтироваться только для чтения в любом случае. Если какой-либо из битов специального режима установлен, очистите их, потому что блокировки файлов бесполезны в файловой системе, доступной только для чтения, и биты set-id нежелательны для uid 0 или gid 0.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .