Το πρόβλημα με τα δικαιώματα στα flatpaks

Η τεχνολογία περιορισμού των δικαιωμάτων πρόσβασης που υλοποιούν τα flatpaks εμφανίζει αστοχίες και δε λύνει το ζήτημα της ασφάλειας των εφαρμογών.

Χρησιμοποιείτε flatpaks; Εγώ όχι. Προσπαθώ να τα αποφεύγω στην καθημερινότητά μου, παρότι αντιλαμβάνομαι το πρόβλημα που επιχειρούν να λύσουν, γιατί έχω ενστάσεις ως προς τον τρόπο που υλοποιείται η σχετική τεχνολογία. Επιπλέον, δεν υπάρχει ιδιαίτερη ανάγκη για εμένα, αφού η διανομή που προτιμώ μου προσφέρει όλα όσα χρειάζομαι με τον συμβατικό τρόπο πακεταρίσματος.

Φυσικά, τα παραπάνω δε σημαίνουν ότι τα flatpaks δεν έχουν πρακτική αξία για κανέναν χρήστη ή πως σπαταλώνται άσκοπα πόροι στην ανάπτυξή τους. Όπως κάθε τεχνολογία, όμως, έτσι και αυτά έχουν ορθό και λανθασμένο τρόπο χρήσης μα και προβλήματα που, συνήθως, αμελούνται.

Δικαιώματα πρόσβασης στα flatpaks

Ένα από τα κύρια χαρακτηριστικά των flatpaks είναι η υλοποίηση του «sandboxing»1 που παρέχει τη δυνατότητα απομόνωσης των εφαρμογών. Μπορούμε να ορίσουμε ότι ένα πακέτο δε θα έχει πρόσβαση στο σύστημα αρχείων ή σε άλλους πόρους και να είμαστε ήσυχοι ότι τα δεδομένα μας θα παραμείνουν ασφαλή και πως το πακέτο αυτό δε θα εκτελέσει κάποια κακόβουλη ενέργεια· δε θα μπορεί να το κάνει.

Ακούγεται ωραίο αυτό, σωστά; Και είναι, τουλάχιστον στη θεωρία. Στην πραγματικότητα υπάρχει σοβαρό πρόβλημα με τα δικαιώματα στα flatpaks , σπανίως αυτά είναι ρυθμισμένα σωστά από προεπιλογή και ο συμβατικός τρόπος χρήσης ενός υπολογιστή (σ.σ. αυτός που συνηθίζεται μα δεν είναι απαραίτητα και ορθός) εκ των πραγμάτων έρχεται σε ευθεία αντίθεση με την ασφάλεια του sanbox.

Ατελείς προεπιλογές και παράκαμψη δικαιωμάτων

Ουσιαστικά, η απομόνωση εφαρμογών που προσφέρουν τα flatpaks είναι παραμύθι. Όχι βέβαια γιατί δεν υφίσταται ως δυνατότητα μα επειδή καταργείται στην πράξη για χάρη της ευκολίας και αυτού που αντιλαμβανόμαστε ως λειτουργικότητα.

Χαρακτηριστικό παράδειγμα είναι η περίπτωση όπου κάποιος εγκατέστησε μια γραφική εφαρμογή ως flatpak και παραπονιέται ότι αυτή δεν ακολουθεί την εμφάνιση του υπόλοιπου συστήματος. Αυτό συμβαίνει γιατί ο περιορισμός της πρόσβασης λειτουργεί σωστά και έτσι το συγκεκριμένο πακέτο δε μπορεί να δει τι υπάρχει στον φάκελο χρήστη, άρα ούτε και να χρησιμοποιήσει ένα θέμα εμφάνισης που βρίσκεται εκεί.

Κάτι που συνηθίζεται να προτείνεται ως «λύση» εδώ είναι το να επιτραπεί σε αυτήν την εφαρμογή να έχει πρόσβαση στον φάκελο χρήστη. Έτσι θα εφαρμοστεί το επιθυμητό θέμα και ο χρήστης θα είναι ικανοποιημένος. Αν, όμως, συμβεί αυτό, κυριολεκτικά παραβιάζεται η ασφάλεια που παρέχει το sandboxing. Αλλά ποιος νοιάζεται…

