LINUX.ORG.RU
ФорумGames

Совместное использование префикса wine двумя linux-пользователями

 


0

1

Привет, ЛОР.

Есть 2 учётные записи на одном компьютере. И подумалось: а нельзя ли сделать так, чтобы в одну (весьма объёмистую) игру можно было играть из-под обоих аккаунтов, не дублируя содержимое wine-префикса?

Я перенёс префикс в «нейтральный» каталог, из домашних каталогов сделал на него символические ссылки. Открыл префикс и всё его содержание рекурсивно на запись всем. Владельцем остался первый пользователь. У него всё работает. У второго при попытке запуска игры под wine выдаётся сообщение:

wine: .wine-proton is not owned by you.

(Я использую wine-proton из репозитория @Kron4ek.)

Владелец каталога, понятное дело, может быть только один. Это принципиальное ограничение wine, или с этим можно что-то сделать, через группы как-то разрулить, например?

Уточнение: об одновременном запуске речь не идёт, только про совместное использование файлов игры. По очереди.

★★★★★

Последнее исправление: hobbit (всего исправлений: 1)

1) Юзеры будут там создавать файлы уже не доступные на запись другому.

2) wineserver рассчитывает, что запись в префикс никто посторонний не делает, а с двумя юзерами у тебя будет два одновременно запущеных wineserver-а и гонки между ними, они на такое просто не рассчитаны, хоть и может ничего и не сломается

Если не одновременно - сделай враппер который будет chown делать перед запуском.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Юзеры будут там создавать файлы уже не доступные на запись другому.

ACL решает эту проблему. Ну или можно обойтись добавлением пользователей в единую primary group (но юзер сможет сменить права на файлы и лишить всех остальных доступа).

wineserver рассчитывает, что запись в префикс никто посторонний не делает, а с двумя юзерами у тебя будет два одновременно запущеных wineserver-а и гонки между ними, они на такое просто не рассчитаны, хоть и может ничего и не сломается

Бинд-маунтить её перед запуском Wine. Изменения, пушнутые вайном не сливать обратно.

mord0d ★★★★★
()

И подумалось: а нельзя ли сделать так, чтобы в одну (весьма объёмистую) игру можно было играть из-под обоих аккаунтов, не дублируя содержимое wine-префикса?

Steam, например, не хранит бинарники игр внутри префиксов, что позволяет минимизировать дублирование.

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

Не одновременно, разумеется. Идея с chown при каждом запуске меня что-то пугает, хотя может и сработать.

Хотя из того, что

Юзеры будут там создавать файлы уже не доступные на запись другому.

возможно, chown действительно единственный выход, хоть и костыльный.

hobbit ★★★★★
() автор топика
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

Ещё варианты:

  • пусть игра лежит в нейтральном месте, ~/.wine у каждого свой, а директория с игрой линкуется пользователям в ~/.wine/dosdevices/x:
  • создать третьего пользователя, который будет хозяином «бутылки», и на него переключаться
lnx
()
Ответ на: комментарий от hobbit

А действительно. Что мешает скопировать/создать новый префикс и пробросить в него игру банальным симлинком?

Vochatrak-az-ezm ★★
()
Последнее исправление: Vochatrak-az-ezm (всего исправлений: 1)
Ответ на: комментарий от Vochatrak-az-ezm

если через оверлей правильно примонтировать, вайн может и не понять. Лень проверять.
Надо смотреть, что и куда монтировать. Можно не весь ~/.wine.
И задача сформулирована мутновато. Что разделяют оба пользователя? один аккаунт игры или только файлы игры, а каждый играет «сам за себя»?

lnx
()
Последнее исправление: lnx (всего исправлений: 2)

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

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 1)
Ответ на: комментарий от annulen

У некоторых игр и программ просто привязка к определенному местоположению, которое они берут из реестра, в таком случае или править реестр или делать символическую ссылку. Но @hobbit, я полагаю, речь ведет о World of Warcraft, в таком случае можно не прокидывать.

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

Наверное, склоняюсь к этому варианту.

Тогда навскидку ещё две идеи (на случай, если захочется проделать то же самое с другими играми):

  • попробовать вынести весь Program Files;
  • попробовать вынести весь drive_c.

Вторая идея выглядит более целостной (мало ли куда ещё программы могут нагадить), но не будет ли с ней той же засады, что и с корнем префикса?

hobbit ★★★★★
() автор топика
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от lnx

Подправил ОП. Да, речь сугубо про файлы и сугубо по очереди. Про аккаунт игры речь вообще не идёт, он контролируется сервером, а не клиентом.

hobbit ★★★★★
() автор топика

Рефлинки. ФС подмонтирована в одну директорию с одними правами, в другую - с другими (возможно ФС без юниксовых прав). Какие-то решения с использованием FUSE наподобие того, что было и есть в Андроиде - например bindfs.

token_polyak ★★★★
()
Последнее исправление: token_polyak (всего исправлений: 1)