Mais si tu devais réécrire sudo ou autre outil de ce style, je suis pas convaincu que le C serait le language le plus adapté.
Il l’est. Fondamentalement les outils Unix, le shell, et le C ont été pensé de concert pour fournir un environnement intégré (il y a souvent bijectivité entre les appels shell et les appels C). C’est sous Unix que le C révèle sa puissance (donc pas de bloatware, E/S au format texte, en ligne et facilement parsable, minimalisme, généricitié, orthogonalité, transparence).
À titre d’exemple, je suis en train d’écrire quelques petits utilitaires, dont rsu en ~1 journée à temps plein (un genre d’opposé à sudo : il diminue les privilèges d’un processus — j’espère bien pouvoir publier ma petite collection sur linuxfr un de ces jours) :
~ wc prog/rsu/rsu.c
1123172173 ~/prog/rsu/rsu.c
C’est tout riquiqui
~ man rsu
RSU(1) General Commands Manual RSU(1)
NAME
rsu – execute a command under restricted permissions
SYNOPSIS
rsu [-l res:limit] [-n nice] [-u mask] [NAME=VALUE ...] USER /CMD
[ARGS ...]
DESCRIPTION
rsu allows to set permissions, resource limits, niceness, environment,
and user of an executable called from root, without the overload of a
full shell interpreter.
The options are as follows:
-l res:limit
Set hard and soft limit of a resource identified by a number as
found in /usr/include/bits/resource.h, see getrlimit(2) for
documentation. This replaces the ulimit shell builtin. Can be
repeated.
-n nice
Increment sheduling priority (aka niceness).
-u mask
This replaces the umask shell builtin, ie. file mode creation
mask.
[NAME=VALUE ...]
A list of environment variables with their assigned value. The
format is not checked, passed as is.
USER The user who execute the command, appropriate groups are set
according to /etc/group.
/CMD An absolute path to an executable.
[ARGS ...]
Arguments for the called executable.
Même pas en rêve je fais ça dans un autre langage… Et à la base j’ai juste des connaissances de base du C (je montre pas le code d’ailleurs… y’a même des goto à l’ancienne) et je me suis lancé après lecture de The Art of UNIX Programming, avec à mon chevet The Linux Programming Interface, man 3p ... est devenu mon ami aussi.
Mais par exemple parser /etc/group. En C ça se fait très bien, parce que c’est un bête fichier tabulé (de fait mon code se résume à un strstr puis strtol pour avoir l’uid/gid de l’utilisateur, et pour des choses plus complexes l’approche traditionnelle est de passer par lex/yacc). En mode moderne, on aurait sorti un bazooka json-over-xml-over-transparentNetwork-over-sqldatabase avec minimum trois couches d’abstraction (j’exagère ?) pour storer le bousin…
La programmation en C d’outils pur Unix est plutôt agréable. C’est beaucoup de lecture, peu d’écriture. Ça peut être frustrant de ne pas pisser de la ligne de code, mais au final le résultat est là quand on prend bien le pli Unix.
Perso j’apprécie énormément cette manière de bosser. Le truc, c’est que c’est peu compatible avec un travail en entreprise dans l’ambiance ultra-autoritaire actuelle, il faut bien le dire, parce que cette semaine on a rien produit parce que lecture de n00 pages de doc mini… Non il faut juste montrer qu’on a pissé du code ou autre pour satisfaire la hiérarchie, il vaut mieux écrire 1000 lignes de codes qui seront caduques dans 6 mois plutôt que 100 lignes qui dureront 30 ans.
Le seul truc un peu relou, ce sont les tests de retours des fonctions (absence de mécanismes d’exceptions).
Pour ma part j’apprécie la rigueur de la documentation et la stabilité du bousin. Une méthode de travail qui manque à beaucoup (traumatisé par le passage de python 2 à 3 et par des collègues dont les bidouilles dégueulasses et non documentées se transforment en autant de peau de banane pour les autres…).
Et puis si le C est toujours là, c’est parce qu’en vrai, on n’a rien inventé de bien nouveau depuis en informatique… conceptuellement parlant. Les soit-disante innovations sont souvent des solutions à des problèmes que les ingénieurs se sont créés eux-mêmes (je te vois http1, 2, 3, je te vois…).
on cherche à glorifier le bord politique de ceux qui ont introduit une réforme
C’est un bel exemple de projection, car c’est toi, et toi seul, qui a fait le focus sur la “réforme”, le lapsus est révélateur du mécanisme psychologique.
Bon, pour quand même expliquer deux-trois trucs, qui pourrait être utiles à ceux qui s’intéressent sincèrement à la méthode scientifique :
1. En histoire on peut prouver tout et son contraire en étant purement factuel. Zemmour utilise la même astuce rhétorique que patrick_g pour dire que Pétain a sauver des Juifs. [1,2]
2. Ce qui m’amène au point : on source, on source, on source. Sourcer ≠ citer (précisément pour éviter ce que patrick_g fait avec mauvaise foi).
3. Les sources doivent être en adéquation avec la thèse (ça c’est un truc bien pratique pour repérer la mauvaise foi).
4. On ne prouve pas une thèse, on vient l’étayer au mieux, par une concordance de sources, toutes cohérentes et allant dans son sens (et pas juste quelques lignes soigneusement choisies), par contre on peut infirmer une thèse assez facilement.
Pour des agrégats, si tu tiens à scripter toi-même et, mettre les mains dans le cambouis, tu peux directement taper dans les stat. exposées par le noyau : /proc/meminfo, /proc/loadavg, /proc/stat, classiquement données fournies via les outils plus user-friendly et plus portables free, uptime, top, ps, etc.
Au fait, comment se fait-il qu'Office à mon taf' réclame plus de manipulations que jamais pour une sauvegarde locale et propose par défaut l'enregistrement dans le cloud ?
Ce n'est pas du tout un truc monolithique qui fait tout.
Tu pourrais faire un truc pour moi ? Un truc que j’ai oublié de faire quand je l’ai viré de mon système parce qu’il me tirait encore et toujours plus de dépendances.
$ ls -lLh /sbin/init /sbin/shutdown /usr/sbin/atd /usr/sbin/xinetd /sbin/udevd
-rwxr-xr-x 1 root root 52K Jan 9 11:17 /sbin/init*
-rwsr-xr-- 1 root super 31K Jan 9 11:17 /sbin/shutdown*
-rwxr-xr-x 1 root root 1.2M Jan 9 11:04 /sbin/udevd*
-rwxr-xr-x 1 root root 23K Jan 29 12:46 /usr/sbin/atd*
-rwxr-xr-x 1 root root 171K Dec 20 23:32 /usr/sbin/xinetd*
Je te laisse deviner l’intrus… qui est de facto un programme de chez systemd :
Arf, oui «synchro» c’est du vocable pacbase, en cobol pur on n’utilise pas toujours le même nom mais j’ai oublié les autres termes (fusion?). Sous Unix, ce serait des algorithmes construit à coup de sort/uniq/join. En SQL, ce sont tout simplement des jointures ou des group by (mais pas juste du “Query”, on fait des traitement dessus…).
Ça permet de ramener les traitements à une complexité linéaire (même si en pratique on ne travaille plus comme ça).
Par contre une rupture est une rupture.
Pour les JCL, après recherche, permet moi d’émettre de gros doutes : à priori c’est spécifique mainframe. À première vue, aucun lien avec Cobol, mais on ne comprend pas bien la déclaration des I/O Cobol si on n’a pas fait un peu de JCL.
Pour la qualité de code, tes critères sont purement formels et bas niveau. C’est sûr que sur des modifications mineures, où vous ne faites plus vraiment de nouvelle conception, l’agile peut suffir…
On dév encore en Cobol. Il se raconte même que certains font encore du Pacbase, mais ça j’y crois pas, je pense que c’est un mythe :-`
Et il reste que peu de personne a les compétences toute techno confondue. Au moins dans le mainframe c’est cadré (pas de crainte de voir des nombres flottants, I/O complètement bordées, aucun risque d’injection SQL, performance acceptables même si codé avec les pieds — et c’est très souvent codé avec les pieds).
C’est un drame d’ailleurs, le refus de reconnaître cette base de code et ce travail qui continue ; Chez mon client actuel, on tient absolument à passer en méthodo. agile &wtf. Pas du tout adapté à un cycle de dév. sur serveurs z/OS.
Je tenais à te dire merci pour l’article, au vu des menteurs qui essaient de dénigrer l’autrice et déforment son propos.
Il y aurait deux reproches à faire :
L’utilisation du terme ‘totalitaire’ serait à grandement nuancer, même si effectivement cela fait peser une menace certaine en cas de retour du racisme institutionnel ; ce n’est pas comme si la menace était fantasmée. Le numérique deviendrait un outil monstrueux, sans possibilité d’échappatoire.
Un aspect non abordé est le passage par un intermédiaire privé. Il ne faut pas oublier qu’un fonctionnaire a un statut, et donc un minimum de protection face à un ordre foireux voire illégal. Présenter les corps d’État comme inefficace, conservateur, etc. ça marche chez les faibles d’esprits, mais ça a ses limites. Alors qu’avec le privé et la prestation, on peut faire passer n’importe quoi, sans aucune garantie autre que la bonne parole de Thalès.
[^] # Re: Survivor
Posté par PR . En réponse au journal C, un âge remarquable. Évalué à 10.
Il l’est. Fondamentalement les outils Unix, le shell, et le C ont été pensé de concert pour fournir un environnement intégré (il y a souvent bijectivité entre les appels shell et les appels C). C’est sous Unix que le C révèle sa puissance (donc pas de bloatware, E/S au format texte, en ligne et facilement parsable, minimalisme, généricitié, orthogonalité, transparence).
À titre d’exemple, je suis en train d’écrire quelques petits utilitaires, dont rsu en ~1 journée à temps plein (un genre d’opposé à sudo : il diminue les privilèges d’un processus — j’espère bien pouvoir publier ma petite collection sur linuxfr un de ces jours) :
C’est tout riquiqui
Même pas en rêve je fais ça dans un autre langage… Et à la base j’ai juste des connaissances de base du C (je montre pas le code d’ailleurs… y’a même des goto à l’ancienne) et je me suis lancé après lecture de The Art of UNIX Programming, avec à mon chevet The Linux Programming Interface,
man 3p ...
est devenu mon ami aussi.Mais par exemple parser /etc/group. En C ça se fait très bien, parce que c’est un bête fichier tabulé (de fait mon code se résume à un strstr puis strtol pour avoir l’uid/gid de l’utilisateur, et pour des choses plus complexes l’approche traditionnelle est de passer par lex/yacc). En mode moderne, on aurait sorti un bazooka json-over-xml-over-transparentNetwork-over-sqldatabase avec minimum trois couches d’abstraction (j’exagère ?) pour storer le bousin…
La programmation en C d’outils pur Unix est plutôt agréable. C’est beaucoup de lecture, peu d’écriture. Ça peut être frustrant de ne pas pisser de la ligne de code, mais au final le résultat est là quand on prend bien le pli Unix.
Perso j’apprécie énormément cette manière de bosser. Le truc, c’est que c’est peu compatible avec un travail en entreprise dans l’ambiance ultra-autoritaire actuelle, il faut bien le dire, parce que cette semaine on a rien produit parce que lecture de n00 pages de doc mini… Non il faut juste montrer qu’on a pissé du code ou autre pour satisfaire la hiérarchie, il vaut mieux écrire 1000 lignes de codes qui seront caduques dans 6 mois plutôt que 100 lignes qui dureront 30 ans.
Le seul truc un peu relou, ce sont les tests de retours des fonctions (absence de mécanismes d’exceptions).
Pour ma part j’apprécie la rigueur de la documentation et la stabilité du bousin. Une méthode de travail qui manque à beaucoup (traumatisé par le passage de python 2 à 3 et par des collègues dont les bidouilles dégueulasses et non documentées se transforment en autant de peau de banane pour les autres…).
Et puis si le C est toujours là, c’est parce qu’en vrai, on n’a rien inventé de bien nouveau depuis en informatique… conceptuellement parlant. Les soit-disante innovations sont souvent des solutions à des problèmes que les ingénieurs se sont créés eux-mêmes (je te vois http1, 2, 3, je te vois…).
Mort aux cons !
[^] # Re: avec des pincettes
Posté par PR . En réponse au journal Cyber guerre ou pas finalement. Évalué à 7.
Un article plus complet, et plus objectif que le commentaire de propagande auquel je réponds.
À noter qu’il a été publié fin janvier.
https://www.monde-diplomatique.fr/2022/02/TEURTRIE/64373
Ça c’est au niveau international. Mais il y a aussi des logiques internes à ces pays au passé et à la culture très diversifiés.
https://www.monde-diplomatique.fr/cartes/ukrainisation
https://www.monde-diplomatique.fr/2019/05/TARANKO_ACOSTA/59874
Mort aux cons !
[^] # Re: avec des pincettes
Posté par PR . En réponse au journal Cyber guerre ou pas finalement. Évalué à -1.
On compte sur les jean-michèle expert zéo-politique épidémiologiste je-l’ai-lu-sur-reinfoXXX du site pour nous révéler la lumière.
Mort aux cons !
[^] # Re: virus
Posté par PR . En réponse au lien Bill Gates est triste que l'immunité naturelle fonctionne mieux que ses vaccins . Évalué à 0.
Plus sérieusement, c’est surtout à Cambridge Analytica que je pensais.
Mort aux cons !
[^] # Re: virus
Posté par PR . En réponse au lien Bill Gates est triste que l'immunité naturelle fonctionne mieux que ses vaccins . Évalué à 2.
Du coup ils ont arrêté les chaînes de mails, Facebook, Youtube et autres réseaux asociaux pour s’informer ?
Mort aux cons !
[^] # Re: Droit à l'avortement
Posté par PR . En réponse au journal Le mouvement du logiciel libre est un mouvement politique et social. Évalué à 2.
C’est un bel exemple de projection, car c’est toi, et toi seul, qui a fait le focus sur la “réforme”, le lapsus est révélateur du mécanisme psychologique.
Bon, pour quand même expliquer deux-trois trucs, qui pourrait être utiles à ceux qui s’intéressent sincèrement à la méthode scientifique :
1. En histoire on peut prouver tout et son contraire en étant purement factuel. Zemmour utilise la même astuce rhétorique que patrick_g pour dire que Pétain a sauver des Juifs. [1,2]
2. Ce qui m’amène au point : on source, on source, on source. Sourcer ≠ citer (précisément pour éviter ce que patrick_g fait avec mauvaise foi).
3. Les sources doivent être en adéquation avec la thèse (ça c’est un truc bien pratique pour repérer la mauvaise foi).
4. On ne prouve pas une thèse, on vient l’étayer au mieux, par une concordance de sources, toutes cohérentes et allant dans son sens (et pas juste quelques lignes soigneusement choisies), par contre on peut infirmer une thèse assez facilement.
Je ne résiste pas à l’envie :
— https://www.cairn.info/revue-zilsel-2020-2-page-15.htm
— https://zet-ethique.fr/2022/01/15/zetetique-raison-et-positionnement-politique-retour-sur-un-editorial-de-bruno-andreotti/
—
[1] https://venividisensivvs.wordpress.com/2022/01/20/jacques-semelin-et-lenigme-des-75-une-memoire-troublee/
[2] https://www.youtube.com/watch?v=L7HTVZZr9Fk du même aauteur.
Mort aux cons !
[^] # Re: Droit à l'avortement
Posté par PR . En réponse au journal Le mouvement du logiciel libre est un mouvement politique et social. Évalué à -2.
Cherry picking, inculture historique crasse¹, ², ³ & récupération idéologique.
Mort aux cons !
[^] # Re: Non.
Posté par PR . En réponse au journal Le mouvement du logiciel libre est un mouvement politique et social. Évalué à -2.
Ça dépend si le nom du voisin commence par Z ou pas.
Mort aux cons !
[^] # Re: Droit à l'avortement
Posté par PR . En réponse au journal Le mouvement du logiciel libre est un mouvement politique et social. Évalué à -8.
Ils ont arrêté en 1975 de poursuivre, emprisonner, tuer les homme et les femmes qui pratiquaient l’avortement.
Être (un peu moins) un connard ne donne pas droit à une médaille.
Mort aux cons !
[^] # Re: Droit à l'avortement
Posté par PR . En réponse au journal Le mouvement du logiciel libre est un mouvement politique et social. Évalué à -3.
Lol¹².
Mort aux cons !
# Si Linuxfr pouvait en faire de même !
Posté par PR . En réponse au lien Cellule dissimulée de promotion d'Éric Zemmour sur Wikipédia. Évalué à -10. Dernière modification le 17 février 2022 à 12:22.
(je parle de la transparence de Wikipedia, toute proportion gardée)
Mort aux cons !
[^] # Re: Perso…
Posté par PR . En réponse au message [résolu] visualiser charge CPU et mémoire | mesurer l'efficience. Évalué à 2.
Pour des agrégats, si tu tiens à scripter toi-même et, mettre les mains dans le cambouis, tu peux directement taper dans les stat. exposées par le noyau : /proc/meminfo, /proc/loadavg, /proc/stat, classiquement données fournies via les outils plus user-friendly et plus portables
free
,uptime
,top
,ps
, etc.https://www.kernel.org/doc/html/latest/filesystems/proc.html
Mort aux cons !
[^] # Re: Petit laïus concernant BabylonJS
Posté par PR . En réponse au journal CPU Ex0184 Microsoft Edge. Évalué à 0.
Au fait, comment se fait-il qu'Office à mon taf' réclame plus de manipulations que jamais pour une sauvegarde locale et propose par défaut l'enregistrement dans le cloud ?
(question rhétorique)
Mort aux cons !
# Perso…
Posté par PR . En réponse au message [résolu] visualiser charge CPU et mémoire | mesurer l'efficience. Évalué à 6. Dernière modification le 14 février 2022 à 18:56.
… j’utiliserai l’outil standard.
Un simple
ps
devrait déjà faire le taf.Attention le
%cpu
n’est pas un “instantané” (au besoin il faudra faire un peu d’arithmétique autour).PS : tu peux sélectionner tous les process de la machine (
-e
), les trier, et tout et tout.Mort aux cons !
[^] # Re: "le monde Linux s’éloigne lentement mais sûrement de la philosophie UNIX"
Posté par PR . En réponse à la dépêche Tout arrive, même Slackware 15.0. Évalué à 1.
C’est dans le nom :
Mort aux cons !
[^] # Re: Slackware n’intègre pas de résolution de dépendances ?
Posté par PR . En réponse à la dépêche Tout arrive, même Slackware 15.0. Évalué à 1.
Tu pourrais faire un truc pour moi ? Un truc que j’ai oublié de faire quand je l’ai viré de mon système parce qu’il me tirait encore et toujours plus de dépendances.
Je te laisse deviner l’intrus… qui est de facto un programme de chez systemd :
La même mais avec les programmes systemd, ça donne quoi ?
Mort aux cons !
[^] # Re: Titre trompeur
Posté par PR . En réponse au lien Le langage COBOL a-t-il encore du succès ? La réponse pourrait vous surprendre. Évalué à 1.
Arf, oui «synchro» c’est du vocable pacbase, en cobol pur on n’utilise pas toujours le même nom mais j’ai oublié les autres termes (fusion?). Sous Unix, ce serait des algorithmes construit à coup de sort/uniq/join. En SQL, ce sont tout simplement des jointures ou des group by (mais pas juste du “Query”, on fait des traitement dessus…).
Ça permet de ramener les traitements à une complexité linéaire (même si en pratique on ne travaille plus comme ça).
Par contre une rupture est une rupture.
Pour les JCL, après recherche, permet moi d’émettre de gros doutes : à priori c’est spécifique mainframe. À première vue, aucun lien avec Cobol, mais on ne comprend pas bien la déclaration des I/O Cobol si on n’a pas fait un peu de JCL.
Pour la qualité de code, tes critères sont purement formels et bas niveau. C’est sûr que sur des modifications mineures, où vous ne faites plus vraiment de nouvelle conception, l’agile peut suffir…
Mort aux cons !
[^] # Re: Titre trompeur
Posté par PR . En réponse au lien Le langage COBOL a-t-il encore du succès ? La réponse pourrait vous surprendre. Évalué à 1.
Ben déjà pas JCL et rupture/synchro, ça te parle ? Quelle volumétrie (fichiers traités, bases SQL) ?
Avec quelle maintenance ?
Mort aux cons !
[^] # Re: Titre trompeur
Posté par PR . En réponse au lien Le langage COBOL a-t-il encore du succès ? La réponse pourrait vous surprendre. Évalué à -1.
Rien que parler de micro-management me donne des boutons, mais au vu de la mentalité de l’informaticien moyen…
Mort aux cons !
[^] # Re: Titre trompeur
Posté par PR . En réponse au lien Le langage COBOL a-t-il encore du succès ? La réponse pourrait vous surprendre. Évalué à 0. Dernière modification le 09 février 2022 à 22:38.
On dév encore en Cobol. Il se raconte même que certains font encore du Pacbase, mais ça j’y crois pas, je pense que c’est un mythe :-`
Et il reste que peu de personne a les compétences toute techno confondue. Au moins dans le mainframe c’est cadré (pas de crainte de voir des nombres flottants, I/O complètement bordées, aucun risque d’injection SQL, performance acceptables même si codé avec les pieds — et c’est très souvent codé avec les pieds).
C’est un drame d’ailleurs, le refus de reconnaître cette base de code et ce travail qui continue ; Chez mon client actuel, on tient absolument à passer en méthodo. agile &wtf. Pas du tout adapté à un cycle de dév. sur serveurs z/OS.
Mort aux cons !
[^] # Re: Windows ?
Posté par PR . En réponse au journal Virtualisation, hyper-v clone et Unix KISS . Évalué à -4.
Lol, ben vu la réaction à mon commentaire :
Mort aux cons !
# Windows ?
Posté par PR . En réponse au journal Virtualisation, hyper-v clone et Unix KISS . Évalué à -10.
Mort aux cons !
# Merci
Posté par PR . En réponse au lien Les premières expériences pilotes du portefeuille d'identité numérique sont prévues pour septembre . Évalué à 1. Dernière modification le 04 février 2022 à 14:19.
Je tenais à te dire merci pour l’article, au vu des menteurs qui essaient de dénigrer l’autrice et déforment son propos.
Il y aurait deux reproches à faire :
L’utilisation du terme ‘totalitaire’ serait à grandement nuancer, même si effectivement cela fait peser une menace certaine en cas de retour du racisme institutionnel ; ce n’est pas comme si la menace était fantasmée. Le numérique deviendrait un outil monstrueux, sans possibilité d’échappatoire.
Un aspect non abordé est le passage par un intermédiaire privé. Il ne faut pas oublier qu’un fonctionnaire a un statut, et donc un minimum de protection face à un ordre foireux voire illégal. Présenter les corps d’État comme inefficace, conservateur, etc. ça marche chez les faibles d’esprits, mais ça a ses limites. Alors qu’avec le privé et la prestation, on peut faire passer n’importe quoi, sans aucune garantie autre que la bonne parole de Thalès.
Mais ça reste un bon article.
Mort aux cons !
[^] # Re: Résumé rapide
Posté par PR . En réponse au lien Mozilla explique le blocage de Firefox. Évalué à 1.
… et si on peut faire chier la concurrence au passage…
HTTP3 est une techno poussée par Google, pour ne pas dire imposée.
Mort aux cons !