Το πρόβλημα με την παραβίαση του sanbox γίνεται πιο έντονο στην πλευρά των προγραμματιστών, αφού εδώ εμφανίζεται το αιώνιο δίλημμα που κανείς μέχρι σήμερα -ούτε η τεχνολογία των flatpaks- δεν έχει καταφέρει να λύσει: λειτουργικότητα για όλους ή ασφάλεια;

Αν ένας προγραμματιστής επιλέξει να διαθέσει κάποιο flatpak με σωστά ρυθμισμένα δικαιώματα πρόσβασης από προεπιλογή, η υλοποίηση αυτών θα ερμηνευτεί ως δυσλειτουργία από τους χρήστες και θα δυσαρεστηθούν. Αν δώσει βάση στην ικανοποίηση των χρηστών, τα δικαιώματα θα είναι μερικώς ή και καθόλου εφαρμοσμένα, και έτσι η υποτιθέμενη ασφάλεια θα περάσει σε δεύτερη μοίρα.

Κάπως έτσι καταλήγουμε με διάφορες εφαρμογές, κυρίως τις δημοφιλείς, να διατίθενται στο Flathub ως «sandboxed», φέροντας μάλιστα και σχετικό εικονίδιο που το επισημαίνει, ενώ στην πραγματικότητα δεν είναι και παραπλανούν τους χρήστες.

Ανεπαρκής τεχνολογία, προβληματική ενημέρωση

Το πρόβλημα με την παράκαμψη των δικαιωμάτων θα μπορούσε να λυθεί σε κάποιον βαθμό με τη δυνατότητα πιο λεπτομερούς ρύθμισής τους. Μόνο που η τεχνολογία αυτή δεν υπάρχει σήμερα. Κατά τη διάρκεια εγκατάστασης ενός flatpak, ο χρήστης δε μπορεί να αρνηθεί ένα συγκεκριμένο δικαίωμα πρόσβασης. Είναι υποχρεωμένος να επιτρέψει όλα τα δικαιώματα που ζητά το πακέτο ή να τα απορρίψει στο σύνολό τους.

Μεμονωμένα δικαιώματα μπορούν να αναιρεθούν μέσω του τερματικού ή μιας εφαρμογής σαν το Flatseal, μόνο αφότου έχουμε ήδη εγκαταστήσει το πακέτο αποδεχόμενοι τα πάντα. Κάτι τέτοιο, ειδικά όταν πρόκειται για διανομές που στοχεύουν τον «μέσο χρήστη», δεν είναι ούτε πρακτικό ούτε ακριβώς δέον —το «opt-out» δεν είναι ποτέ ορθή προσέγγιση σε ό,τι αφορά δικαιώματα πρόσβασης.

Προβληματικός είναι, επίσης, ο τομέας της ενημέρωσης σχετικά με τα δικαιώματα που ζητά ένα flatpak πακέτο. Ακριβέστερα, δεν υπάρχει καμία ενημέρωση. Τα flatpaks δηλώνουν τα δικαιώματα που χρειάζονται -πρόσφατα προστέθηκαν και σύντομες επεξηγήσεις σε καθημερινή γλώσσα- αλλά όχι και τον λόγο για καθένα από αυτά. Όταν, όμως, η πληροφόρηση είναι ελλιπής, η όποια απόφαση έχει μεγάλα περιθώρια λάθους.

Ίσως θα ήταν ωφέλιμο το να παρατηρήσουμε την υλοποίηση των δικαιωμάτων στα λειτουργικά συστήματα για φορητές συσκευές. Όχι πως αυτή είναι απροβλημάτιστη μα η κατά περίπτωση επιλογή συγκεκριμένων τύπων πρόσβασης, όπως και η στοιχειώδης ενημέρωση για τους λόγους που αυτοί απαιτούνται, είναι σημαντικές ιδιότητες που λείπουν από τα flatpaks.

Η πολυπλοκότητα των portals

