Sunt dezvoltatorul jape, un editor formal de dovezi logice care folosește java pentru a oferi o interfață grafică și OCaml pentru a oferi un motor de demonstrație. (vezi rbornat/jape pe github). Încerc să împachetez jape ca o clipă. Snap-ul conține un jre, construit folosind jlink și JDK 11 de la adoptopenjdk. Începe prin a apela o clasă în jre.
Pentru a construi snap-ul a trebuit deja să includ atribute-build: [keep-execstack]
pentru că compilatorul JIT (și o altă bibliotecă, am uitat ce) are nevoie de el.
Snap-ul funcționează cu --devmode și --dangerous. I-am spus să se conecteze dosare-personale
deci poate ajunge la ~/.java
, și conectat la :Acasă
. Până acum, bine.
Dar gunoiul jre face o lot de acces la fișierele de sistem, afișate mie de snappy-debug
. De exemplu, începe cu
= AppArmor =
Ora: 14 august 18:49:17
Jurnal: apparmor="ALOWED" operation="open" profile="snap.jape.jape" name="/proc/1/cgroup" pid=40869 comm="java" requested_mask="r" denied_mask="r" fsuid =1000 ouid=0
Fișier: /proc/1/cgroup (citește)
Sugestie:
* ajustați programul pentru a nu accesa „@{PROC}/@{pid}/cgroup”
= AppArmor =
Ora: 14 august 18:49:18
Jurnal: apparmor="ALLOWED" operation="open" profile="snap.jape.jape" name="/proc/40869/coredump_filter" pid=40869 comm="java" requested_mask="w" denied_mask="w" fsuid =1000 ouid=1000
Fișier: /proc/40869/coredump_filter (scriere)
Sugestie:
* ajustați programul pentru a nu accesa „@{PROC}/@{pid}/coredump_filter”
= AppArmor =
Ora: 14 august 18:49:18
Jurnal: apparmor="ALOWED" operation="truncate" profile="snap.jape.jape" name="/proc/40869/coredump_filter" pid=40869 comm="java" requested_mask="w" denied_mask="w" fsuid =1000 ouid=1000
Fișier: /proc/40869/coredump_filter (scriere)
Sugestie:
* ajustați programul pentru a nu accesa „@{PROC}/@{pid}/coredump_filter”
= AppArmor =
Ora: 14 august 18:49:18
Jurnal: apparmor="ALOWED" operation="open" profile="snap.jape.jape" name="/proc/sys/kernel/core_pattern" pid=40869 comm="java" requested_mask="r" denied_mask="r " fsuid=1000 ouid=0
Fișier: /proc/sys/kernel/core_pattern (citește)
Sugestie:
* ajustați programul pentru a nu accesa „@{PROC}/sys/kernel/core_pattern”
= AppArmor =
Ora: 14 august 18:49:18
Jurnal: apparmor="ALOWED" operation="open" profile="snap.jape.jape" name="/proc/sys/kernel/core_uses_pid" pid=40869 comm="java" requested_mask="r" denied_mask="r " fsuid=1000 ouid=0
Fișier: /proc/sys/kernel/core_uses_pid (citește)
Sugestie:
* ajustați programul pentru a nu accesa „@{PROC}/sys/kernel/core_uses_pid”
= AppArmor =
Ora: 14 august 18:49:18
Jurnal: apparmor="ALOWED" operation="open" profile="snap.jape.jape" name="/proc/1/cgroup" pid=40869 comm="java" requested_mask="r" denied_mask="r" fsuid =1000 ouid=0
Fișier: /proc/1/cgroup (citește)
Sugestie:
* ajustați programul pentru a nu accesa „@{PROC}/@{pid}/cgroup”
iar mai târziu petrece mult timp citind lucruri despre memorie
= AppArmor =
Ora: 14 august 18:49:18
Jurnal: apparmor="ALOWED" operation="open" profile="snap.jape.jape" name="/sys/fs/cgroup/memory/user.slice/user-1000.slice/[email protected]/memory .limit_in_bytes" pid=40869 comm="java" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
Fișier: /sys/fs/cgroup/memory/user.slice/user-1000.slice/[email protected]/memory.limit_in_bytes (citește)
Sugestii:
* ajustați programul pentru a nu accesa „/sys/fs/cgroup/memory/user.slice/user-1000.slice/[email protected]/memory.limit_in_bytes”
* ajustați programul pentru a nu accesa „/sys/fs/cgroup/memory/user.slice/user-[0-9]*.slice/user@[0-9]*.service/memory.limit_in_bytes”
= AppArmor =
Ora: 14 august 18:49:18
Jurnal: apparmor="ALOWED" operation="open" profile="snap.jape.jape" name="/sys/fs/cgroup/memory/user.slice/user-1000.slice/[email protected]/memory .usage_in_bytes" pid=40869 comm="java" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
Fișier: /sys/fs/cgroup/memory/user.slice/user-1000.slice/[email protected]/memory.usage_in_bytes (citește)
Sugestii:
* ajustați programul pentru a nu accesa „/sys/fs/cgroup/memory/user.slice/user-1000.slice/[email protected]/memory.usage_in_bytes”
* ajustați programul pentru a nu accesa „/sys/fs/cgroup/memory/user.slice/user-[0-9]*.slice/user@[0-9]*.service/memory.usage_in_bytes”
Nu știu cum să fac asta o clipă. The fișiere-sistem
interfața spune că snap-ul nu trebuie să se uite la /etc
sau /proc
; cel aspect
mecanismului nu-i place să se conecteze la proc/1/cgroup
(care este tot ce am încercat până acum) și ar trebui să ofer cumva timpul de rulare uid
și pid
valori pentru a descrie ceea ce se întâmplă. Cu toate acestea, documentația snapcraft pentru java nu indică niciuna dintre aceste dificultăți.
Ajutor?