Summary: | Нет доступа к файлу, если пользователь не является владельцем | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Константин Кондратюк <kondratyuk> |
Component: | Общее | Assignee: | Константин Кондратюк <kondratyuk> |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | P5 | CC: | lav |
Version: | 1.0.9 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Linux | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 692, 777, 1115 |
Description
Константин Кондратюк
2008-03-05 11:16:44 MSK
Ну так пример команды, и кусок WINEDEBUG=+file Для воспроизведения баги нужно два пользователя, входящие в группу wineadmin, и общее окружение, созданное с помощью административной установки. При выполнении c:\windows\downloads\InstMsiA.exe одним из пользователей возникает ошибка. После удаления c:\windows\Installer\, содержимого c:\windows\temp и c:\Config.Msi установка начинает проходить. Ошибок в трейсах по +file нет, из непонятных явлений - только закрепляющий бит на temp, но снятие его ситуацию не исправляет. Всё дело в том, что проблемные директории может изменять только владелец файла. После chown на все директории отдельно или на весь /var/lib/wine/default сразу проблема уходит (от одного пользователя к другому). Ошибка кроется в функции SetFileAttributesW(), в которую передаётся флаг 6 (HIDDEN и SYSTEM) Разбор функции показывает, что отсюда возвращается не STATUS_SUCCESS: status = NtSetInformationFile( handle, &io, &info, sizeof(info), FileBasicInformation ); Патч отправлен в wine-patches@, после его принятия закрою багу. Пока приложил к нашему patches.list. *** Bug 371 has been marked as a duplicate of this bug. *** В wine не приняли, у нас в сборке исправление успешно работает. |