Οι προγραμματιστές όχι μόνο γνωρίζουν αυτά τα προβλήματα αλλά έχουν ήδη ξεκινήσει την υλοποίηση της τεχνολογίας των portals που θα προσδώσει στα flatpaks τη δυνατότητα πολυεπίπεδης ρύθμισης των απαιτούμενων δικαιωμάτων πρόσβασης.

Δεν είμαι βέβαιος, όμως, ότι κινούνται προς τη σωστή κατεύθυνση. Φαίνεται πως είναι αντίθετοι με τη δημιουργία APIs τα οποία θα αξιοποιούν οι εφαρμογές για να ορίσουν τα δικαιώματα και προκρίνουν την προσαρμογή ολόκληρων βιβλιοθηκών λογισμικού, όπως οι GTK και Qt, ώστε αυτές να ενσωματώνουν τις δυνατότητες των flatpaks.

Αυτή η μέθοδος προδίδει κακό σχεδιασμό, αφού θα προσθέσει μεγάλη -και αχρείαστη- πολυπλοκότητα στα λογισμικά και, επιπλέον, είναι εντελώς αντίθετη με κάθε άλλη γνωστή υλοποίηση του sandboxing.

Τα flatpaks είναι μια υποτυπώδης λύση

Δεν έχω πρόθεση να υποτιμήσω τα θετικά στοιχεία των flatpaks και σίγουρα το ζήτημα της ασφάλειας των εφαρμογών στο ΕΛ/ΛΑΚ είναι σημαντικό, ίσως σήμερα περισσότερο από ποτέ άλλοτε. Πρέπει, όμως, να είμαστε ενήμεροι για τις σχετικές τεχνολογίες και να μην επαναπαύομαστε σε αυτά που λένε ότι προσφέρουν, αφού πολλές φορές η πραγματικότητα είναι κάπως διαφορετική.

Αναρωτιέμαι, επίσης, αν προσπαθούμε να λύσουμε ένα λανθασμένο πρόβλημα αλλά αυτή είναι μια συζήτηση για κάποιο μελλοντικό άρθρο.

Όπως αποδεικνύεται, τα flatpaks αποτελούν μια υποτυπώδη λύση και η τεχνολογία που τα συνοδεύει -τουλάχιστον στην τρέχουσα υλοποίησή της- δε μπορεί να καλύψει επαρκώς τις ανάγκες της ασφάλειας παρά τα όσα όμορφα λέγονται, ενώ ορισμένοι προγραμματιστές καταφεύγουν σε αστεία επιχειρήματα για να δικαιολογήσουν τις παρατυπίες.

Δεν αρκεί το να εγκαταστήσουμε πακέτα από το Flathub πιστεύοντας ότι έτσι το σύστημά μας θα είναι ασφαλές. Ας φροντίσουμε να ενημερωνόμαστε σωστά για τις πραγματικές δυνατότητες των flatpaks και να αποφασίζουμε ανάλογα.


Το αρχικό κείμενο είναι απο εδώ με by-nc-sa. Κρίθηκε ενδιαφέρον και μεταφέρθηκε αυτούσιο εδώ.

3 «Μου αρέσει»

Η λύση είναι να μεταφέρει ο δημιουργός της διανομής το θέμα του σε Flatpak. Στο Pop OS για παράδειγμα αυτό έχει υλοποιηθεί για dark/light theme.

Αυτό περισσότερο έχει να κάνει με το ότι ο μέσος χρήστης δεν καταλαβαίνει τι ακριβώς σημαίνει sandboxing μιας εφαρμογής. Και sandboxing σημαίνει περιορισμούς στο τι ακριβώς μπορεί να κάνει ένα πρόγραμμα. Είναι λοιπόν θέμα εξοικείωσης με την τεχνολογία. Ακόμα θυμάμαι τις “γκρίνιες” όταν κάποια προγράμματα απαγόρευσαν το τρέξιμο τους σαν root, ή όταν κάποιες διανομές πέρασαν στο sudo.

