Pour répondre au reste, je ne suis pas sûr de comprendre exactement ce qui te gêne, mais personnellement je n'aurais pas de scrupules pour utiliser un « autre langage » comme awk, sed ou perl quand ça m'a l'air plus adapté, je ne fais jamais du traitement de données non trivial purement en shell (et j'avoue que pour ça j'aurais besoin de consulter mes pages mans et réfléchir un moment). En plus le résultat a toutes les chances d'être plus lent et plus complexe au final, vu que ces autres langages sont pensés et optimisés pour ce genre de problèmes.
Je n'ai de scrupules que quand il s'agit de mélanger les langages dans tous les sens. Par exemple, un script shell qui appelle un programme C (je veux dire, programme "maison" dont on à potentiellement perdu le source dans les brumes de l'histoire) puis passe la main à une procédure stockée qui charge un fichier, puis on repasse au shell qui envoie ce coups-ci du sql standard et qui finit par lancer un démon (fin).
Le genre de trucs que seul le dev d'origine sait, plus ou moins, qui fait quoi et comment. Juste plus ou moins, hein.
Après, mélanger les langages, ok, mais que ce ne soit pas une excuse pour faire du spaghetti, et que ce soit parce qu'il faut le faire, pas parce qu'on peut.
Au passage, j'ai du mal à considérer sed comme un langage, ou alors il peut faire des choses que je ne soupçonne même pas… ce qui ne serait pas spécialement surprenant, pour le coup.
Je pense que je devrais ré-apprendre un peu le perl, je ne serais pas étonné que ça me permette de réduire la complexité de certaines choses au taf.
Et l'option -I de xargs, par exemple, permet de faire la même chose que le {} du -exec de find.
Hum.. je me trompe si je dis que ce que tu dis n'est valable que pour l'option {} si l'on utilise \; et non \+ en fin de commande?
===== ===== ===== ===== ===== =====
Sinon, vu que tu as l'air de toucher ta bille (en plus d'expliquer bien, je veux dire), permets-moi de profiter de ce sujet pour te demander comment tu ferais pour appliquer un traitement à chaque champ d'un fichier tabulé?
Awm permets des merveilles (je l'ai découvert récemment) mais moi, j'ai (j'avais en fait, car j'ai "réussi", mais je pense que le code qui résulte de mes tentatives est dégueu, et je ne supporte pas ça) besoin de miracles :)
Je veux dire, awk nécessite d'incorporer un nouveau langage dans une chaîne d'appel, et moi, je t'avoue que je tente de garder le code que je génère maintenable. C'est à dire que j'essaies d'utiliser le moins de langages possibles (et quand je dois en combiner plusieurs, j'essaie de les isoler dans des fichiers de code source différents ), car pour moi multiplier les langages, c'est encore pire que de multiplier les chemins d'exécution (parce que c'est toujours un humain, qui se farcit les évolutions).
Basiquement, je réceptionne un fichier tabulé (csv, pour être exact, pas toujours tabulé mais ça se gère) pouvant contenir des string.
Comment ferais-tu pour transformer les string en question en 'string', en imaginant que i puisse être un espace (mais pas une tabulation).
Au début, j'ai pensé à printf, qui est censé déprécier echo, et il s'agit d'une fonction pour laquelle j'ai… un certain amour, étant d'origine un développeur C recyclé en C++ (mais je n'ai jamais pu me résoudre à abandonner scanf/printf… rien, strictement rien en C++ n'ofre leur puissance et leur efficience (des regex dans un lecteur d'entrée C++, de façon aussi simple que scanf? J'attend…), ou alors c'est hors standard, donc hors de question puisqu'un standard fait la même.).
Sauf que le printf de sh considère les espaces comme des \0, des séparateurs de champs. Je pense que j'ai raté quelque chose, mais quoi?
Du coups j'utilise régulièrement awk comme un workaround à printf, mais on ne peut pas piper les commandes aussi aisément… par exemple si l'on veut virer les espaces non significatifs.
J'ai un peu lu au sujet de IFS, mais il semble que cette variable ne s'applique qu'a la fonction read, les autres outils utilisant indiféremment -f, -F, ou rien du tout (le plus souvent?).
Dans l'idéal, j'essaie de restreindre mes scripts à l'usage du standard (que ce soit POSIX ou ISO, malgré que je ne soit pas un expert, pour moi une non-conformité non-voulue ou inutile au standards du moment est un bug), même si je dois perdre 10 minutes de plus pour ça (je gagnerai 2H dans 3 ans, après tout). Je pense que seule la conformité aux standards permets de rendre un code portable, et rendre un code portable est une façon de le rendre maintenable (si c'est portable, c'est supporté par plus de langages, donc compris par plus de développeurs/admins, donc plus maintenable).
Saurais-tu comment résoudre élégamment le cas la transformation de fichiers tabulés, aux champs contenant potentiellement des espaces, en, par exemple, requêtes d'insertion sql? (peut importe le type du champ de destination, admettons que tout soit casté automatiquement)
Si utiliser perl est la seule option… peut-être que je me motiverais à l'apprendre sérieusement.
D'un autre côté, seul l'utilisateur uid=0 peut distribuer les groupes, donc si un user fait partie du groupe disk, c'est parce que uid0 l'a décidé ainsi non?
Par contre, comme je l'ai dit plus haut, je ne connais pas le bit setuid, et il semble que ce soit une bonne source d'explication, il me faut donc aller lire quelques manuels pour comprendre de quoi il retourne exactement, ainsi je pourrais peut-être comprendre cette restriction qui me semble si arbitraire.
Il faut avoir la capability CAP_SYS_ADMIN
C'est intéressant. Comment root pourrait-il donne cette capacité à un autre utilisateur, ou groupe? Est-ce possible sous linux?
Cette répones est ce qui semble s'approcher le plus d'une solution qui ne fasse pas figure de workaround au problème du montage de périphs. Ce qui n'enlève rien à la pertinence des autres réponses, bien sûr, mais si je le pouvais, je te plussoierais 2 fois.
On rappelle que l'utilisateur ayant l'ID 0 est le root, tout simplement.
Désolé, mon intention en parlant d'uid0 était d'être plus clair, plus précis quand à ma question.
Dans l'absolu, on pourrait aussi changer le nom de login du root même si c'est une mauvaise idée
Je crois que c'est, au contraire, une bonne idée. Après tout, le nom de l'utilisateur est la moitié des informations nécessaires pour accéder un à système.
Bien que je ne changerai pas, de moi-même, le nom de l'uid0 sur une machine qui ne contiens que des informations de faible importance, je pense que je serais fortement tenté de le faire si je sais que la machine en question contiens des informations de haute sécurité.
Après… j'avoue, je n'y connais rien en sécurité, je ne suis pas admin.
Par le biais des bits setuid dans un certaine mesure et surtout des différents droits d'accès, notamment sur les fichiers spéciaux, on peut gérer les privilèges accordés aux différents utilisateurs de façon simple et unifiée, sans que cela fasse l'objet de niveaux prédéterminés comme on en trouvait sous Windows à l'époque (avec les powerusers, admin, etc.).
Justement, c'est cela qui m'intrigue. Linux est considéré comme un fils spirituel d'UNIX (mais moins que les BSD je crois?) mais on constate une vérification hard-codée dans mount?
C'est justement ce constat, qui m'a fait poser la question. Au final, ces derniers temps, je suis en train de remettre en question dans mon opinion personnelle (j'évite de trop l'afficher, je sais très bien que je ne connais quasiment rien de linux ou même d'UNIX) le fait que LINUX soit si proche d'UNIX que ça, si malléable et adaptable. Je doute.
Et le doute m'entraîne à poser des questions, pour comprendre pourquoi les choses que je crois être des erreurs en sont vraiment.
Ça signifie aussi que « root » n'est pas un utilisateur ordinaire : même l'administrateur d'un site ou celui de sa propre machine ne travaille jamais en root.
Tu serais donc encore plus horrifié que moi en voyans la façon de… hum… travailler…. de la boîte pour laquelle je bosse.
Déjà, on demande à des dev d'être admin de serveurs critiques, en plus, on nous demande de déployer des cibles de test sur les serveurs de prod, et, je te le promets à ma grande honte, il n'y à qu'un seul compte sur ces machines: root. J'y suis depuis presque un an, j'ai toujours râlé et gueulé contre cet état de fait (je ne te parle même pas de l'architecture… ou du manque de… des… logiciels… pissés! Et j'abhorre le terme pisser du code, alors si je l'utilise… erk… ceci dit, j'essaie de réduire la cata… utiliser un CVS et un bugtracker, monter un serveur avec des VM pour le test, et je n'ose imaginer faire un buildbot avec tests unitaires, j'ai déjà assez de résistance au changement comme ça!)
Le bit setuid
Je crois que c'est cette partie là que je ne comprend pas, en fait. Je pense qu'il me faut étudier les effets exacts de ce flag, il n'y à qu'ainsi que je pourrais comprendre pourquoi on teste si le lanceur à l'uid 0 dans mount pour certaines conditions.
Merci de ta réponse en tout cas, c'est très instructif (en tout cas, ça m'amène à me poser de nouvelles questions, ce qui reviens au même selon moi)
En fait, je t'avoue que si je pose la question, c'est parce que j'ai lu il y à quelques temps un document qui semble supposer qu'il soit possible sous certains des *BSD de monter sans cette restriction, justement.
Et que je commence à me poser sérieusement la question, au sujet de certaines restrictions du kernel linux. Il n'est par rare de voir des documents relatant des sorties de Linux, rageant contre certains DEs… et problème d'autorisations, qui, il me semblent prennent leurs racine dans le kernel que le sieur Linus est censé superviser justement. Mais troll à part: je suis un néophyte dans ce domaine, et j'ai voulu demander "l'avis du public" qui est régulièrement très très instructif sur linuxfr.
Ma question initiale était aussi probablement mal formulée, le fait que je ne connaisse que kLinux/Debian et Windows(NT<=XP && DOS<W98SE) , et encore (je n'ai jamais été foutu de compiler un kernel qui soit directement fonctionnel, je n'ai donc jamais réussi à installer gentoo. Mais j'ai essayé, à 2… peut-être 3… reprises, ça… hum… prouve mon niveau j'imagine :) ), n'y est sûrement pas étranger.
Je voulais dire, pourquoi ne peut-on pas monter, en tant qu'utilisateur normal, n'importe que device, malgré que l'on soit membre du groupe disk sous Debian, compte tenu du fait que /dev/sd?* appartiennent au groupe disk?
Autrement dit, dès lors qu'un volume contiens des données, potentiellement exécutables, appartenant a uid=0, quiconque peut le monter (avec ou sans uid=0) peut exécuter les binaires en questions avec les droits uid=0 de la machine qui à monté le matos?
Si c'est le cas, ça crains en effet… Je serai tenté de demander pourquoi dans ce cas ne pas changer les uid des fichiers des volumes externes pour qu'ils ne soient pas uid=0, mais la "réponse" qui me viens à l'esprit est triviale: 1) comment faire la différence entre un périphérique "interne" ou "externe"? (Mais ne serait-il pas possible d'imaginer que ce qui n'est pas dans /etc/fstab est externe, voire d'ajouter une option pour préciser qu'il s'agit d'un périphérique externe? Le souci dans ce cas est qu'il est simple de démonter le disque, de le monter ailleurs et de le manipuler ainsi. Mais du coup, est-ce le rôle de l'OS que de se protéger des manipulations physiques? N''est-ce pas le rôle du BIOS/UEFI plutôt?) 2) comment faire pour avoir un système dont les composants sont situés (pour une raison qui m'échappe) sur plusieurs disques?
J'ai bon? Ou, comme c'est probable, il reste des choses qui m'échappent?
La commande /bin/mount (debian apparemment) peut être utilisée par 'other'.
Elle peut être utilisée par tout le monde, mais pas avec n'importe quelles options. Par exemple, pour faire mount /dev/sdc4 /mnt/foo il est nécessaire d'avoir l'uid 0.
On peut autoriser un utilisateur de monter un device (epsilon ses droits) par le biais du fstab (options user et users man fstab section 'non super-user mounts')…
Effectivement, j'avais oublié le fstab, mais je ne suis pas sûr que cela soit très utilisable dans le cas de périphériques amovibles, ou d'iso.
Je ne dois pas comprendre la question ou le problème…
Si un utilisateur veut utiliser une iso, il lui faut être root, excepté bien sûr, s'il utilise un workaround tel que fuse, sudo ou su.
Il n'y à pas vraiment de problème, c'est juste que je me demande pourquoi c'est ainsi, et pas autrement. Comme j'aime comprendre pourquoi les choses font faites ainsi et que je n'ai pas réussi à trouver d'explications réelle sur le sujet, je me suis permis de demander, et je me suis dit que peut-être quelqu'un saurait sur linuxfr ;)
C'est vraiment une question pour comprendre l'architecture du système et les raisons d'un choix qui, à première vue et de mon faible niveau, me paraît étrange, pas une problématique technique (sinon je pourrai juste installer sudo, le configurer n'est pas vraiment complexe).
Je ne connais pas setuid, mais l'article que tu pointes indique que setuid permets de prendre l'uid de l'utilisateur propriétaire du fichier.
Dans ce cas, pourquoi ne pas utiliser un fake user nommé, par exemple, disk (dans la même logique que le groupe affecté aux périphériques de disques s'appelle disk), du coup on ne pourrait plus voler les droits de root via mount?
Parce que mettre à jour une DB à chaque fois que je crée un fichier me paraît… excessif. Après, j'imagine que locate doit être plus rapide que find, mais est-ce capable, comme find, d'exécuter une commande sur chaque fichier trouvé ou sur le lot des fichiers trouvés? J'utilise souvent cette capacité de find, après tout (l'argument -exec) et je n'ai jamais vraiment compris le mode de fonctionnement de xargs (pourtant fournit avec le paquet find sous debian, donc j'imagine que ce doit être assez proche. Je devrais peut-être faire l'effort de lire le man au complet et de jouer avec quelques exemples?)…
[…] alors il n'y a aucun intérêt à utiliser autre chose que le meilleur système connu (Tails à l'air très bien)
C'est moi ou, en terme de sécurité, le système le plus réputé à l'heure actuelle c'est OpenBSD?
Pour tails, c'est plutôt le fait que le système soit prêt à servir (environnement de bureau monolithique, browser, tor, et cætera ) dans une situation de protection de la vie privée. Après, je ne parle que de réputations, n'ayant jamais testé l'un comme l'autre, et n'ayant de toute façon, comme probablement beaucoup de gens, les compétences pour analyser intelligemment la sécurité.
Perso, cet outil (du sujet) me fait sourire. Des logiciels de sécurité, il en existe déjà une pléthore, y compris (voire surtout) sous Windows: anti-virus, firewall, outils qui interdisent (à la manière d'un firewall) l'accès d'applications à des sections du système (genre, appel à telle ou telle API, accès au registre, accès au disque dur, etc)…
Sans parler, bien sûr, des mises à jour automatiques: si on prend la Chine, je doute que la majorité des copies soient légales, donc quid des accès aux mises à jour? Quid des problèmes de sécurité introduits par les cracks?
Non, vraiment, pour moi, les outils et les moyens existent déjà, mais tant que l'utilisateur ne se donnera pas la peine de faire un minimum l'effort de s'intéresser à son outil (vous avez déjà entendu parler de dealers qui officient devant un commissariat de police, vous? Pas moi… ils font attention à ce qu'ils font quand c'est illégal, donc. Avec des précautions qui s'imposent, probablement, notamment au niveau des outils type téléphones.) il n'y aura pas de sécurité possible.
En gros, ce que ton prédécesseur dit, c'est que sous XP pour avoir (ex-)MSN, tu installes pas messenger, mais aMSN. Pour la bureautique, tu ne prends pas openoffice, mais gnumeric/jesaisplusquoi, et ainsi de suite.
Ce n'est pas parce que les applis mainstream sont des bouffe-mémoire que c'est le cas de toutes les applications, et dans de nombreux cas, les alternatives fournissent bien assez de fonctionnalités.
Ma question sur systemd, hors troll, reviens en fait à poser la question de l'intérêt de cette techno compte tenu du fait que pour moi, les services d'un serveur sont, idéalement, lancés sur des VMs, du coup le fait qu'il contrôle l'ensemble des services et soit capables de les démarrer parallèlement, et donc de booter la machine plus vite, me semble moins intéressant sur un serveur que sur une machine de bureau (qui, elle, à tous les services en local).
Àprès, la réputation… ou plutôt le reproche essentiel qui lui est fait, c'est d'être tentaculaire, de faire un peu tout.
Par exemple pour cron, quel est l'intérêt que ce soit réimplémenté alors que cron existe, et gère bien ce genre de problématiques?
C'est ce qui rend frileux un certain nombre de personnes: il fait effectivement plus de choses que sysVinit, et c'est bien le souci, il en fait trop, là ou un certain nombre d'utilisateurs de Linux ont plus d'affinités avec la philosophie POSIX (1).
Et franchement, c'est dommage, j'aimais bien, moi, l'idée de ne pas être obligé de lire des scripts cryptiques pour configurer qu'est-ce qui démarre dans quelles conditions. D'ailleurs, faut que je pense à regarder de plus près uselessd.
1: dont chacun pense ce qu'il veut, mais moi j'aime bien, parce qu'il est clairement plus simple de tester un soft, où une classe dans le cas d'un dev, dont les limites sont clairement définies. Ou de circonscrire les dégâts en cas de problème.
Les antivirus à IHM blindés sont effectivement de sacrés gouffres mais il y à… ou avais, des alternatives, me semble que clamAV ou un truc du genre était plus light que la moyenne, après niveau efficacité je ne sais pas. Personnellement, je me basais plutôt sur un firewall qui était également capable de surveiller les accès aux APIs et ressources, comme s'il s'agissait de ports, que je combinais, de mémoire, avec clamAV, dont l'IHM était, de mémoire, moins lourde.
Après, pour la bureautique… pas d'opinion, je n'ai quasiment jamais utilisé ce type de logiciels, mais de mon utilisation perso, XP lui même consommait, au boot, dans les 200M.
Je ne sais pas si gettext permets de gérer ça, par contre il ne me semble pas déconnant d'imaginer d'utiliser gettext pour savoir quelle locale est utilisée, et d'aller piocher dans le bon dossier les fichiers de DATA. C'est peut-être un peu plus manuel, mais je t'avoue, je n'ai jamais utilisé gettext.
Sinon, me semble que l'on peut récupérer la locale avec les fonctions standard en C++ moderne. Je ne m'en suis jamais servi non plus, ceci dit.
J'ai eu beau trouver les outils les plus légers existants
Et lesquels? J'ai lu un certain nombre de commentaires, et je n'ai vu que des mentions d'apache… je doute, très franchement, qu'il soit léger…
Aussi, je me demandais, tu utilises des VMs pour séparer les tâches, ou tu mets tous les services (que tu sembles avoir en quantité) en vrac sur le même OS? La seconde approche me paraît plus coûteuse en cas de problèmes, mais la première à un impact matériel… Si tu prends la première, quel hyperviseur utilises-tu?
Ah, tiens, et on est dredi, donc…
Je fais plus que de l'auto-hébergement, car le serveur héberge des parties de Counter Strike Source, Asseto Corsa, Left 4 Dead 2 etc. à certains moments de la journée (merci systemd et cron).
Pardonnez moi, mais quel est le rapport entre systemd et les tâches planifiées? Quel est, de manière générale, l'intérêt de systemd sur un serveur?
Sous XP A partir du SP2 ça ne marche plus (swap à mort) : il faut au minimum 1 Gb de RAM.
Source? Je faisais tourner un XP SP3 avec 512Mo, et jouer à UT 2000 à l'époque ne faisais pas ramer…
Après, évidemment, si tu gardes activés tous les services débiles et utilises des thèmes playskool, ben oui, ça bouffe plus. Mais toujours est-il qu'il est possible de faire tourner un XP SP3 avec moins de 512M.
Même avec Debian/LXDE je conseillerais un achat de 512 Mb de RAM supplémentaire
J'ai fait… non, je fait, tourner une Debian/XFCE sur une machine qui à moins de 200M. J'avoue, c'est pas super rapide, mais ça suffit pour faire tourner wesnoth (bien que le processeur en chie), iceweasel, et/ou mpd.
Encore que… je l'avais installé quand il n'y avait que 64M, oui, machine de récup, ça me fait toujours mal de jeter les vieux coucou qui marchent encore. Ensuite seulement, j'ai réussi à choper une barrette de plus, et j'arrive du coup pas loin des 200M. Debian fonctionne bien, sur ce système… antique, on va dire (design for windows millenium, tu vois le genre? Je me souviens plus du proc, mais ça doit tourner dans les 700-800MHz, de mémoire).
Ceci dit, je n'avais mis XFCE que pour la prêter à un frère dont le PC avait lâché, de base, je n'y avait mis que i3.
Je souhaiterai ajouter à ça, que pour persuader les gens (persuader!=convaincre, persuader c'est utiliser les sentiments, convaincre c'est utiliser des faits) il ne faut pas les attaquer, et dans mon cas j'ai ressenti des attaques contre MS, même s'ils n'étaient pas nommés.
Il vaut à mon avis mieux trouver un argument pour leur faire croire/accepter que ça peut les arranger ce changement, par exemple leur suggérer que ça peut être un argument marketing.
On ne fait pas aller les gens dans notre sens en leur cognant dessus, parce que ça risque de faire l'effet contraire, surtout s'ils ont plus de poids que toi dans la balance.
Désolé, mais je refuse que l'on casse mon workflow pour Mme Michu, qui de toute façon n'utilise pas le clavier pour copier/couper/coller, mais la souris.
Avec Mme Michu, tu en baveras à lui faire accepter le moindre raccourcis clavier, je ne parle même pas de la logique qu'il y à derrière qui fait que l'on sait que CTRL+F appelle le menu fichier, CTRL+P l'impression, etc.
Alors pourquoi péter nos raccourcis claviers, pourquoi est-ce à nous, professionnels ou amateurs éclairés, de nous adapter aux utilisateurs qui ne font pas d'efforts? Parce que soyons honnêtes: je m'intéresse de très loin plus à la mécanique de ma voiture, ne serait-ce que savoir ce qu'est un filtre à huile, que le mécano du coin s'intéresse à son ordi, et n'est pas capable de savoir ce qu'est un navigateur internet.
L'informatique impressionne, ou fait peur, ou peu importe, et les gens se cachent derrière ça pour refuser d'apprendre à s'en servir, et histoire de nous rappelle que c'est nous qui ne faisons pas d'efforts…
Pas bête, pas bête du tout, je ne me sers de cette touche que pour switcher les dico quand je suis sur le web, mais je devrais pouvoir simplement configurer de véritables raccourcis clavier en lieu et place. J'achète!
Bien vu, pour l'accessibilité des champs. Je n'y pense pas, parce que j'ai une forte préférence pour le C++, dans lequel il n'y à pas besoin de se répéter à chaque méthode ;) contrairement au java.
J'ai parfois l'impression que l'usage de ce type d'outils dépend assez puissamment à la fois des projets sur lesquels on bosse (ampleur, taille du code) et du ou des langages utilisés (ici, le java rends très utile le curseur multiple).
[^] # Re: Pour des raisons évidentes
Posté par freem . En réponse au message Pourquoi mount nécessite-t-elle d'être lancée avec l'uid 0?. Évalué à 2.
J'ai surtout envie d'arguer que j'ai bien fait de poser la question, j'ai appris pas mal de choses de vos réponses :)
[^] # Re: Au sujet des séparateurs shell
Posté par freem . En réponse au sondage Les fonctions de bureau social, sémantique, indexation automatique des fichiers. Évalué à 2.
Je n'ai de scrupules que quand il s'agit de mélanger les langages dans tous les sens. Par exemple, un script shell qui appelle un programme C (je veux dire, programme "maison" dont on à potentiellement perdu le source dans les brumes de l'histoire) puis passe la main à une procédure stockée qui charge un fichier, puis on repasse au shell qui envoie ce coups-ci du sql standard et qui finit par lancer un démon (fin).
Le genre de trucs que seul le dev d'origine sait, plus ou moins, qui fait quoi et comment. Juste plus ou moins, hein.
Après, mélanger les langages, ok, mais que ce ne soit pas une excuse pour faire du spaghetti, et que ce soit parce qu'il faut le faire, pas parce qu'on peut.
Au passage, j'ai du mal à considérer sed comme un langage, ou alors il peut faire des choses que je ne soupçonne même pas… ce qui ne serait pas spécialement surprenant, pour le coup.
Je pense que je devrais ré-apprendre un peu le perl, je ne serais pas étonné que ça me permette de réduire la complexité de certaines choses au taf.
[^] # Au sujet des séparateurs shell
Posté par freem . En réponse au sondage Les fonctions de bureau social, sémantique, indexation automatique des fichiers. Évalué à 2.
Merci pour cette explication!
Hum.. je me trompe si je dis que ce que tu dis n'est valable que pour l'option {} si l'on utilise \; et non \+ en fin de commande?
===== ===== ===== ===== ===== =====
Sinon, vu que tu as l'air de toucher ta bille (en plus d'expliquer bien, je veux dire), permets-moi de profiter de ce sujet pour te demander comment tu ferais pour appliquer un traitement à chaque champ d'un fichier tabulé?
Awm permets des merveilles (je l'ai découvert récemment) mais moi, j'ai (j'avais en fait, car j'ai "réussi", mais je pense que le code qui résulte de mes tentatives est dégueu, et je ne supporte pas ça) besoin de miracles :)
Je veux dire, awk nécessite d'incorporer un nouveau langage dans une chaîne d'appel, et moi, je t'avoue que je tente de garder le code que je génère maintenable. C'est à dire que j'essaies d'utiliser le moins de langages possibles (et quand je dois en combiner plusieurs, j'essaie de les isoler dans des fichiers de code source différents ), car pour moi multiplier les langages, c'est encore pire que de multiplier les chemins d'exécution (parce que c'est toujours un humain, qui se farcit les évolutions).
Basiquement, je réceptionne un fichier tabulé (csv, pour être exact, pas toujours tabulé mais ça se gère) pouvant contenir des string.
Comment ferais-tu pour transformer les string en question en 'string', en imaginant que i puisse être un espace (mais pas une tabulation).
Au début, j'ai pensé à printf, qui est censé déprécier echo, et il s'agit d'une fonction pour laquelle j'ai… un certain amour, étant d'origine un développeur C recyclé en C++ (mais je n'ai jamais pu me résoudre à abandonner scanf/printf… rien, strictement rien en C++ n'ofre leur puissance et leur efficience (des regex dans un lecteur d'entrée C++, de façon aussi simple que scanf? J'attend…), ou alors c'est hors standard, donc hors de question puisqu'un standard fait la même.).
Sauf que le printf de sh considère les espaces comme des \0, des séparateurs de champs. Je pense que j'ai raté quelque chose, mais quoi?
Du coups j'utilise régulièrement awk comme un workaround à printf, mais on ne peut pas piper les commandes aussi aisément… par exemple si l'on veut virer les espaces non significatifs.
J'ai un peu lu au sujet de IFS, mais il semble que cette variable ne s'applique qu'a la fonction read, les autres outils utilisant indiféremment -f, -F, ou rien du tout (le plus souvent?).
Dans l'idéal, j'essaie de restreindre mes scripts à l'usage du standard (que ce soit POSIX ou ISO, malgré que je ne soit pas un expert, pour moi une non-conformité non-voulue ou inutile au standards du moment est un bug), même si je dois perdre 10 minutes de plus pour ça (je gagnerai 2H dans 3 ans, après tout). Je pense que seule la conformité aux standards permets de rendre un code portable, et rendre un code portable est une façon de le rendre maintenable (si c'est portable, c'est supporté par plus de langages, donc compris par plus de développeurs/admins, donc plus maintenable).
Saurais-tu comment résoudre élégamment le cas la transformation de fichiers tabulés, aux champs contenant potentiellement des espaces, en, par exemple, requêtes d'insertion sql? (peut importe le type du champ de destination, admettons que tout soit casté automatiquement)
Si utiliser perl est la seule option… peut-être que je me motiverais à l'apprendre sérieusement.
[^] # Re: Pour des raisons évidentes
Posté par freem . En réponse au message Pourquoi mount nécessite-t-elle d'être lancée avec l'uid 0?. Évalué à 2.
D'un autre côté, seul l'utilisateur uid=0 peut distribuer les groupes, donc si un user fait partie du groupe disk, c'est parce que uid0 l'a décidé ainsi non?
Par contre, comme je l'ai dit plus haut, je ne connais pas le bit setuid, et il semble que ce soit une bonne source d'explication, il me faut donc aller lire quelques manuels pour comprendre de quoi il retourne exactement, ainsi je pourrais peut-être comprendre cette restriction qui me semble si arbitraire.
C'est intéressant. Comment root pourrait-il donne cette capacité à un autre utilisateur, ou groupe? Est-ce possible sous linux?
Cette répones est ce qui semble s'approcher le plus d'une solution qui ne fasse pas figure de workaround au problème du montage de périphs. Ce qui n'enlève rien à la pertinence des autres réponses, bien sûr, mais si je le pouvais, je te plussoierais 2 fois.
[^] # Re: sécurité
Posté par freem . En réponse au message Pourquoi mount nécessite-t-elle d'être lancée avec l'uid 0?. Évalué à 2.
Désolé, mais quand on me répond "parce que", je t'avoue que j'ai une envie folle d'envoyer paître le pâtre.
[^] # Re: Pas tout seul
Posté par freem . En réponse au message Pourquoi mount nécessite-t-elle d'être lancée avec l'uid 0?. Évalué à 2.
Désolé, mon intention en parlant d'uid0 était d'être plus clair, plus précis quand à ma question.
Je crois que c'est, au contraire, une bonne idée. Après tout, le nom de l'utilisateur est la moitié des informations nécessaires pour accéder un à système.
Bien que je ne changerai pas, de moi-même, le nom de l'uid0 sur une machine qui ne contiens que des informations de faible importance, je pense que je serais fortement tenté de le faire si je sais que la machine en question contiens des informations de haute sécurité.
Après… j'avoue, je n'y connais rien en sécurité, je ne suis pas admin.
Justement, c'est cela qui m'intrigue. Linux est considéré comme un fils spirituel d'UNIX (mais moins que les BSD je crois?) mais on constate une vérification hard-codée dans mount?
C'est justement ce constat, qui m'a fait poser la question. Au final, ces derniers temps, je suis en train de remettre en question dans mon opinion personnelle (j'évite de trop l'afficher, je sais très bien que je ne connais quasiment rien de linux ou même d'UNIX) le fait que LINUX soit si proche d'UNIX que ça, si malléable et adaptable. Je doute.
Et le doute m'entraîne à poser des questions, pour comprendre pourquoi les choses que je crois être des erreurs en sont vraiment.
Tu serais donc encore plus horrifié que moi en voyans la façon de… hum… travailler…. de la boîte pour laquelle je bosse.
Déjà, on demande à des dev d'être admin de serveurs critiques, en plus, on nous demande de déployer des cibles de test sur les serveurs de prod, et, je te le promets à ma grande honte, il n'y à qu'un seul compte sur ces machines: root. J'y suis depuis presque un an, j'ai toujours râlé et gueulé contre cet état de fait (je ne te parle même pas de l'architecture… ou du manque de… des… logiciels… pissés! Et j'abhorre le terme pisser du code, alors si je l'utilise… erk… ceci dit, j'essaie de réduire la cata… utiliser un CVS et un bugtracker, monter un serveur avec des VM pour le test, et je n'ose imaginer faire un buildbot avec tests unitaires, j'ai déjà assez de résistance au changement comme ça!)
Je crois que c'est cette partie là que je ne comprend pas, en fait. Je pense qu'il me faut étudier les effets exacts de ce flag, il n'y à qu'ainsi que je pourrais comprendre pourquoi on teste si le lanceur à l'uid 0 dans mount pour certaines conditions.
Merci de ta réponse en tout cas, c'est très instructif (en tout cas, ça m'amène à me poser de nouvelles questions, ce qui reviens au même selon moi)
[^] # Re: Je ne comprends pas trop...
Posté par freem . En réponse au message Pourquoi mount nécessite-t-elle d'être lancée avec l'uid 0?. Évalué à 2.
En fait, je t'avoue que si je pose la question, c'est parce que j'ai lu il y à quelques temps un document qui semble supposer qu'il soit possible sous certains des *BSD de monter sans cette restriction, justement.
Et que je commence à me poser sérieusement la question, au sujet de certaines restrictions du kernel linux. Il n'est par rare de voir des documents relatant des sorties de Linux, rageant contre certains DEs… et problème d'autorisations, qui, il me semblent prennent leurs racine dans le kernel que le sieur Linus est censé superviser justement. Mais troll à part: je suis un néophyte dans ce domaine, et j'ai voulu demander "l'avis du public" qui est régulièrement très très instructif sur linuxfr.
Ma question initiale était aussi probablement mal formulée, le fait que je ne connaisse que kLinux/Debian et Windows(NT<=XP && DOS<W98SE) , et encore (je n'ai jamais été foutu de compiler un kernel qui soit directement fonctionnel, je n'ai donc jamais réussi à installer gentoo. Mais j'ai essayé, à 2… peut-être 3… reprises, ça… hum… prouve mon niveau j'imagine :) ), n'y est sûrement pas étranger.
Je voulais dire, pourquoi ne peut-on pas monter, en tant qu'utilisateur normal, n'importe que device, malgré que l'on soit membre du groupe disk sous Debian, compte tenu du fait que /dev/sd?* appartiennent au groupe disk?
[^] # Re: Sécurité
Posté par freem . En réponse au message Pourquoi mount nécessite-t-elle d'être lancée avec l'uid 0?. Évalué à 2.
Autrement dit, dès lors qu'un volume contiens des données, potentiellement exécutables, appartenant a uid=0, quiconque peut le monter (avec ou sans uid=0) peut exécuter les binaires en questions avec les droits uid=0 de la machine qui à monté le matos?
Si c'est le cas, ça crains en effet… Je serai tenté de demander pourquoi dans ce cas ne pas changer les uid des fichiers des volumes externes pour qu'ils ne soient pas uid=0, mais la "réponse" qui me viens à l'esprit est triviale: 1) comment faire la différence entre un périphérique "interne" ou "externe"? (Mais ne serait-il pas possible d'imaginer que ce qui n'est pas dans /etc/fstab est externe, voire d'ajouter une option pour préciser qu'il s'agit d'un périphérique externe? Le souci dans ce cas est qu'il est simple de démonter le disque, de le monter ailleurs et de le manipuler ainsi. Mais du coup, est-ce le rôle de l'OS que de se protéger des manipulations physiques? N''est-ce pas le rôle du BIOS/UEFI plutôt?) 2) comment faire pour avoir un système dont les composants sont situés (pour une raison qui m'échappe) sur plusieurs disques?
J'ai bon? Ou, comme c'est probable, il reste des choses qui m'échappent?
[^] # Re: Je ne comprends pas trop...
Posté par freem . En réponse au message Pourquoi mount nécessite-t-elle d'être lancée avec l'uid 0?. Évalué à 2.
Elle peut être utilisée par tout le monde, mais pas avec n'importe quelles options. Par exemple, pour faire
mount /dev/sdc4 /mnt/foo
il est nécessaire d'avoir l'uid 0.Effectivement, j'avais oublié le fstab, mais je ne suis pas sûr que cela soit très utilisable dans le cas de périphériques amovibles, ou d'iso.
Si un utilisateur veut utiliser une iso, il lui faut être root, excepté bien sûr, s'il utilise un workaround tel que fuse,
sudo
ousu
.Il n'y à pas vraiment de problème, c'est juste que je me demande pourquoi c'est ainsi, et pas autrement. Comme j'aime comprendre pourquoi les choses font faites ainsi et que je n'ai pas réussi à trouver d'explications réelle sur le sujet, je me suis permis de demander, et je me suis dit que peut-être quelqu'un saurait sur linuxfr ;)
C'est vraiment une question pour comprendre l'architecture du système et les raisons d'un choix qui, à première vue et de mon faible niveau, me paraît étrange, pas une problématique technique (sinon je pourrai juste installer sudo, le configurer n'est pas vraiment complexe).
[^] # Re: Sécurité
Posté par freem . En réponse au message Pourquoi mount nécessite-t-elle d'être lancée avec l'uid 0?. Évalué à 2.
Je ne connais pas setuid, mais l'article que tu pointes indique que setuid permets de prendre l'uid de l'utilisateur propriétaire du fichier.
Dans ce cas, pourquoi ne pas utiliser un fake user nommé, par exemple, disk (dans la même logique que le groupe affecté aux périphériques de disques s'appelle disk), du coup on ne pourrait plus voler les droits de root via mount?
[^] # Re: Jamais…
Posté par freem . En réponse au sondage Les fonctions de bureau social, sémantique, indexation automatique des fichiers. Évalué à 2.
Moi c'est find.
Parce que mettre à jour une DB à chaque fois que je crée un fichier me paraît… excessif. Après, j'imagine que locate doit être plus rapide que find, mais est-ce capable, comme find, d'exécuter une commande sur chaque fichier trouvé ou sur le lot des fichiers trouvés? J'utilise souvent cette capacité de find, après tout (l'argument -exec) et je n'ai jamais vraiment compris le mode de fonctionnement de xargs (pourtant fournit avec le paquet find sous debian, donc j'imagine que ce doit être assez proche. Je devrais peut-être faire l'effort de lire le man au complet et de jouer avec quelques exemples?)…
[^] # Re: Si l'auto-hébergement ne te suffit plus (débit faible, disponibilité, etc ...)
Posté par freem . En réponse au journal Mon retour d'expérience sur l'auto-hébergement. Évalué à 2.
Ce n'est pas parce que quelqu'un fait les mauvais choix pour faire quelque chose avec un OS, que c'est de la faute de l'OS.
[^] # Re: Approche Amnesty International
Posté par freem . En réponse à la dépêche Detekt, un logiciel de détection de logiciels espions. Évalué à 2.
C'est moi ou, en terme de sécurité, le système le plus réputé à l'heure actuelle c'est OpenBSD?
Pour tails, c'est plutôt le fait que le système soit prêt à servir (environnement de bureau monolithique, browser, tor, et cætera ) dans une situation de protection de la vie privée. Après, je ne parle que de réputations, n'ayant jamais testé l'un comme l'autre, et n'ayant de toute façon, comme probablement beaucoup de gens, les compétences pour analyser intelligemment la sécurité.
Perso, cet outil (du sujet) me fait sourire. Des logiciels de sécurité, il en existe déjà une pléthore, y compris (voire surtout) sous Windows: anti-virus, firewall, outils qui interdisent (à la manière d'un firewall) l'accès d'applications à des sections du système (genre, appel à telle ou telle API, accès au registre, accès au disque dur, etc)…
Sans parler, bien sûr, des mises à jour automatiques: si on prend la Chine, je doute que la majorité des copies soient légales, donc quid des accès aux mises à jour? Quid des problèmes de sécurité introduits par les cracks?
Non, vraiment, pour moi, les outils et les moyens existent déjà, mais tant que l'utilisateur ne se donnera pas la peine de faire un minimum l'effort de s'intéresser à son outil (vous avez déjà entendu parler de dealers qui officient devant un commissariat de police, vous? Pas moi… ils font attention à ce qu'ils font quand c'est illégal, donc. Avec des précautions qui s'imposent, probablement, notamment au niveau des outils type téléphones.) il n'y aura pas de sécurité possible.
[^] # Re: Si l'auto-hébergement ne te suffit plus (débit faible, disponibilité, etc ...)
Posté par freem . En réponse au journal Mon retour d'expérience sur l'auto-hébergement. Évalué à 4.
En gros, ce que ton prédécesseur dit, c'est que sous XP pour avoir (ex-)MSN, tu installes pas messenger, mais aMSN. Pour la bureautique, tu ne prends pas openoffice, mais gnumeric/jesaisplusquoi, et ainsi de suite.
Ce n'est pas parce que les applis mainstream sont des bouffe-mémoire que c'est le cas de toutes les applications, et dans de nombreux cas, les alternatives fournissent bien assez de fonctionnalités.
[^] # Re: Outils les plus légers?
Posté par freem . En réponse au journal Mon retour d'expérience sur l'auto-hébergement. Évalué à 0.
Ma question sur systemd, hors troll, reviens en fait à poser la question de l'intérêt de cette techno compte tenu du fait que pour moi, les services d'un serveur sont, idéalement, lancés sur des VMs, du coup le fait qu'il contrôle l'ensemble des services et soit capables de les démarrer parallèlement, et donc de booter la machine plus vite, me semble moins intéressant sur un serveur que sur une machine de bureau (qui, elle, à tous les services en local).
Àprès, la réputation… ou plutôt le reproche essentiel qui lui est fait, c'est d'être tentaculaire, de faire un peu tout.
Par exemple pour cron, quel est l'intérêt que ce soit réimplémenté alors que cron existe, et gère bien ce genre de problématiques?
C'est ce qui rend frileux un certain nombre de personnes: il fait effectivement plus de choses que sysVinit, et c'est bien le souci, il en fait trop, là ou un certain nombre d'utilisateurs de Linux ont plus d'affinités avec la philosophie POSIX (1).
Et franchement, c'est dommage, j'aimais bien, moi, l'idée de ne pas être obligé de lire des scripts cryptiques pour configurer qu'est-ce qui démarre dans quelles conditions. D'ailleurs, faut que je pense à regarder de plus près uselessd.
1: dont chacun pense ce qu'il veut, mais moi j'aime bien, parce qu'il est clairement plus simple de tester un soft, où une classe dans le cas d'un dev, dont les limites sont clairement définies. Ou de circonscrire les dégâts en cas de problème.
[^] # Re: Si l'auto-hébergement ne te suffit plus (débit faible, disponibilité, etc ...)
Posté par freem . En réponse au journal Mon retour d'expérience sur l'auto-hébergement. Évalué à 1.
Les antivirus à IHM blindés sont effectivement de sacrés gouffres mais il y à… ou avais, des alternatives, me semble que clamAV ou un truc du genre était plus light que la moyenne, après niveau efficacité je ne sais pas. Personnellement, je me basais plutôt sur un firewall qui était également capable de surveiller les accès aux APIs et ressources, comme s'il s'agissait de ports, que je combinais, de mémoire, avec clamAV, dont l'IHM était, de mémoire, moins lourde.
Après, pour la bureautique… pas d'opinion, je n'ai quasiment jamais utilisé ce type de logiciels, mais de mon utilisation perso, XP lui même consommait, au boot, dans les 200M.
[^] # Re: Autre solution de patch
Posté par freem . En réponse à la dépêche Modeste contribution à Audacity sur l'affichage des temps. Évalué à 4.
Je ne sais pas si gettext permets de gérer ça, par contre il ne me semble pas déconnant d'imaginer d'utiliser gettext pour savoir quelle locale est utilisée, et d'aller piocher dans le bon dossier les fichiers de DATA. C'est peut-être un peu plus manuel, mais je t'avoue, je n'ai jamais utilisé gettext.
Sinon, me semble que l'on peut récupérer la locale avec les fonctions standard en C++ moderne. Je ne m'en suis jamais servi non plus, ceci dit.
# Outils les plus légers?
Posté par freem . En réponse au journal Mon retour d'expérience sur l'auto-hébergement. Évalué à 2.
Et lesquels? J'ai lu un certain nombre de commentaires, et je n'ai vu que des mentions d'apache… je doute, très franchement, qu'il soit léger…
Aussi, je me demandais, tu utilises des VMs pour séparer les tâches, ou tu mets tous les services (que tu sembles avoir en quantité) en vrac sur le même OS? La seconde approche me paraît plus coûteuse en cas de problèmes, mais la première à un impact matériel… Si tu prends la première, quel hyperviseur utilises-tu?
Ah, tiens, et on est dredi, donc…
Pardonnez moi, mais quel est le rapport entre systemd et les tâches planifiées? Quel est, de manière générale, l'intérêt de systemd sur un serveur?
[^] # Re: Si l'auto-hébergement ne te suffit plus (débit faible, disponibilité, etc ...)
Posté par freem . En réponse au journal Mon retour d'expérience sur l'auto-hébergement. Évalué à 4.
Source? Je faisais tourner un XP SP3 avec 512Mo, et jouer à UT 2000 à l'époque ne faisais pas ramer…
Après, évidemment, si tu gardes activés tous les services débiles et utilises des thèmes playskool, ben oui, ça bouffe plus. Mais toujours est-il qu'il est possible de faire tourner un XP SP3 avec moins de 512M.
J'ai fait… non, je fait, tourner une Debian/XFCE sur une machine qui à moins de 200M. J'avoue, c'est pas super rapide, mais ça suffit pour faire tourner wesnoth (bien que le processeur en chie), iceweasel, et/ou mpd.
Encore que… je l'avais installé quand il n'y avait que 64M, oui, machine de récup, ça me fait toujours mal de jeter les vieux coucou qui marchent encore. Ensuite seulement, j'ai réussi à choper une barrette de plus, et j'arrive du coup pas loin des 200M. Debian fonctionne bien, sur ce système… antique, on va dire (design for windows millenium, tu vois le genre? Je me souviens plus du proc, mais ça doit tourner dans les 700-800MHz, de mémoire).
Ceci dit, je n'avais mis XFCE que pour la prêter à un frère dont le PC avait lâché, de base, je n'y avait mis que i3.
[^] # Re: Félicitations
Posté par freem . En réponse à la dépêche GNU Emacs 24.4. Évalué à 3. Dernière modification le 20 novembre 2014 à 12:19.
Avec un ramdisk? Mais c'est vrai que dans ce cas il faut avoir les droits d'écriture dans la RAM… ce qui n'est pas évident :)
Pire, on pourrai n'avoir accès ni au réseau, ni au disque, ni à la ram… je crois qu'on appelle ça une télé après par contre.
[^] # Re: Hum
Posté par freem . En réponse au journal Un agencement de clavier normalisé : bientôt pour la France !. Évalué à 4.
Je souhaiterai ajouter à ça, que pour persuader les gens (persuader!=convaincre, persuader c'est utiliser les sentiments, convaincre c'est utiliser des faits) il ne faut pas les attaquer, et dans mon cas j'ai ressenti des attaques contre MS, même s'ils n'étaient pas nommés.
Il vaut à mon avis mieux trouver un argument pour leur faire croire/accepter que ça peut les arranger ce changement, par exemple leur suggérer que ça peut être un argument marketing.
On ne fait pas aller les gens dans notre sens en leur cognant dessus, parce que ça risque de faire l'effet contraire, surtout s'ils ont plus de poids que toi dans la balance.
[^] # Re: Clavier et normalisation.
Posté par freem . En réponse au journal Un agencement de clavier normalisé : bientôt pour la France !. Évalué à 3.
Désolé, mais je refuse que l'on casse mon workflow pour Mme Michu, qui de toute façon n'utilise pas le clavier pour copier/couper/coller, mais la souris.
Avec Mme Michu, tu en baveras à lui faire accepter le moindre raccourcis clavier, je ne parle même pas de la logique qu'il y à derrière qui fait que l'on sait que CTRL+F appelle le menu fichier, CTRL+P l'impression, etc.
Alors pourquoi péter nos raccourcis claviers, pourquoi est-ce à nous, professionnels ou amateurs éclairés, de nous adapter aux utilisateurs qui ne font pas d'efforts? Parce que soyons honnêtes: je m'intéresse de très loin plus à la mécanique de ma voiture, ne serait-ce que savoir ce qu'est un filtre à huile, que le mécano du coin s'intéresse à son ordi, et n'est pas capable de savoir ce qu'est un navigateur internet.
L'informatique impressionne, ou fait peur, ou peu importe, et les gens se cachent derrière ça pour refuser d'apprendre à s'en servir, et histoire de nous rappelle que c'est nous qui ne faisons pas d'efforts…
[^] # Re: Objectif réel du projet ?
Posté par freem . En réponse au journal Un agencement de clavier normalisé : bientôt pour la France !. Évalué à 2.
Pas bête, pas bête du tout, je ne me sers de cette touche que pour switcher les dico quand je suis sur le web, mais je devrais pouvoir simplement configurer de véritables raccourcis clavier en lieu et place. J'achète!
[^] # Re: Les trolls se perdent...
Posté par freem . En réponse à la dépêche GNU Emacs 24.4. Évalué à 3.
Faut suivre son temps, de nos jours c'est systemGnome, le sujet à troll :)
[^] # Re: Félicitations
Posté par freem . En réponse à la dépêche GNU Emacs 24.4. Évalué à 2.
Bien vu, pour l'accessibilité des champs. Je n'y pense pas, parce que j'ai une forte préférence pour le C++, dans lequel il n'y à pas besoin de se répéter à chaque méthode ;) contrairement au java.
J'ai parfois l'impression que l'usage de ce type d'outils dépend assez puissamment à la fois des projets sur lesquels on bosse (ampleur, taille du code) et du ou des langages utilisés (ici, le java rends très utile le curseur multiple).