Logo journal du hacker middle
  1. -

    Vers des plateformes privatisées partiellement transparentes ? C’est potentiellement plus simple en changeant de services (si nécessaire) sauf que cela repose néanmoins sur la confiance.

    Est-ce que vous connaissez Solid ou GNUnet ?

    1. 1

      Il est difficile d’élaborer une multitude d’interfaces. Donc, se spécialiser peut être la meilleure solution. Info, c’est tout un art ! Faire des choix aussi. Sans oublier les aptitudes. Apprécier les choses à leur juste valeur (mais penser que personne n’est pareil). Sinon, c’est dommage d’employer des expressions anglaises, difficile à bien saisir au niveau linguistique. Perso, je sais pas si j’aimerais faire leur métier. Pouvoir réaliser de A à Z semble plus intéressant parce qu’avec potentiellement moins de contraintes (en réduisant ses attentes). C’est étonnant tous leur termes : développeur d’applications dorsales (a.k.a. développeur back-end), développeur d’applications frontales (a.k.a. développeur front-end), Webmestre (a.k.a. Webmaster), graphiste Internet (a.k.a. Webdesigner). Ça fait un grand charabia donnant l’impression de tout mélanger. On a des pages Web et des applications Web. On a des serveurs et des clients (+ des réseaux). On a l’informatique en nuage (infonuages ou services Internet) et l’ordinateur personnel (portable, PC, station de travail, etc.). Ainsi que tout un tas d’usages (dématérialisation).

      1. 1

        Lire ces deux articles m’apporte de la frustration. Parce que je suis autodidacte et les choses sont mélangées. Les articles me semblent bien écrits. Par contre, j’ai l’impression que c’est un peu galvaudé. Sécuriser une page statique, ce n’est pas un peu exagéré ? Ou bien il s’agit d’une autre discipline : sécuriser un appareil connecté à l’Internet.

        1. 1

          Merci Salim pour ton retour. Que trouves tu mélangé? j’ai essayé de rediger mon article comme j’ai déployé l’outil. Pour le fait de sécuriser une page statique, on est d’accord que c’est bcp pour une seule page. Mais lorsque ça devient un blog, ou une autre utilisation plus poussée, ça prends son intérêt réel

          1. 1

            C’est un ressenti personnel sur le fait que mettre en ligne un site Web (publier du contenu) fasse aussi appel à des connaissances en administration système et réseau. Un débutant peut avoir l’impression de ne pas avoir le versant sécuritaire, du fait que les problématiques de sécurité peuvent lui échapper, à moins d’y avoir été sensibilisé de manière concrète ; ou formé à ces problèmes par une mise en perspective (maîtriser ce que l’on fait par la réflexion). La teneur de l’article peut amener à penser que les choses se font le plus simplement possible, (et nuance), même si cela devient clair que les choses ne sont pas au plus simple.

        1. [Comment removed by author]

          1. 1

            L’article n’est pas forcément facile à composer, je pense que certaines significations sont inexactes. D’une part, les distinctions entre les choses. Le terme « métadonnée » est reconnu par le dictionnaire Le Petit Robert (2014) comme étant « apparu » en 1997 (INFORM.) et n’a qu’un sens « Donnée formelle, normalisée et structurée, utilisée pour décrire et traiter le contenu des ressources numériques ». Confusions par similitude entre information et métadonnée pouvant amener à une représentation peu pertinente, comme le montre l’usage d’expressions telles que « monde anologique », « objets de données virtuel », « méta-information » ; ou encore l’assimilation entre ce qui est désigné et signifé : « données primaires » (bizarre, comme formulation) et une base de données, en référence à l’organisation d’une bibliothèque. L’ensemble étant plus ou moins contrebalancé ensuite, à partir de la section « Exemple de métadonnées ». En fait, je pense que le parallèle aurait dû être fait un autre sens. Une métadonnée c’est une donnée qu’on peut traiter, exploiter via des mécanismes automatisés.

            1. 1

              Merci pour votre commentaires constructifs, j’ai modifié l’article sur la partie I “Introduction aux métadonnées[…]” en tenant compte de vos retours.

            1. 1

              Je ne comprends pas votre vidéo. Ce n’est pas sérieux ?!

              Non le langage bash est un vrai langage de programmation qui réponds à tous les critères reconnus pour le qualifier comme tel, ce n’est pas un simple fichier “batch” qui contient une liste de commandes. Par contre, comme son avantage est justement de pouvoir appeler facilement n’importe quelle commande, on va souvent utiliser ce raccourcis soit par simplicité soit pour utiliser l’outil le plus approprié plutôt que de l’écrire en bash natif. Mais on peut parfaitement faire un sed, un cat ou un scanner de port en bash sans utiliser de programme externe. — commentaire de Christophe Casalegno (Brain 0verride), cité en référence dans la vidéo.

              Comment peut-on croire (se fonder sur) ce genre d’allégation ? C’est exactement l’inverse (source : Unix Stack Exchange, c.f. une réponse de Stéphane Chazelas) que vous dirons les spécialistes du Shell Unix.

              Shells are a higher level language. One may say it’s not even a language. They’re before all command line interpreters. The job is done by those commands you run and the shell is only meant to orchestrate them.

              In 50 years, we’ve not found better than that API to harness the power of commands and have them cooperate to a task. That’s probably the main reason why people are still using shells today.

              And shells have not been designed to run like that, they have no pretension to being performant programming languages. They are not, they’re just command line interpreters. So, little optimisation has been done on this front.

              [Why is using a shell loop to process text considered bad practice?…] […] If we want to address some of those issues above, that becomes:

              while IFS= read -r line <&3; do
                {
                 printf '%s\n' "$line" | cut -c3 || exit
                } 3<&-
              done 3< file
              if [ -n "$line" ]; then
                  printf '%s' "$line" | cut -c3 || exit
              fi
              

              That’s becoming less and less legible.

              1. [Comment removed by author]

                1. 1

                  Merci pour cette présentation !

                  Malheureusement, la moindre installation ou mise à jour servait également à chauffer la médiathèque, sans compter le temps que ça prenait.

                  C’est trop drôle ! :-D Dommage qu’ils ne fournissaient pas de paquets pré-compilés. C’est ce que propose GNU Guix bien que ce soit un système permettant initialement d’installer à partir des sources.

                  On s’aperçoit que les utilisateurs doivent être formés pour maîtriser correctement un système d’exploitation.

                  Gentoo (méta-distribution) attribue deux choses essentielles à une distribution Linux : la communauté (+ la documentation & les compétences) et le gestionnaire de paquets. La plupart des distributions Linux sont des dérivées et beaucoup de distributions disposent sans doute des même paquets logiciels dans leur dépôt. Sinon, comme cela a été relevé dans l’article, on peut toujours essayer d’installer en local à partir des sources (bien que cela puisse devenir fastidieux).

                  J’ai remarqué que les utilisateurs n’avaient pas toujours les même attentes, comme les développeurs et les administrateurs systèmes.

                  1. 1

                    C’est dommage mais parfois j’ai l’impression qu’il faut vraiment s’y connaître pour ne quasiment jamais être embêté avec GNU/Linux. C’est pour cette raison que j’ai immédiatement choisi Gentoo Linux comme mon premier OS : une méta-distribution. Ainsi on peut changer ce qui ne fonctionne pas (ou ce qui dysfonctionne) lorsqu’on parvient à comprendre : on apprend à construire son système. C’est tellement complexe que je me suis résolu en voyant le positionnement des participants dans la communauté (Do It Yourself) à me tourner vers GNU Guix. Les gens de Gentoo sont sûrement compétents et ambitieux mais ils n’ont pas de fondations durables : chacun forme ses projets selon son intérêt. La communauté n’a aucune perspective à partager (enfin, c’est ce qui me semble). Debian ne me correspondait pas car à l’origine il me manquait véritablement cet esprit « Do It Yourself ». Pour moi, il aurait été plus simple de choisir NixOS (c’est semblable à Guix) mais ce n’est pas ce que je recherche. L’un dans l’autre j’ai l’impression qu’on a une meilleure vision des choses avec Guix.

                    1. 3

                      Pas utile pour l’utilisateur lambda ? c’est justement le but de tous mes articles : “lambadifier”… c’est d’ailleurs la raison pour laquelle j’ai cofondé il y a plusieurs années la communauté “OpenBSD Pour Tous” : faire en sorte qu’OpenBSD soit utilisable pour le béotien IT, ni plus ni moins.

                      Je n’ai aucun attrait pour le sysdev. Utilisateur Unix/Linux convaincu : assurément depuis fort, fort, fort longtemps. Et d’OpenBSD depuis 2016, mais toujours à côté d’un sys Debian-like ou l’autre.

                      Mon constat : oui, OpenBSD est un OS facile à appréhender, qui peut être utiliser pour les besoins quotidiens (bureautique, internet, etc…) et utilisable, mais est vraiment fait pour et par des dév, assurément. Donc, pour l’utilisateur final, c’est viable, mais… y’a des efforts à faire pour rendre vraiment “user-friendly”, un peu comme sous Linux, ou d’autres BSD. Sauf que ce n’est pas le but de cet OS !

                      Donc des efforts de vulgarisation sont à faire ; que ne fait pas l’équipe… la charge utile est dans les mains d’utilisateurs convaincus, quelque soit la langue ! (cela n’enlève en rien la qualité des informations dans la FAQ Officielle, et encore mieux dans les manpages, qui est vraiment un cran supérieur, parce que sous OpenBSD, si la FAQ ou le manpage n’est pas correctement à jour, c’est un bug sérieux qui doit être résolu avant publication, ou à défaut, le plus rapidement possible afin que l’information soit pertinente, correcte et à juste titre…)

                      Voilà

                      1. 1

                        Les divergences sont acceptables mais il faut reconnaître qu’il y a beaucoup de contradictions dans l’informatique libre. Généralement lorsqu’on n’est pas motivé et entraîné on abandonne irrémédiablement.

                        1. 1

                          Généralement, lorsqu’on n’est pas motivé, on abandonne quelque soit la tâche ou l’objectif ; cela n’a rien à voir avec le fait d’être entrainé ou pas. Je connais dees enseignants qui se sont mis à OpenBSD sans rien connaître à l’IT, en soit, utilisateurs de Linux au quotidien, donc se sont dit pourquoi pas, et y trouvent leur compte. D’autres utilisateurs ont abandonné… Je connais même des profils IT qui n’en veulent pas. Donc, vraiment ce n’est pas le fait d’être entrainé qui motive l’adoption, c’est la volonté personnelle.

                          Mais pour autant, faudrait-il déjà chercher à essayer, bref avoir de la volonté de découvrir, tester, chercher à comprendre - on rejoint ici l’esprit hacker initial ;)

                          1. 1

                            Attention, je ne dis pas qu’utiliser OpenBSD, c’est être un hacker. Je parle bien de l’esprit hacker, celui de chercher à comprendre les choses, et les découvrir sous un autre angle ;)

                            1. 1

                              Ce que je voulais dire c’est que l’entraînement s’avère indispensable pour ne pas abandonner et qu’il faut de la motivation pour s’entraîner. Prenons deux cas illustratifs. Une personne souhaite réaliser son apprentissage avec un Raspberry Pi (matériel bon marché et peu encombrant) et sur OpenBSD (ouvert, sécurisé et performant). Réponse : rêve toujours. Une autre personne apprend qu’il faut choisir son matériel sur lequel faire tourner un système entièrement libre. Réponse : déboursez une fortune (cf. [1],[2]&&[3]) ou, restez à la ramasse.

                              [1] https://www.gnu.org/philosophy/install-fest-devil.fr.html
                              [2] https://guix.gnu.org/fr/blog/2021/new-supported-platform-powerpc64le-linux/
                              [3] https://www.raptorcs.com/content/base/products.html

                              Face à des problématiques les solutions proposées ne sont pas toujours adaptées. Selon certains, Unix a décliné à cause du prix d’installation. Je pense que les BSDs ont pâti de leur positionnement côté serveur.

                              Quelle différence entre Minix et OpenBSD ? Pourquoi se prendre autant la tête avec tous ces systèmes ?

                              1. 2

                                Pourquoi se prendre autant la tête avec tous ces systèmes ?

                                L’esprit hacker ;)

                                1. 1

                                  Alors, là, sincèrement très mauvais exemple !!!

                                  Rasperry Pi v3, 4, et autres architectures similaires sont supportées :

                                  Ensuite, oui il faut faire attention au fait que le matos soit compatible, et non, y’a pas besoin de dépenser des fortunes. Mais sortir des liens qui n’ont rien ou prou de relations avec OpenBSD pour justifier le propos me semble un tantinet de mauvaise foi.

                                  Clairement il me semble que vous ne connaissez pas bien ni OpenBSD, ni FreeBSD - qui s’utilise très bien sur Desktop, plus simplement qu’OpenBSD,

                                  Minix, je connais de nom, mais je n’ai jamais utilisé. DONC vous n’aurez aucun avis de ma part, d’autant plus encore moins un avis comparatif.

                                  1. 1

                                    Je pensais que OpenBSD ne supportait aucun logiciel « fermé » par mesure de sécurité. Ce qui aurait été comparable à la politique du projet GNU (FSDG) en terme de conséquences : une absence de support pour certains dispositifs de l’ordinateur (device). Donc, trois solutions : 1. un ordinateur avec un support partiel 2. un ordinateur complètement supporté 3. des efforts à fournir pour supporter ce qui fait défaut. Effectivement, je ne connais pas les BSD. Mais, de mémoire, il me semble que de façon générale ils ont beaucoup moins de support à offrir par rapport à GNU/Linux (peut-être à cause de l’uniformité ou d’un manque de pluralisme, va-savoir). Chacun utilise le système qu’il veut.

                                    Users who prefer to install a pre-built desktop version of FreeBSD rather than configuring one from scratch should refer to GhostBSD, MidnightBSD or NomadBSD.

                                    On peut penser que les serveurs présenteront peu d’intérêt pour les possesseurs d’ordinateurs personnels (PC). Comme il y a vraisemblablement bien plus d’utilisateurs d’ordinateurs personnels que de serveurs, on pourrait se demander pourquoi NetBSD, OpenBSD et FreeBSD sont connus, contrairement à GhostBSD, par exemple.

                                    Les gens de OpenBSD ne sont pas très clairvoyant. Ils ne veulent pas supporter les pilotes non-libres dans leur système d’exploitation mais ils rejettent catégoriquement la licence GNU GPL. Ils souhaitent être libre mais tant pis pour les autres. Ce que j’ai sorti ce n’est pas de la mauvaise foi mais de la lucidité. Reprenons l’exemple du Raspberry Pi. Mon imprimante dispose d’un pilote en x86_64 pour GNU/Linux sauf que le constructeur ne délivre pas le code source. Je ne peux donc rien imprimer avec le Pi (ARM).

                          1. 1

                            Pourquoi est-ce que l’audio et la vidéo ne sont pas gérés automatiquement ?

                            Pour des raisons de confidentialité

                            C’est en phase avec leur orientation.

                            – Source: openbsd.org
                            Our efforts emphasize portability, standardization, correctness, proactive security and integrated cryptography.

                            Par contre, je pense pas que ce soit quelque chose d’utile pour l’utilisateur lambda. On rentre dans de l’informatique pour les experts. Administrateur système -> Utilisateur Unix convaincu -> Attrait prononcé pour le développement système. Moi, en lisant ces ligne, avec retrait, j’ai pas l’impression qu’Unix ait un avenir.

                            1. 1

                              Je préfère le terme « capturer » au terme « piéger » : capturer renvoie à quelque chose de dynamique et dans le contexte, il a une connotation positive. Je trouve que les scripts Shell sont compliqués ; en fait, je pense qu’il faut avoir des connaissances générales, sinon c’est trop abstrait (on ne sait pas trop comment s’y prendre pour conduire l’ensemble).

                              1. 1

                                Je lis le livre « Modern Operating Systems » de Andrew Tanenbaum, Herbert Bos & Co mais je n’en suis qu’au début. Ce qui me paraît étonnant c’est la corrélation qui est faite entre la consommation mémoire et l’affichage instantané à l’écran.

                                Lors du cat /tmp/1gib.test, quelque chose a dû vous sauter aux yeux : il n’y a pas d’attente, le fichier vous est affiché immédiatement et progressivement.

                                […] (appels systèmes) Ce que nous pouvons en déduire, c’est que la lecture du fichier est progressive et envoyée directement à la sortie.

                                […] cat conserve une empreinte mémoire la plus faible possible vu qu’il évite l’accumulation sur la RAM.

                                L’instantanéité perçue est relative à la « vitesse des opérations ». Sur mon Raspberry Pi l’affichage de la console Linux est très lent lors de la phase d’amorçage ou lors d’une compilation logicielle par rapport à un ordinateur portable avec un processeur puissant (autant de mémoire RAM disponible). Qu’en est-il en remplaçant le HDD (Hard Disk Drive) par un SDD (Solid State Drive) ? La réalité semble plus complexe (éloignée) que l’interprétation éclaire (erronée ?) qui en est faite dans l’article.

                                1. 2

                                  Très bon choix de livre, c’est une référence. Effectivement, la vitesse d’affichage est dépendante de ton archi, mais ce n’est pas là qu’est la vraie information de l’article en réalité. Cette phrase n’existe que pour faire un premier constat, constat qui est expliqué par le code. L’affichage est immédiat parce que la conso de RAM est constante (et faible) [EDIT: my bad, cette phrase est fausse. Cf. la suite de la conversation]. Le tout étant la conséquence du streaming de données. Au besoin, tu peux augmenter la taille du fichier pour tester les limites de ton propre système.

                                  Avec ton Raspberry tu observes une latence qui peut être liée à d’autres paramètres dont j’ai pas conscience mais ça ne remet pas en question la logique interne de cat qui ne fait pas un « loadFileInMemory then print ». Ça se teste très facilement avec un trace. Je t’invite à jouer avec la stack de test que j’ai mise en place https://gitlab.com/prytoegrian/blog-codes/-/tree/main/consommation_memoire_cat en limitant la RAM de docker pour valider ton cas limite.

                                  Pour la petite anecdote, je me suis aperçu que l’implémentation de cat sous alpine différait de celle sous debian ; la logique de streaming demeurait. Ça ne me choquerait pas qu’il y ai aussi quelques adaptations pour Raspberry.

                                  1. 1

                                    Ce qui me bloque c’est que je ne comprends pas l’assertion « L’affichage est immédiat parce que la conso de RAM est constante (et faible) » : si possible, il me faudrait une explication (exposer les choses).

                                    1. 2

                                      Après relecture, je m’aperçois que mon premier message t’as induit en erreur, la causalité est dans l’autre sens.

                                      Cat est un algo simple : il prend un input et l’affiche dans un output. Pour être performant, il libère la RAM au plus tôt et pour cela, il se débarrasse de ses données ASAP (il les affiche). L’affichage immédiat est donc la cause d’une consommation réduite : le programme en lui-même n’en a plus besoin.

                                      Dans un système à faibles ressources, tu pourrais te retrouver avec une lenteur, mais jamais parce que cat charge la totalité du fichier, juste par spécificités du système.

                                1. 1

                                  Bonjour salim.

                                  Tu omets effectivement pas mal de passages de l’article juste pour critiquer.

                                  Avant l’exemple :

                                  printf("%d", (5,3) );
                                  

                                  Il est également précisé :

                                  L’instruction suivante, bien qu’inutile est tout à fait valide :

                                  En fait, j’ai gardé cette ligne car pour quelqu’un qui vient d’un langage de haut niveau, elle afficherait un tuple ! Elle est ici pour introduire une syntaxe pas un exemple d’utilisation réel.

                                  Le if est effectivement un peu maladroit mais entre temps, il y a un exemple très courant d’utilisation dans une boucle for que tu as habilement ignoré. De même pour la boucle while suivante.

                                  Je ne commenterais pas l’utilisation de la ternaire.

                                  En programmation, les tableaux sont conventionnellement indexés en utilisant la syntaxe tab[i]. L’équivalence est admise car elle a un sens intrinsèque dans la conception du langage C. L’identificateur de tableau tab est converti en un pointeur constant sur le premier élément du tableau : on accède à une structure de donnée.

                                  Je cite l’article.

                                  Cet opérateur n’a pas grand-chose à voir avec les tableaux en fait.

                                  Son nom est subscript operator et s’applique à des pointeurs (car il ne peut s’appliquer à des tableaux directement à cause de la conversion vers un pointeur). C’est un problème lié au langage mais voilà le fait est là. Et sa définition est (*((E1)+(E2))) avec ce que cela implique, je pense que l’article est claire à ce niveau là.

                                  Pour moi, ce code est totalement incompréhensible (ou vraiment incroyable, avec mes rudiments du C).

                                  Oui c’est assez incroyable. L’instruction en elle même est peu utilise mais l’obscurcissement final est tel que je me devait de le notifier au lecteur.

                                  Au cours de ma lecture du livre « Le guide complet du langage C » de Claude Delannoy, je ne me souviens pas de ce genre de notation (?).

                                  Ce n’est pas tout à fait une référence … Sa première édition était très souvent imprécise (à la limite du faux) sur certains points. Je ne l’avais pas apprécié du tout. Encore une fois, le but de l’article est de présenter des syntaxes absentes des cours conventionnels.

                                  Mon niveau n’est pas suffisant pour me faire une idée de ce qui est valide ou pas dans le reste de l’article. Je reste sceptique.

                                  Je t’invite à vérifier par toi même. Comme tu as vérifié pour l’équivalence qui te semblait fautive mais qui en fait est tout à fait exacte.

                                  Le but de l’article est présenter des syntaxes du langage méconnues. Forcément, ça fait un peu bizarre, incongrue mais je pense avoir bien vérifié tous les points avant de l’avoir publié et que mis à part les exemples qui sont parfois tordus et pas très utilise (mais là encore, c’est pour présenter une syntaxe !). Je pense qu’il va être difficile de s’attaquer au fondement de l’article même.

                                  1. 1

                                    Le problème est qu’on passe à côté de l’essentiel en montrant (également) ce pour quoi le langage n’a pas été conçu. Ce n’est pas juste pour critiquer que j’ai relevé tel ou tel point. Bref, ce n’est que mon opinion.

                                    1. 1

                                      Mais c’est justement le but de l’article de présenter ces syntaxes obscures du langage C. Même si leur utilité est faible, ce sont des cas que l’on peut rencontrer. Par exemple dans le noyaux Linux ou dans les soumissions de l’IOCCC.

                                      J’insiste sur présenter la syntaxe et pas des cas d’utilisation de ces syntaxes. Car je pense qu’en contexte, c’est plus compliqué à comprendre que dans un exemple simple qui n’a que peu de sens.

                                      Je trouve que toute la beauté de la chose est de trouver quand utiliser ces syntaxes lorsqu’elles se révèlent intéressantes. Certaines comme “le tableau flexible” ou “les caractères trop spéciaux” ne sont pas intéressantes de nos jours mais on peut les retrouver dans d’anciens codes sources.

                                  1. 1

                                    Juste une coquille dans son titre, l’outil s’appelle rustdeSk :) Sinon je valide, il fonctionne bien.

                                    1. 1

                                      J’aimerai votre avis sur le commentaire que je viens d’ajouter svp

                                      1. 1

                                        Et moi j’aimerais que Scarlett Johansson me demande en mariage. :o)

                                        1. 1

                                          Je pense qu’on peut introduire du code malveillant par continuité dans n’importe quel logiciel (temps + énergie + complexité + ingéniosité + confiance). La surface d’exploitation est toujours problématique : plus un système devient sécurisé moins il est pratique à utiliser. Il me semble qu’on ne cherche pas à protéger totalement son système mais on se protège de menaces identifiables. Donc, à minima, il me semble qu’il faut avoir des connaissances sur le fonctionnement des systèmes d’exploitation (et) ou se former en sécurité informatique. Aucune magie noire. Pour rappel, l’extrait de code Java le plus recopié sur Stack Exchange contenait un bogue mineur. Le logiciel mentionné a 154 fichiers .rs et 47 413 lignes.

                                      1. 2

                                        Je n’ai pas d’expérience dans le domaine mais je pense que l’important est d’utiliser les outils qui nous conviennent. Si l’outil est complexe le temps d’apprentissage est plus long pour parvenir à une maîtrise. Il semble que cela soit fastidieux pour l’auteur de passer en revue du texte. À mon avis, c’est parce que son approche n’est pas efficace : lire du texte en séquence (e.g. Emacs Rocks! Episode 12: Working with HTML). Évidemment, il y a des avantages et des inconvénients.

                                        1. 1

                                          Pourquoi vaut-il mieux être root pour se lancer dans la recherche d’un fichier de configuration du système ?

                                          Le système signale comme il se devrait qu’on ne peut pas lancer la recherche dans tel répertoire à cause des droits d’accès.

                                          find /usr/bin -size +1M -exec ls -lh {} + \;
                                          

                                          find lance un nouveau processus ls pour chaque résultat.

                                          Mais en ajoutant un signe plus après les accolades, find ne lance de nouveau processus que lorsque le nombre de noms de fichiers a dépassé le nombre limite d’arguments de la ligne de commande.

                                          cat /etc/passwd | grep bash
                                          

                                          C’est vraiment montrer le mauvais exemple ; fournir plutôt la bonne explication.

                                          grep "PS1" /etc/*
                                          

                                          Le motif de noms de fichiers ne correspond pas absolument : la recherche n’est pas récursive, ….

                                          grep -R "PS1" /etc/
                                          
                                          1. 2
                                            1. /usr/bin est accessible en lecture à tout le monde.

                                            2. On s’en fiche des processus lancés par -exec. C’est un cours d’introduction au shell, pas un exposé sur l’optimisation à outrance des commandes du shell.

                                            3. L’exemple avec le “useless use of cat” est avant tout pédagogique. D’ailleurs il aurait suffi de lire la phrase juste après pour s’en rendre compte. C’est expliqué. Suffit de lire l’article.

                                            4. Ben non, la recherche n’est pas récursive. Rien ne le dit dans le texte.

                                            1. 1

                                              Mes remarques peuvent paraître pointilleuses mais c’est important pour la compréhension.

                                              Tous les fichiers de configuration de mon système dans le répertoire /etc sont protégés en écriture pour un utilisateur courant.

                                              find /etc -type f -writable
                                              

                                              La commande cat combinée avec grep est fautive sans que l’on comprenne vraiment pourquoi. On pourrait penser que c’est plutôt équivalent à cat /etc/passwd ; grep bash /etc/passwd. L’utilisateur souhaite afficher le contenu du fichier, s’aperçoit que cat n’est pas adapté et réduit donc à l’essentiel ce qui est affiché grâce à grep. Néanmoins, il faut savoir que des commandes fonctionnent directement avec des fichiers et dans des pipes. Cela est éventuellement plus difficile dans la manière d’exposer mais le propos n’est pas forcément plus compliqué (quoique plus fastidieux).

                                              On comprend que grep "PS1" /etc/* est incorrect puisque le motif du nom de fichier donne accès à des fichiers quelconques (caractère de substitution étoile) dans un répertoire rempli de fichiers. Peu importe que la recherche soit poursuivie dans les sous-répertoires mais cela paraît plus logique et surtout correct.

                                              1. 2

                                                Mec.

                                          1. 1

                                            je vais mon grammar nazi pour certains mais : https://chiffrer.info/ pour l’explication de la blague du début :)

                                            1. 1

                                              En effet, la terminologie de cryptage reviendrait à chiffrer un fichier sans en connaître la clé et donc sans pouvoir le déchiffrer ensuite.

                                              Cette assertion frise l’illogisme puisque l’opération consiste à transformer un message intelligible pour qu’il soit incompréhensible, illisible ou inaccessible. Indéchiffrable (très difficile à comprendre, à deviner ou à résoudre) dans le sens où il faut pouvoir le comprendre d’une manière ou d’une autre ; mais pas intranscriptible. En toute logique, cela signifie retrouver le message original. Sinon le message n’a aucune valeur. Les sens pourvus par les termes « cryptage » ou « crypter » tout comme « cryptologie » ou « chiffrer » ou « message codé indéchiffrable » se retrouvent dans plusieurs définitions courantes car ces termes ont des traits communs : caché et énigmatique (ce qu’il est difficile de comprendre, d’expliquer, de connaître).

                                            1. [Comment removed by author]

                                              1. 1

                                                La remarque à propos de info relève à mon avis d’un jugement mal avisé.

                                                À en juger par les commentaires des utilisateurs chevronnés de systèmes Unix dans les forums ou les listes de diffusion, les pages info ont moins bonne presse que les pages man, en raison de leur système de navigation quelque peu désuet et, surtout, de l’impossibilité de les mettre en forme, notamment pour en imprimer un extrait ou la totalité.

                                                On peut produire divers formats en compilant les même fichiers sources : HTML, PDF ou Info. Il existe aussi plusieurs lecteurs de documents Info. Il est plus efficace et pratique de parcourir un sujet dans le système Info qu’en utilisant la commande less. Le système Info est recommandé par le projet GNU car il vise à former des utilisateurs et non pas à informer (comme les pages man).