Εδώ έχουμε την κατάρα των διαλόγων των Windows θέλεις να κάνεις αυτό; Ο μέσος χρήστης δεν καταλαβαίνει τι τον ρωτάει ο υπολογιστής. Οι χρήστες των Windows ακολουθούσαν μια από τις δυο στρατηγικές. Να λένε πάντα ΟΧΙ τις πρώτες μέρες, για να καταλήξουν μετά από λίγες μέρες να λένε πάντα ΝΑΙ. Ο μέσος χρήστης του Android θα κάνει το ίδιο. Όσο για την εμπειρία χρήσης, όλοι μας αγαπούσαμε το UAC των Windows, έτσι δεν είναι;

Το πρόβλημα λοιπόν δεν είναι στην ίδια την τεχνολογία, αλλά στην χρήση της από τους προγραμματιστές και στο τι περιμένουν απο αυτήν οι χρήστες. Το να δηλώνει η εφαρμογή το τι θέλει είναι η καλύτερη λύση. Μην ξεχνάμε πως πριν τα Flatpak η κάθε εφαρμογή απλά έκανε ότι ήθελε μέσα τις δυνατότητες του χρήστη.

Το μόνο πρόβλημα είναι άλλο, πως ο ίδιος ο προγραμματιστής καθορίζει ότι θέλει, αν έχεις όμως αμφιβολίες για την εντιμότητα (ή την ικανότητα) του κάθε προγραμματιστή που τρέχεις ένα πρόγραμμα του, τότε έχεις έτσι και αλλιώς κάποιο πρόβλημα. Και παρακάμπτοντας την κάθε διανομή, που μπορεί να θέλει να έχει την δική της πολιτική ασφάλειας και έλεγχο για το τι βάζει μέσα, σαν δημιουργός μιας διανομής χάνεις τον έλεγχο για λογαριασμό των χρηστών σου. Εδώ θα πρέπει να βρεθεί κάποια λύση, το κλασικό πακετάρισμα δεν είναι λύση, μιας και συνήθως δεν κάνεις χωριστό sandboxing. Ίσως στο μέλλον δούμε διανομές να ακολουθούν μια τέτοια προσέγγιση.

Με βάση τα παραπάνω, αυτή είναι η καλύτερη λύση. Το flatseal έχει παρουσιαστεί εδώ μέσα. Αυτό που χρειάζεται όμως είναι η ενσωμάτωση του στο shop της κάθε διανομής καθώς και στο control panel. Το gnome είναι στο σωστό δρόμο

Μα η ενσωμάτωση έχει γίνει με κάποιο API. Και αυτό αφορά μόνο όσους φτιάχνουν τα ToolBoxes έτσι και αλλιώς. Κανένας δεν θα ξεκινήσει μια εφαρμογή λέγοντας, α θα ξεκινήσω φτιάχνοντας το δικό μου gtk/qt. Και είναι καλύτερα έτσι. Αν κάποιος θέλει να ανοίξει ένα αρχείο δεν θα αλλάξει καθόλου ο κώδικας, ούτε πρέπει να μάθει να χρησιμοποιεί ένα καινούργιο παράξενο API αν θέλει να κάνει χρήση των Flatpaks. Απλά πακετάρεις την εφαρμογή και δουλεύει. Η δύναμη του abstraction.

Αυτό είναι πράγματι μια μεγάλη κουβέντα, αλλά να θυμίσω την προηγούμενη προσπάθεια το LSB; Αυτή την στιγμή η τάση είναι σε OS Tree σε immutable root με Wayland και polikit και dbus. Είναι ένας μακρύς δρόμος και όταν βαδίζεις ένα δρόμο τον βλέπεις. Σιγά σιγά οι διανομές θα κάνουν καλύτερη ενσωμάτωση των Flatpak και οι χρήστες θα ξέρουν τι να περιμένουν. Θα πρέπει να μάθουμε πολλά νέα πράγματα, να αλλάξουμε κάποιες συνήθειες. Το Android κάπως μας εκπαίδευσε. Η μπορεί κάποια ομάδα αύριο να παρουσιάσει κάποια καλύτερη λύση, ποτέ δεν ξέρεις.

