Bug 54594 - Гадит из-под root в домашней директории
Summary: Гадит из-под root в домашней директории
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: waydroid (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Konstantin A Lepikhov (L.A. Kostis)
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-06-02 11:58 MSK by Sergey V Turchin
Modified: 2025-06-27 14:31 MSK (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey V Turchin 2025-06-02 11:58:13 MSK
Обнаружил, что всё содержимое ~/.local/share/waydroid/data стало принадлежать другому пользователю. Видимо:
1. Лезет root-ом в домашний каталог, иначе не смог бы.
2. Видимо, гвоздями прибит ID 1000, т.к. у пользователя другой.
Comment 1 Konstantin A Lepikhov (L.A. Kostis) 2025-06-13 09:29:42 MSK
(In reply to Sergey V Turchin from comment #0)
> Обнаружил, что всё содержимое ~/.local/share/waydroid/data стало
> принадлежать другому пользователю. Видимо:
> 1. Лезет root-ом в домашний каталог, иначе не смог бы.
> 2. Видимо, гвоздями прибит ID 1000, т.к. у пользователя другой.

это обнаружилось во время работы waydroid или когда сервис не выполняется?
Comment 2 Sergey V Turchin 2025-06-13 13:31:50 MSK
В какой-то момент стало при запуске waydroid. Ругань в терминале.
Полагаю, легко воспроизведётся у любого пользователя с ID отличным от 1000, т.к. у этого всё работало раньше и у него ID 500. У другого на другой машине тоже самое с ID 514.
Comment 3 Sergey V Turchin 2025-06-13 13:34:16 MSK
> у этого всё работало раньше
Сейчас не запускается. Даже если права поправить.
Comment 4 Konstantin A Lepikhov (L.A. Kostis) 2025-06-13 16:22:01 MSK
(In reply to Sergey V Turchin from comment #2)
> В какой-то момент стало при запуске waydroid. Ругань в терминале.
> Полагаю, легко воспроизведётся у любого пользователя с ID отличным от 1000,
> т.к. у этого всё работало раньше и у него ID 500. У другого на другой машине
> тоже самое с ID 514.

предполагаю, что этому предшествовало падение самого waydroid или lxc. Этот каталог монтируется во время запуска, туда lxc монтирует образ насколько я помню. Т.е. если в этом каталоге что то осталось, значит изоляция не работает и нужно смотреть логи waydroid/lxc.
Comment 5 Sergey V Turchin 2025-06-23 10:48:29 MSK
Возможно, но откуда взялис ID >= 1000? Их раньше не было и всё работало.
Их и сейчас нет. Откуда они взялись?

После исправления прав и запуска вот такое:

# l /home/zerg/.local/share/waydroid/data
итого 224
drwxrwxr-x  26 1000 1000  4096 июн 16 11:03 system/
drwx------   2 root root  4096 июн 16 11:03 property/
drwxrwxr-x   2 1000 1000  4096 фев 11 21:57 server_configurable_flags/
drwxrwx--x   2 1000 1000  4096 фев 11 21:54 tombstones/
drwxrwx---   4 1023 1023  4096 фев  6 20:40 media/
drwx------   7 1000 1000  4096 ноя 18  2023 backup/
drwxrwx--x  51 1000 1000  4096 ноя 18  2023 ./
drwx------   2 zerg zerg  4096 ноя 18  2023 per_boot/
drwxrwx--x   8 1000 1000  4096 ноя  4  2023 app/
drwxrwxr-x   2 1000 1000  4096 ноя  4  2023 icons/
drwxrwx--x 183 1000 1000 12288 ноя  4  2023 data/
drwxrwx---   2 1000 2001  4096 ноя  4  2023 lineageos_updates/
drwxr-xr-x   2 zerg 1000  4096 ноя  3  2023 waydroid_tmp/
drwxrwx--t   3 1000 9998  4096 ноя  2  2023 misc_ce/
drwxrwx---   3 1000 1000  4096 ноя  2  2023 system_ce/
drwxrwx--x   3 root root  4096 ноя  2  2023 vendor_ce/
drwxrwx---   6 1000 2001  4096 окт 21  2023 cache/
drwxrwx--x   2 1000 1000 16384 окт 21  2023 resource-cache/
drwxrwx--x   4 root root  4096 окт 21  2023 dalvik-cache/
drwxrwx--t  53 1000 9998  4096 окт 21  2023 misc/
drwx------   5 root root  4096 окт 21  2023 gsi/
drwxr-x---   3 root 2000  4096 окт 21  2023 ssh/
drwx------   2 root root  4096 окт 21  2023 adb/
drwx------   2 root root  4096 окт 21  2023 adbroot/
drwxrwx--t   3 1000 9998  4096 окт 21  2023 misc_de/
drwxrwx---   3 1000 1000  4096 окт 21  2023 system_de/
drwx--x--x   3 1000 1000  4096 окт 21  2023 user_de/
drwxrwx--x   3 root root  4096 окт 21  2023 vendor_de/
drwxrwx--x   2 1000 1000  4096 окт 21  2023 incremental/
drwx------   2 1000 1000  4096 окт 21  2023 rollback/
drwx------   2 1000 1000  4096 окт 21  2023 rollback-observer/
drwx--x--x   3 1000 1000  4096 окт 21  2023 user/
drwxrwxr-x   2 1000 1000  4096 окт 21  2023 anr/
drwxrwx---   2 1031 1031  4096 окт 21  2023 mediadrm/
drwxrwx---   3 1027 1027  4096 окт 21  2023 nfc/
drwx------   2 1000 1000  4096 окт 21  2023 ss/
drwx------   2 root root  4096 окт 21  2023 app-asec/
drwxrwx--x   2 1000 1000  4096 окт 21  2023 app-ephemeral/
drwxrwx--x   2 1000 1000  4096 окт 21  2023 app-lib/
drwxrwx---   2 1019 1019  4096 окт 21  2023 drm/
drwxrwx---   2 root root  4096 окт 21  2023 lost+found/
drwxrwx--x   2 root root  4096 окт 21  2023 ota/
drwxrwx---   2 1000 2001  4096 окт 21  2023 ota_package/
drwxrwx--x   4 root root  4096 окт 21  2023 vendor/
drwxrwx--x   2 1000 1000  4096 окт 21  2023 app-private/
drwxr-x--x   4 root root  4096 окт 21  2023 local/
drwxrwxr-x   2 1000 1000  4096 окт 21  2023 preloads/
drwxr-xr-x   6 root 1000  4096 окт 21  2023 apex/
drwxr-x---   2 1000 1000  4096 окт 21  2023 app-staging/
drwxr-xr-x   2 2000 2000  4096 окт 21  2023 bootchart/
drwxr-xr-x   3 zerg zerg  4096 окт 21  2023 ../
Comment 6 Sergey V Turchin 2025-06-23 10:50:03 MSK
(Ответ для Sergey V Turchin на комментарий #5)
> Откуда они взялись?
Ааа. Это android-овская файловая система с его правами и всё там правильно?
Comment 7 Konstantin A Lepikhov (L.A. Kostis) 2025-06-23 14:02:09 MSK
(In reply to Sergey V Turchin from comment #6)
> (Ответ для Sergey V Turchin на комментарий #5)
> > Откуда они взялись?
> Ааа. Это android-овская файловая система с его правами и всё там правильно?

да, это должен быть активный lxc mount в момент работы waydroid. Конечно, эти файлы могли бы лежать в другом месте, но таково решение разработчиков waydroid
Comment 8 Sergey V Turchin 2025-06-23 14:06:57 MSK
(Ответ для Konstantin A Lepikhov (L.A. Kostis) на комментарий #7)
> Конечно, эти файлы могли бы лежать в другом месте
Только, не могли бы, а должны бы.
Comment 9 Konstantin A Lepikhov (L.A. Kostis) 2025-06-23 15:28:43 MSK
(In reply to Sergey V Turchin from comment #8)
> (Ответ для Konstantin A Lepikhov (L.A. Kostis) на комментарий #7)
> > Конечно, эти файлы могли бы лежать в другом месте
> Только, не могли бы, а должны бы.

откуда такая категоричность? Какие проблемы с текущей конфигурацией?
Comment 10 Sergey V Turchin 2025-06-23 15:31:54 MSK
(Ответ для Konstantin A Lepikhov (L.A. Kostis) на комментарий #9)
> откуда такая категоричность?
Лазить пользователю в ~/ плохо по определению. Ещё и в таком объёме.
Comment 11 Ilya Sorochan 2025-06-23 18:18:03 MSK
(In reply to Sergey V Turchin from comment #10)
> (Ответ для Konstantin A Lepikhov (L.A. Kostis) на комментарий #9)
> > откуда такая категоричность?
> Лазить пользователю в ~/ плохо по определению. Ещё и в таком объёме.

Почему? Это же .local/share/<app>. Аналогично хэшер прямо в корне хомяка все делает, что на мой взгляд даже хуже.
Comment 12 Sergey V Turchin 2025-06-23 18:27:19 MSK
(Ответ для Ilya Sorochan на комментарий #11)
> Почему? Это же .local/share/<app>.
Потому, что вы путаете "app" и "user".
Comment 13 Sergey V Turchin 2025-06-23 18:33:41 MSK
(Ответ для Ilya Sorochan на комментарий #11)
> Аналогично хэшер прямо в корне хомяка все делает, что на мой взгляд даже хуже.
У меня не делает.
Comment 14 Ilya Sorochan 2025-06-23 18:54:41 MSK
(In reply to Sergey V Turchin from comment #12)
> (Ответ для Ilya Sorochan на комментарий #11)
> > Почему? Это же .local/share/<app>.
> Потому, что вы путаете "app" и "user".

Как это связано с тем что приложению нельзя лезть в ~? Оно что-то этим ломает?

> У меня не делает.

У вас не делает потому что вы настроили его под себя. Изменили значение по умолчанию, оно же нормальное или общепринятое на свое.
Comment 15 Sergey V Turchin 2025-06-23 22:43:21 MSK
(Ответ для Ilya Sorochan на комментарий #14)
> > > Почему? Это же .local/share/<app>.
> > Потому, что вы путаете "app" и "user".
> Как это связано с тем что приложению нельзя лезть в ~?
Видимо, вы не против, чтобы все желающие лазили к вам в ~/ .
Comment 16 Ilya Sorochan 2025-06-24 10:29:54 MSK
(In reply to Sergey V Turchin from comment #15)
> (Ответ для Ilya Sorochan на комментарий #14)
> > > > Почему? Это же .local/share/<app>.
> > > Потому, что вы путаете "app" и "user".
> > Как это связано с тем что приложению нельзя лезть в ~?
> Видимо, вы не против, чтобы все желающие лазили к вам в ~/ .

Самый главный вопрос - почему же все-таки нельзя этого делать остался без ответа :D. Зато обнаружил, что Waydroid пишет свои данные в XDG_DATA_HOME еще с 1.1.1
https://github.com/waydroid/waydroid/blob/51d92897e4900e20087903963433e069562170bc/debian/changelog#L316
Ну и согласно спецификации XDG значение по умолчанию XDG_DATA_HOME должно быть ~/.local/share
https://specifications.freedesktop.org/basedir-spec/latest/#variables
Сам waydroid не пользуюсь, поэтому проверить так ли это не могу - это уже на вас.
Comment 17 Konstantin A Lepikhov (L.A. Kostis) 2025-06-26 00:20:48 MSK
(In reply to Sergey V Turchin from comment #15)
> (Ответ для Ilya Sorochan на комментарий #14)
> > > > Почему? Это же .local/share/<app>.
> > > Потому, что вы путаете "app" и "user".
> > Как это связано с тем что приложению нельзя лезть в ~?
> Видимо, вы не против, чтобы все желающие лазили к вам в ~/ .

waydroid - это грубо говоря, эмулятор системы android. В этой системе есть понятие userdata, т.е. пользовательских данных. Т.е. то, что эти файлы имеют другой uid/gid и лежат в каталоге $HOME, не отменяет тот факт, что это userdata этого конкретного пользователя $HOME.

Если вас лично не устраивает такое поведение - предложите решение апстриму waydroid, они с удовольствием вас выслушают.
Comment 18 Sergey V Turchin 2025-06-26 10:19:32 MSK
(Ответ для Ilya Sorochan на комментарий #16)
> Самый главный вопрос - почему же все-таки нельзя этого делать остался без
> ответа :D
Тут не ликбез. Баг адресован не вам. Если интересно, спросите на более подходящем ресурсе.
Comment 19 Sergey V Turchin 2025-06-26 10:22:25 MSK
(Ответ для Konstantin A Lepikhov (L.A. Kostis) на комментарий #17)
> факт, что это userdata этого конкретного пользователя $HOME.
Это файлы совсем другого пользователя и другой системы, а пользователь ~/ не может с ними ничего сделать. Даже удалить.
Comment 20 Ilya Sorochan 2025-06-26 11:00:25 MSK
(In reply to Sergey V Turchin from comment #18)
> (Ответ для Ilya Sorochan на комментарий #16)
> > Самый главный вопрос - почему же все-таки нельзя этого делать остался без
> > ответа :D
> Тут не ликбез. Баг адресован не вам. Если интересно, спросите на более
> подходящем ресурсе.

Конечно, но мне было несложно указать вам на XDG_DATA_HOME при помощи которого вы теоретически можете решить свою проблему местоположения директории. Да и спрашивать других а не *вас* что *вы* имели ввиду как-то неразумно. Мне не нужен ликбез, просто посчитал что есть вероятность что могу быть полезен.
Comment 21 Sergey V Turchin 2025-06-26 11:36:34 MSK
(Ответ для Ilya Sorochan на комментарий #20)
> XDG_DATA_HOME при помощи которого вы теоретически можете решить свою проблему местоположения
Переливание из пустого в порожнее. И проблема не моя, а waydroid.
Comment 22 Sergey V Turchin 2025-06-26 11:42:33 MSK
Ну и достаточно смонтировать /home/ с noexec, чтобы waydroid пошёл лесом.
VirtualBox при этому будет работать, например.
Comment 23 Ilya Sorochan 2025-06-26 12:34:29 MSK
(In reply to Sergey V Turchin from comment #22)
> Ну и достаточно смонтировать /home/ с noexec, чтобы waydroid пошёл лесом.
> VirtualBox при этому будет работать, например.

Нашел issue в котором апстрим для перемещения папки предлагается симлинк
https://github.com/waydroid/waydroid/issues/1208

Костыль, но судя по всему в проекте менеджмент контейнерами (инстансы и файловые системы) отсутствует.
https://github.com/waydroid/waydroid/issues/566
https://github.com/waydroid/waydroid/issues/1073

Остается только патчить (а надо оно нам?) или идти в апстрим (сказать что ломается и попросить хотя бы вынести этот путь в флажек).
Comment 24 Anton Farygin 2025-06-26 14:03:24 MSK
насколько я помню для таких целей ещё можно использовать /var
Comment 25 Sergey V Turchin 2025-06-26 14:35:08 MSK
(Ответ для Anton Farygin на комментарий #24)
> /var
К тому же, у waydroid нет никаких проблем делать там из-под root всё, что ему надо.
Comment 26 Konstantin A Lepikhov (L.A. Kostis) 2025-06-26 15:08:39 MSK
(In reply to Sergey V Turchin from comment #25)
> (Ответ для Anton Farygin на комментарий #24)
> > /var
> К тому же, у waydroid нет никаких проблем делать там из-под root всё, что
> ему надо.

(In reply to Sergey V Turchin from comment #21)
> (Ответ для Ilya Sorochan на комментарий #20)
> > XDG_DATA_HOME при помощи которого вы теоретически можете решить свою проблему местоположения
> Переливание из пустого в порожнее. И проблема не моя, а waydroid.

отвечу вашими же словами 

Спасибо за доверие!

P.S.
Я в курсе всего, что ты уже писал и ещё напишешь по этому поводу.
Comment 27 Sergey V Turchin 2025-06-27 10:45:14 MSK
(Ответ для Konstantin A Lepikhov (L.A. Kostis) на комментарий #26)

[...]
> > > XDG_DATA_HOME при помощи которого вы теоретически можете решить свою проблему местоположения
> > Переливание из пустого в порожнее. И проблема не моя, а waydroid.
> отвечу вашими же словами 
Ок. Жду ответа, как соловей лета.
Comment 28 Sergey V Turchin 2025-06-27 10:47:02 MSK
(Ответ для Ilya Sorochan на комментарий #20)
> XDG_DATA_HOME при помощи
> которого вы теоретически можете решить свою проблему местоположения
> директории.
Невозможно. Нет никаких XDG_DATA_WAYDROID.
Вы ещё весь ~/ предложите перенести.
Comment 29 Ilya Sorochan 2025-06-27 10:50:59 MSK
(In reply to Anton Farygin from comment #24)
> насколько я помню для таких целей ещё можно использовать /var

Общесистемные данные waydroid уже лежат в /var/lib/waydroid (lxc stuff). Как говорил lakostis@ то, что лежит в хоуме это userdata - ваши приложения, загрузки и прочее. Сама система и системные приложения хранятся вообще в другом месте. Идея городить /var/lib/waydroid/userdata/$USER сомнительная - только эстетическое удовольствие.
Comment 30 Ilya Sorochan 2025-06-27 10:52:39 MSK
(In reply to Sergey V Turchin from comment #28)
> (Ответ для Ilya Sorochan на комментарий #20)
> > XDG_DATA_HOME при помощи
> > которого вы теоретически можете решить свою проблему местоположения
> > директории.
> Невозможно. Нет никаких XDG_DATA_WAYDROID.
> Вы ещё весь ~/ предложите перенести.

Вы же можете установить XDG_DATA_HOME только для waydroid, в чем тогда проблема? Или симлинкнуть, если env трогать не хочется.
Comment 31 Sergey V Turchin 2025-06-27 11:25:06 MSK
(Ответ для Ilya Sorochan на комментарий #30)
> Вы же можете
Я много чего могу, а баг у waydroid.
Comment 32 Ilya Sorochan 2025-06-27 11:49:19 MSK
(In reply to Sergey V Turchin from comment #31)
> а баг у waydroid.

В том-то и дело что пока это багом назвать нельзя. Такое поведение во-первых задумано (не программная ошибка), во-вторых обосновано (следует стандарту XDG), в-третьих изменяемо, в-четвертых удовлетворяет большинству пользователей (на гитхабе issue конкретно по поводу перемещения было одно и его успешно решили).

Тоесть это хороший продуманный дефолт, который, наверное, можно сделать лучше - но это уже будет feature/proposal и за этим нужно идти в апстрим.
Comment 33 Anton Farygin 2025-06-27 11:50:25 MSK
А есть ли возможность эти данные удалить не заходя в рута ?
Comment 34 Sergey V Turchin 2025-06-27 12:02:25 MSK
(Ответ для Anton Farygin на комментарий #33)
> А есть ли возможность эти данные удалить не заходя в рута ?
Нет. Там UID-ы у файлов несуществующие. Вообще из другой системы.
Comment 35 Ilya Sorochan 2025-06-27 12:23:05 MSK
(In reply to Sergey V Turchin from comment #34)
> (Ответ для Anton Farygin на комментарий #33)
> > А есть ли возможность эти данные удалить не заходя в рута ?
> Нет. Там UID-ы у файлов несуществующие. Вообще из другой системы.

И сам waydroid не предоставляет никаких средств для рутлесс удаления. Вообще он рута много для чего просит - тут уже вопрос оправдано или нет.
Comment 36 Anton Farygin 2025-06-27 13:44:22 MSK
на мой взгляд - если waydroid не предоставляет инструментов для удаления созданного им хлама в хомяке, а пользователь без администратора это тоже удалить не сможем - то это ошибка.
Comment 37 Ilya Sorochan 2025-06-27 13:59:35 MSK
(In reply to Anton Farygin from comment #36)
> на мой взгляд - если waydroid не предоставляет инструментов для удаления
> созданного им хлама в хомяке, а пользователь без администратора это тоже
> удалить не сможем - то это ошибка.
Пользователь без администратора этот хлам не создаст.
Comment 38 Sergey V Turchin 2025-06-27 14:31:04 MSK
(Ответ для Ilya Sorochan на комментарий #37)
Предлагаю вам больше не флудить здесь.