Draai de Linux-poort niet als root #2310

Closed
opened 2026-10-06 01:19:01 +00:00 by brenno · 3 comments
Owner

Probleem

De Forgejo linux-gate draait make check-no-coverage als root in het CI-image. Daardoor omzeilt de testprocessen Unix-rechten die met chmod 555 of chmod 000 worden aangebracht. Foutpaden voor onschrijfbare/onleesbare bestanden worden dan niet bereikt.

Dit werd zichtbaar in release-PR #2293 nadat #2307 de eerdere analysefout verhielp. Run 5449 passeerde analyse, maar faalde na 1u06m met tien permissietests, onder meer in form_book_dialog_test.dart, form_workspace_test.dart, form_key_file_test.dart, form_submission_actions_test.dart, form_team_actions_test.dart en form_maker_check_dialog_test.dart.

Dezelfde workflow draait ook 's nachts op main; dit is dus een bestaande runnerfout en geen regressie uit de release-bump.

Gewenst

Draai de eigenlijke Linux-poort als een ongeprivilegieerde gebruiker, terwijl checkout en cache-stappen hun huidige rechten mogen houden. Bewaak dit met één gerichte workflowtest.

Acceptatie

  • make check-no-coverage draait in linux-gate.yml niet als uid 0.
  • De werkmap en benodigde HOME zijn voor die gebruiker schrijfbaar.
  • De genoemde permissietests bereiken op Linux weer hun bedoelde foutpad.
  • De volledige linux-gate wordt groen op de exacte release-head.
## Probleem De Forgejo `linux-gate` draait `make check-no-coverage` als `root` in het CI-image. Daardoor omzeilt de testprocessen Unix-rechten die met `chmod 555` of `chmod 000` worden aangebracht. Foutpaden voor onschrijfbare/onleesbare bestanden worden dan niet bereikt. Dit werd zichtbaar in release-PR #2293 nadat #2307 de eerdere analysefout verhielp. Run 5449 passeerde analyse, maar faalde na 1u06m met tien permissietests, onder meer in `form_book_dialog_test.dart`, `form_workspace_test.dart`, `form_key_file_test.dart`, `form_submission_actions_test.dart`, `form_team_actions_test.dart` en `form_maker_check_dialog_test.dart`. Dezelfde workflow draait ook 's nachts op `main`; dit is dus een bestaande runnerfout en geen regressie uit de release-bump. ## Gewenst Draai de eigenlijke Linux-poort als een ongeprivilegieerde gebruiker, terwijl checkout en cache-stappen hun huidige rechten mogen houden. Bewaak dit met één gerichte workflowtest. ## Acceptatie - `make check-no-coverage` draait in `linux-gate.yml` niet als uid 0. - De werkmap en benodigde HOME zijn voor die gebruiker schrijfbaar. - De genoemde permissietests bereiken op Linux weer hun bedoelde foutpad. - De volledige `linux-gate` wordt groen op de exacte release-head.
Author
Owner

Reparatie staat op release/v0.6.14 in commit aaac0a642 en PR #2293. De volledige lokale make check-poort is groen. De drie onafhankelijke releasepoorten worden opnieuw gestart op deze exacte commit.

Reparatie staat op release/v0.6.14 in commit aaac0a642 en PR #2293. De volledige lokale `make check`-poort is groen. De drie onafhankelijke releasepoorten worden opnieuw gestart op deze exacte commit.
Author
Owner

De eerste non-root run legde nog één root-owned Flutter-intern configuratiemapje bloot. Commit f3e49e534 geeft uitsluitend /opt/flutter/packages/flutter_tools/.dart_tool aan de bestaande ubuntu-gebruiker, met een gerichte workflowtest. De volledige lokale make check is groen; static, scans en linux zijn opnieuw gedispatcht op exact deze commit.

De eerste non-root run legde nog één root-owned Flutter-intern configuratiemapje bloot. Commit f3e49e534 geeft uitsluitend /opt/flutter/packages/flutter_tools/.dart_tool aan de bestaande ubuntu-gebruiker, met een gerichte workflowtest. De volledige lokale make check is groen; static, scans en linux zijn opnieuw gedispatcht op exact deze commit.
Author
Owner

Run 5455 bewijst dat dependencybootstrap en analyse nu als ubuntu slagen. De volgende fout zat in de herstelde dartcv4-buildcache: CMake had daarin het absolute bronpad /root/.pub-cache opgeslagen, terwijl de non-root run /home/ubuntu/.pub-cache gebruikt.

Commit 15833de5c isoleert de Linux non-rootcache met suffix uid1000. De sleutel blijft aan de dartcv4-versie gebonden en hergebruikt geen oude root-cache. De gerichte cachetests en de volledige lokale make check zijn groen.

Run 5455 bewijst dat dependencybootstrap en analyse nu als ubuntu slagen. De volgende fout zat in de herstelde dartcv4-buildcache: CMake had daarin het absolute bronpad /root/.pub-cache opgeslagen, terwijl de non-root run /home/ubuntu/.pub-cache gebruikt. Commit 15833de5c isoleert de Linux non-rootcache met suffix uid1000. De sleutel blijft aan de dartcv4-versie gebonden en hergebruikt geen oude root-cache. De gerichte cachetests en de volledige lokale make check zijn groen.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#2310
No description provided.