Στα κλειστά λειτουργικά η ανάπτυξη γίνετε και πίσω απο κλειστές πόρτες. Ο τελικός χρήστης παίρνει ένα έτοιμο προϊόν και δεν βλέπει ποτέ, ούτε μπορεί να εκφέρει γνώμη για την εξέλιξη των τεχνολογιών που θα χρησιμοποιήθουν. Εμείς οι χρήστες του Linux όμως βλέπουμε όλο τον δρόμο, αν και συχνά δεν ξέρουμε τον προορισμό, γιατί κάποιες φορές είμαστε προσκολλημένοι στο αγνό μας παρελθόν. Μέσα στις χαρές του ταξιδιού είναι και αυτές οι συζητήσεις.

1 «Μου αρέσει»

Δε θα το έλεγα λύση. Τα θέματα είναι απλά μια γνωστή περίπτωση. Υπάρχουν τα αρχεία ρυθμίσεων και αρκετές ακόμα περιπτώσεις όπου αναγκαστικά θα βγεις απ’ το sandbox. Όπως είναι αυτήν τη στιγμή η τεχνολογία του Linux εν γένει και του Flatpak συγκεκριμένα, απλά δε γίνεται να είναι τα πάντα self-contained μέσα σε sandbox. Δεν είναι τυχαίο το ότι κάποιοι προγραμματιστές χρησιμοποιούν ως επιχείρημα το “αν περιορίσουμε απόλυτα την τάδε εφαρμογή σε sandbox, δε θα είναι λειτουργική”. Αυτό είναι ένα ζήτημα που δεν το λύνουν τα flagpaks επί του παρόντος και δεν ξέρω αν μπορεί να λυθεί γενικά.

Συμφωνούμε και ακριβώς γι’ αυτό έκανα την αναφορά σε τρόπους χρήσης που έχουμε συνηθίσει αλλά δεν είναι ορθοί. Πολλές φορές στο Linux κάνουμε πράγματα επειδή “έτσι τα μάθαμε” και δεν σκεφτόμαστε αν μπορούν να έχουν παρενέργειες.

Κάθε άλλο. Όμως, το “όλα ή τίποτα” στα δικαιώματα πρόσβασης είναι εξίσου λανθασμένο και δυνητικά επικίνδυνο, ακριβώς όπως ήταν και η παράκαμψη του UAC στα Windows. Σε μια τέτοια περίπτωση θα χρειαστεί ένα και μόνο κακόβουλο flatpak για να γκρεμίσει τα όσα καλά προσπαθούν να κάνουν.

Ξεχνάς ότι το abstraction ως τελικό αποτέλεσμα επιτυγχάνεται με πολυπλοκότητα στον κώδικα. Δεν εξαλείφεται αυτή, απλά κρύβεται από τον τελικό χρήστη. Θεωρώ λανθασμένη την προσέγγιση “φτιάχνουμε ένα security layer, ενσωματώστε το στα toolkits”, και όπως θεωρώ ότι γνωρίζεις, δε λειτουργεί έτσι το sandboxing πουθενά αλλού.

Αν ενσωματώνει λειτουργίες του Flatpak το GTK ας πούμε, γιατί να μην ενσωματώνει και των snaps, του AppImage κλπ.; Βλέπεις το πρόβλημα;

Στα υπόλοιπα λίγο-πολύ συμφωνούμε και μακάρι να δημιουργηθεί στο μέλλον η ιδανική τεχνολογία. Αλλά μετά θα πάμε στο λανθασμένο πρόβλημα που ανέφερα.

Αλλά σε αντίθεση με μια κακόβουλη εφαρμογή εδώ τουλάχιστον έχεις τον έλεγχο. Αν έχεις ανοιχτό το σπίτι σου και μουν και σε κλέψουν δεν φταίει η τεχνολογία της κλειδαριάς.

Όλη η τεχνολογία των υπολογιστών είναι βασισμένη σε abstraction. Όταν φτιάχνουμε ένα κύκλωμα σκεφτόμαστε σε επίπεδο λογικών πυλών και όχι σε τρανζίστορς. Και στην πράξη θα χρησιμοποιήσουμε γλώσσες όπως την Verilog ή την VHDL. Και θα το προγραμματίσουμε σε μια γλώσσα όπως την C που είναι ένα άλλο abstraction.

Παρόμοια αν φτιάξουμε μια γραφική εφαρμογή θα χρησιμοποιήσουμε κάποιο έτοιμο παράθυρο για να ανοίξουμε ένα αρχείο. Δεν θα καθίσει κάθε εφαρμογή να φτιάξει το δικό της και ούτε χρηστικά το θέλουμε. Μα αυτό προσθέτει κώδικα στο gui toolit. Τώρα το ποιο σύνηθες portal κάνει ακριβώς αυτό.

Τώρα τα portal είναι μια προδιαγραφή.

Portals originated from the Flatpak project, but are now a common Linux desktop standard with support from GNOME, KDE and Snapcraft. They are even used outside of sandboxes to provide a standardised API to common desktop features such as screenshots and screen casts on wayland.

Και τίποτα δεν σε εμποδίζει να εφαρμόσεις την προδιαγραφή με δικό σου κώδικα, όπως τίποτα δεν σε εμποδίζει να φτιάξεις το δικό σου παράθυρο για να επιλέξεις ένα αρχείο. Και οχι δεν υπάρχει ανάγκη να προστεθεί υποστήριξη για τα snaps, το αντίθετο έχει γίνει.

Δεν έχω προγραμματίσει ούτε σε Mac ούτε σε Android οπότε δεν ξέρω τα API. Αλλά κάτι λίγα ξέρω τις εξής δυο γνωστές περιπτώσεις την Javascipt και το Android. Και στις δυο περιπτώσεις έχουμε κάποιο layer ανάμεσα στο πρόγραμμα και το λειτουργικό. Αλλά υπάρχει μια σημαντική διαφορά. Μιλάμε και στις δυο περιπτώσεις για προγράμματα καινούργια. Στις τεχνολογίες που χρησιμοποιούμε στο Linux έχουμε υπάρχοντα προγράμματα να τους κάνουν χρήση. Και δεν θα θέλαμε ούτε να ξαναγράψουμε τα πάντα ούτε να έχουμε καταστάσεις που κάτι δουλεύει είτε σε snap είτε σε flatpak.

O πυρήνας παρέχει την υποστήριξη για την τεχνολογία, αλλά δεν έχει ενσωματωμένη την πολιτική. Αυτή είναι καλύτερα να υπάρχει σε χωριστό Layer, αλλιώς μιλάμε για άλλο λειτουργικό και όχι για UNIX. Μόνος σου μπορείς να κάνεις την χρήση του πυρήνα δεν σε εμποδίζει κανείς. Αλλά θα κλειδωθείς έξω και δεν θα μπορείς πχ να τυπώσεις.

Αυτό που πρέπει να κάνουμε είναι να δούμε τις σχετικές τεχνολογίες στην ολότητα τους. Η απομόνωση των εφαρμογών δεν είναι μια τεχνολογία είναι πολλές που συνδυάζονται. Και δεν νομίζω να υπάρχει κάποια ουσιαστική διαφορά απο το Android.

Για μένα το μεγάλο πρόβλημα είναι τα application id’s και ο συνδυασμός τους με το DBus. Έχω ένα org.gimp.gimp αλλά πολλά flatpaks που έχουν το ίδιο id με διαφορετικά runtimes. Αν κάνω εγκατάσταση θα με ρωτήσει από που θέλω να το πάρω, και δεν μπορώ να έχω και τα δυο. Θα πάρει κάποιο χρόνο να λυθούν τα όποια προβλήματα, να αποκτήσουν οι διανομές τον έλεγχο όπου πρέπει και να υπάρξει η ενοποίηση των τεχνολογιών και σε επίπεδο του πως γράφεις ένα καινούργιο πρόβλημα.

Αλλά κάτι μου λέει πως σε 10 χρόνια αν ξαναδιαβάσουμε αυτόν τον διάλογο, όλοι μας - μαζί και εγώ - θα χαμογελάσουμε την την τωρινή μας μυωπική οπτική, και ίσως αφέλεια. Όπως έχει ξαναγίνει

Aν και δεν χρησιμοποιώ flatpaks και αν και δεν πολυκαταλαβαίνω τι λέτε, έχω μια απορία. Μπορείς πρωτον, να χρησιμοποιήσεις flatpak μέσω του firejail, και δεύτερον, αν ναι, κάνει τίποτα ουσιαστικό ή τρίχες;

Το firejail είναι μια εφαρμογή που φτιάχνει ένα απομονωμένο περιβάλλον για να τρέξεις μια εφαρμογή. Μια από τις βασικές τεχνολογίες πίσω απο τα flatpak είναι το bubblewrap. Αν ακολουθήσεις τον σύνδεσμο θα δεις άλλες σχετικές εφαρμογές καθώς και μια σύγκριση του με το firejail, καθώς και κάποια ζητηματάκια που αυτό έχει.

Αλλά έστω πως με ένα από αυτούς τους παραπάνω τρόπους φτιάχνεις ένα κλουβί γύρω από την εφαρμογή, αυτό δεν αρκεί για να κάνει την εφαρμογή λειτουργική, αν πχ θέλει να παίξει κάποιον ήχο πρέπει να ανοίξεις μια τρύπα στο κλουβί για αυτό. Το firejail την έχει, το bubblewarp όχι. Για να φύγεις έξω θέλεις ελεγχόμενες τρύπες που παρέχει η τεχνολογία των portals.

Τώρα ένα flatpak είναι κάτι πολύ παραπάνω και χρησιμοποιεί τα


## Underlying technologies

Flatpak utilises a number of pre-existing technologies. These include:

  • The bubblewrap utility from Project Atomic, which lets unprivileged users set up and run containers, using kernel features such as:
    • Cgroups
    • Namespaces
    • Bind mounts
    • Seccomp rules
  • systemd to set up cgroups for sandboxes
  • D-Bus, a well-established way to provide high-level APIs to applications
  • The OSTree system for versioning and distributing filesystem trees
  • The OCI format from the Open Container Initiative, as an alternative to OSTree used by the Fedora infrastructure
  • Flatpak can use either OSTree or OCI for single-file bundles.
  • Appstream metadata, to allow Flatpak applications to show up nicely in software center applications

Για κάποιες από αυτές τις τεχνολογίες θα βρεθούν εδώ επεξηγητικά κείμενα.

Αυτό το τελευταίο επιλέγω να το αφήσω ασχολίαστο :slight_smile:

1 «Μου αρέσει»

Nαι, νομίζω χρειαζόταν τέτοιες διευκρινήσεις για καλλίτερη κατανόηση του θέματος. Ευχαριστώ

Μα δεν έχεις πραγματικό έλεγχο αν υποχρεώνεσαι να επιτρέψεις κάθε δικαίωμα. Ο μέσος χρήστης δε θα κάτσει να ψάξει τι σημαίνει το καθένα και μοιραία θα έχουμε μια περίπτωση αντίστοιχη με την παράκαμψη του UAC ή με το ALL=(ALL) NOPASSWD: ALL που βάζουν κάποιοι “για ευκολία”.

Σε εμποδίζει το ότι το Flatpak (θα) αναμένει συγκεκριμένα πράγματα. Γι’ αυτό υπάρχει και ο αντίλογος ως προς την υλοποίηση άλλωστε.

Αναφέρεται και στον έναν σύνδεσμο εντός του άρθρου. Στο Android υπάρχει Android-specific API με το οποίο επικοινωνεί μια εφαρμογή για να ζητήσει δικαιώματα. Το Flatpak, όπως αναπτύσσεται τώρα, περιμένει από τις ίδιες τις εφαρμογές να ενσωματώνουν ένα παρόμοιο API, συνεπώς πάει αντίθετα και ρίχνει το βάρος σε αυτές. Αυτή είναι και μια ουσιαστική διαφορά ως προς την προσέγγιση.

@AlanSmithee πολύ ενδιαφέρον το άρθρο σου(επίτρεψε μου τον ενικό).
Θα ήθελα τη γνώμη σου πάνω στην άδεια που επέλεξες και που χρησιμοποιείται ιδιαίτερα στον ακαδημαϊκό χώρο και ιδίως στον ελληνικό.
Ανοίγω άλλο νήμα για τον σκοπό αυτό.

2 posts were merged into an existing topic: Άδειες χρήσης, πνευματικά δικαιώματα και ανοικτή πρόσβαση στην επιστήμη.