5943 links
  • GuiGui's Show

  • Home
  • Login
  • RSS Feed
  • Tag cloud
  • Picture wall
  • Daily
Links per page: 20 50 100
◄Older
page 74 / 298
Newer►
  • [ Restreindre l'accès SSH à des utilisateurs d'un domaine de type Active Directory ] [Security] AllowUsers/AllowGroups directives not working with domain users/groups · Issue #816 · PowerShell/Win32-OpenSSH · GitHub

    Je souhaite restreindre l'accès SSH à une machine membre d'un domaine de type Active Directory (Samba 4 ADDC) à quelques utilisateurs (AllowUsers).

    Problème : les identifiants complets sont de la forme « identifiant@domaine-smb.example ». Or, dans un AllowUsers, « @ » sert à restreindre l'accès à un utilisateur depuis une machine.

    Solution : utiliser le joker « ? » pour capturer le « @ ». Exemple : AllowUsers guigui?domaine-smb.example.
    À ce compte-là, ça fonctionne également avec AllowUsers guigui* :- (non, ça n'ouvre pas l'accès à toutes les personnes qui ont un compte dans notre domaine.

    Wed Nov 17 23:00:12 2021 - permalink -
    - https://github.com/PowerShell/Win32-OpenSSH/issues/816
  • GNU/Linux : actualiser sa manière de chercher un processus

    Pour éviter un laborieux ps aux | grep firefox | grep -v grep, il y a ps aux | grep [f]irefox. Merci, Duke. :)
    Explication : on demande de chercher une ligne qui contient « f » puis la chaîne « irefox ». La ligne du processus « grep --color=auto [f]irefox » ne correspond pas, car c'est une chaîne qui contient « [ » + « f » + « ] » + « i » +. Il n'y a pas de chaîne qui commence par f et qui finit par « irefox » sur cette ligne, en gros.

    On peut aller plus loin. 99 % du temps, quand je filtre la sortie de ps, c'est pour confirmer la présence d'un processus.
    Si je veux acquérir une vision globale des processus, je préfère une vue dynamique à la htop / top.

    Dans ce cas, ps -fC firefox-esr fait le boulot, si l'on connaît le nom du processus et si c'est exploitable. Genre chercher un programme Java est souvent vain puisque le nom de l'exécutable sera « java », le nom visuel du programme arrive dans les arguments, qui ne sont pas considérés par ps -fC.

    On peut aller légèrement plus loin (autant de caractères mais plus simple, je trouve) : pgrep firefox, le copain de pkill. Merci Johndescs. :)

    pgrep -x et ps -C sont très utiles dans des scripts : concis (plus que "ps | grep | grep -v grep") et la recherche se fait uniquement sur le nom des programmes, pas sur leurs arguments.
    Ça évite qu'un script lancé par CRON ne fasse plus rien car ps aux | grep apt | grep -v grep trouve toujours un processus (alors qu'apt n'est pas en cours d'exécution) car il capture thermald --adaptative (« apt » dans « adaptative »). Oui, c'est du vécu.

    Wed Nov 17 22:32:42 2021 - permalink -
    - http://shaarli.guiguishow.info/?w5t54A
  • Temporisation entre deux saisies dans une interface interactive en ligne de commande

    Une petite astuce (sous-)shell qu'on oublie.

    Supposons qu'on veut automatiser une causerie avec une interface interactive en ligne de commande. Par exemple : bconsole (pilotage de Bacula).

    Facile : echo 'delete jobid=XXXX' | bconsole. On met ça dans une boucle for/while et hop.

    Mais si l'on veut lancer plusieurs sauvegardes ? La commande « run » de bconsole attend une confirmation de type "yes/no" pour chaque tâche lancée (ce n'est pas tout à fait vrai, on peut « run job=nomdujob yes », mais il faut s'en souvenir :- ). Il faut introduire une temporisation entre la commande pour lancer la tâche et la saisie de la confirmation (pas vraiment, j'vais y revenir, c'est juste pour présenter le problème).

    La problématique serait la même avec une interface qui attend un message de fin (« exit ») explicite pour se fermer (et donc rendre la main à une éventuelle boucle). La plupart des outils sont bien codés (flux d'entrée stocké dans un tampon consommé au fil de l'eau), donc un echo -e 'run job=nomdujob\nyes' | bconsole fonctionnera très bien. Mais, parfois, on n'a pas l'option « -e » à son echo (il faut se souvenir de dégainer printf…) ou on rencontre des programmes qui bossent en asynchrone.

    Astuce : (echo 'run job=nomdujob' && sleep 1 && echo 'yes') | bconsole.

    Tue Nov 16 22:49:38 2021 - permalink -
    - http://shaarli.guiguishow.info/?f4Czsw
  • [ Lire et écrire dans une socket UNIX avec netcat ] How can I communicate with a Unix domain socket via the shell on Debian Squeeze? - Unix & Linux Stack Exchange

    Causer dans une socket UNIX avec netcat (déclinaison netcat-openbsd) :

    nc -U /tmp/socket  #Connect to UNIX-domain stream socket
    nc -uU /tmp/socket #Connect to UNIX-domain datagram socket

    Exemple : l'interface de management d'OpenVPN (qui permet d'afficher des stats d'utilisation, de tuer une session fantôme, de diagnostiquer un problème, etc.) est une socket UNIX.

    Tue Nov 16 22:18:21 2021 - permalink -
    - https://unix.stackexchange.com/questions/26715/how-can-i-communicate-with-a-unix-domain-socket-via-the-shell-on-debian-squeeze
  • [ Exim : jeter silencieusement les emails destinés à un alias ] 22. The redirect router

    Nous avons un logiciel qui envoie des notifications par email à plusieurs adresses emails qui se révèlent être des adresses génériques (alias). Certains emails sont utiles, d'autres non. Le logiciel ne propose pas de désactiver certaines notifications. Les emails utiles sont tous destinés au même alias.

    Comment dire à notre serveur email local configuré en relais, Exim, de jeter les emails destinés à un alias sans générer d'erreur et sans activer des transporteurs supplémentaires dans la conf' ?

    Mettre :blackhole: comme destinataire de l'alias dans /etc/aliases. Genre ajeter: :blackhole:.

    Source d'inspiration.

    Mon Nov 15 22:34:47 2021 - permalink -
    - https://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_redirect_router.html#SECTspecitredli
  • Puppet : surcharger localement un fact structuré

    Nous voulions tester notre code Puppet sur Debian 11 qui était alors dans l'état release candidate (RC).

    Dans notre code (et dans Hiera), nous utilisons le fact os/release/major pour agir en fonction de la version d'un système Debian GNU/Linux.
    Pour agir sur plusieurs versions en même temps, nous convertissons le fact, qui est une chaîne de caractères, en nombre (if (0 + $facts['os']['release']['major']) >= 9 { […] }).

    Or, quand une version de Debian est en RC, os/release/major ne contient pas un nombre mais un texte (« testing » ou « bullseye », je ne sais plus). Forcément, notre code échoue…



    Facter permet d'utiliser des variables d'environnement pour créer un fact : FACTER_bonjour='Hello, World!' facter -p.

    On peut également surcharger un fact avec une variable d'environnement : FACTER_kernel='GuiGuiOS' facter -p.



    Le contenu surchargé est transmis à Puppet. Soit le code suivant :

    Notify { $facts['kernel']:
    }

    puppet agent -t affichera : « Notice: Linux ». FACTER_kernel='GuiGuiOS' puppet agent -t affichera « GuiGuiOS ».



    Mais cela ne fonctionne pas avec les facts structurés (tableaux, JSON, YAML). Reprenons notre fil rouge : surcharger os/release/major :

    FACTER_os='{
      architecture => "amd64",
      distro => {
        codename => "buster",
        description => "Debian GNU/Linux 11 (bullseye)",
        id => "Debian",
        release => {
          full => "11",
          major => "11"
        }
      },
      family => "Debian",
      hardware => "x86_64",
      name => "Debian",
      release => {
        full => "11.0",
        major => "11",
        minor => "11"
      },
      selinux => {
        enabled => false
      }
    }' facter -p | grep major

    Cela fonctionne. J'expliquerai à la fin pourquoi j'ai surchargé tout « os » alors qu'il est possible de surcharger uniquement os/release/major.



    En revanche, Puppet n'en veut pas :

    FACTER_os='{
      architecture => "amd64",
      distro => {
        codename => "buster",
        description => "Debian GNU/Linux 11 (bullseye)",
        id => "Debian",
        release => {
          full => "11",
          major => "11"
        }
      },
      family => "Debian",
      hardware => "x86_64",
      name => "Debian",
      release => {
        full => "11.0",
        major => "11",
        minor => "11"
      },
      selinux => {
        enabled => false
      }
    }' puppet agent -t

    Résultat : « Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Evaluation Error: A substring operation does not accept a String as a character index. ».

    On peut essayer de formater pour tout mettre sur une ligne ou de fournir un format JSON, ça ne fonctionne pas mieux. C'est connu.



    On peut diffuser un fact personnalisé / externe via un module Puppet. Je n'ai pas envie car je veux juste faire un test sur une seule machine.

    Un fact peut également être stocké en local sur une machine. L'emplacement des facts externes est mentionné dans la doc'.
    Le dossier « /etc/facter/facts.d/ » n'existe pas, mais on peut le créer.

    /etc/facter/facts.d/os.yaml :

    os:
      architecture: "amd64"
      distro:
        codename: "bullseye"
        description: "Debian GNU/Linux 11 bullseye"
        id: "Debian"
        release:
          full: "11"
          major: "11"
      family: "Debian"
      hardware: "x86_64"
      name: "Debian"
      release:
        full: "11.0"
        major: "11"
        minor: "11"
      selinux:
        enabled: false

    Cela fonctionne. \o/



    Pour les masos, on peut aussi l'faire en JSON. /etc/facter/facts.d/os.json :

    {
      "os": {
        "architecture": "amd64",
        "distro": {
          "codename": "bullseye",
          "description": "Debian GNU/Linux 11 bullseye",
          "id": "Debian",
          "release": {
            "full": "11",
            "major": "11"
          }
        },
        "family": "Debian",
        "hardware": "x86_64",
        "name": "Debian",
        "release": {
          "full": "11.0",
          "major": "11",
          "minor": "11"
        },
        "selinux": {
          "enabled": false
        }
      }
    }



    Il est possible de surcharger uniquement la variable désirée (os/release/major dans mon cas), mais je le déconseille : facter ne fusionnera pas ta variable avec le reste du fact structuré (dans mon cas, si je surcharge os/release/major, os/architecture ou os/distro ou os/release/full ou… n'existeront plus). Or, ton code ou un module peut vouloir récupérer un fact ignoré. Dans ce cas, l'exécution de puppet se terminera avec une erreur genre « Error 500 on SERVER: Server Error: Evaluation Error: Operator '[]' is not applicable to an Undef Value. ».

    Sun Nov 14 23:09:00 2021 - permalink -
    - http://shaarli.guiguishow.info/?CKDrZQ
  • [ Insérer « <% » ou « %%> dans un template Puppet EPP ] Creating templates using Embedded Puppet

    Besoin d'insérer littéralement « <% » ou « %> » dans un template EPP (genre dans un bacula-dir.conf) alors qu'ils représentent justement les tags EPP (et sont donc interprétés) ? <%% et %%>.

    Sun Nov 14 21:04:50 2021 - permalink -
    - https://puppet.com/docs/puppet/7/lang_template_epp.html#epp_tags-epp-literal-tag-delimiters
  • Puppet : afficher les facts personnalisés sur un client Puppet

    J'avais pas tilté, mais la commande pour afficher les facts personnalisés (custom facts / external facts, déposés par un module Puppet) sur un client Puppet change en fonction de la version de facter et des envies des mainteneurs Debian du paquet facter :

    • >= Debian 10 : facter -p ou puppet facts ;

    • Debian 9 : facter -p --external-dir=/var/cache/puppet/facts.d/ ;

    • Debian 8 : facter -p --external-dir=/var/lib/puppet/facts.d/.

    Pour les facts natifs, la commande est invariable : facter -p.

    Sun Nov 14 20:51:47 2021 - permalink -
    - http://shaarli.guiguishow.info/?ucvCSw
  • Soutien au cloud français : le gouvernement met 667 millions d'euros sur la table

    Soutien au cloud français : le gouvernement met 667 millions d'euros sur la table
    Macron : ‒ pour l'ordre, je mets quoi ? Microsoft ?

    Gros +1. Voir les actus récentes : on se dirige vers les technos des grands acteurs ricains revendues par des sociétés commerciales françaises (On-premises / octroi de licences)… Aucun financement d'un écosystème local, absence d'une politique économique et numérique, etc. La valeur économique sera toujours captée par les mêmes géants… Les mêmes intermédiaires inutiles continueront de se goinfrer pour un travail nul (inexistant et/ou d'une qualité douteuse)… Un supplément de merde à gérer (les intermédiaires) pour l'adminsys lambda… Youpi sur toute la ligne.

    Via https://www.nextinpact.com/article/48735/flock-senvole-dans-cloud .

    Mon Nov 8 20:17:03 2021 - permalink -
    - https://cdnx.nextinpact.com/data-next/image/bd/169953.png
  • [ Surligner ou annoter un PDF ? xournal ou okular ]

    Besoin de surligner ou d'annoter un PDF ? xournal. 0 prise de tête. Présent dans les dépôts officiels Debian.

    ÉDIT DU 29/06/2023 : le surlignage se fait à main levée, donc imprécis. okular permet de surligner droit, mais uniquement du texte (xournal permet de travailler également sur un scan). Bref, toujours aucun outil libre parfait. FIN DE L'ÉDIT.

    ÉDIT DU 15/04/2024 : okular permet de surligner sur des images (scan) en dessinant des rectangles (outil caché dans le menu « flèches » de la barre d'outils), en choisissant la même couleur de bordure et de remplissage des annotations (boutons de la barre d'outils), puis en choisissant l'opacité des annotations (icône « goutte » à côté des icônes pour choisir les couleur, toujours dans la barre d'outils). Plusieurs couleurs disponibles. C'est super pratique. Dans les deux cas (surligneur ou traçage de rectangles ou…), il s'agit d'une annotation, à laquelle on peut ajouter du texte. On peut supprimer une annotation en cliquant dessus dans le mode « Parcourir » (bouton dans la barre d'outils) ou via la visionneuse d'annotations (à gauche, à la place de la visionneuse de vignettes).

    okular permet également d'insérer une signature manuscrite au format image. Tutoriel ici. FIN DE LÉDIT DU 15/04/2024.

    Fri Oct 29 10:54:37 2021 - permalink -
    - https://doc.ubuntu-fr.org/pdf
  • Consultation citoyenne sur l’abstention et la participation électorale - Assemblée nationale

    Un questionnaire sur les raisons de l'abstention aux élections proposée par la mission d'information sur la participation électorale de l'Assemblée nationale.

    Répondre avant le 30 octobre.

    Je te laisse apprécier les biais comme les personnes auditionnées à ce jour (instituts de sondage, promoteurs du vote électronique, etc.) ou la présentation de la mission (« Ils porteront aussi plus largement sur les causes structurelles de l’augmentation de l’abstention en France et les réponses à leur apporter, s’agissant de l’organisation des scrutins comme des autres modalités permettant d’inciter à l’exercice du droit de vote. ») : qu'on se le dise dans les chaumières, il faut que ça vote, il faut légitimer la bourgeoisie.

    Pour rappel : un questionnaire en ligne n'est pas représentatif et une mission d'information n'a pas de pouvoir de contrainte. ;)

    ÉDIT DU 29/08/2023 : la synthèse des réponses est dispo ici. Rien de transcendant, les réponses sont basiques, et les réponses libres font l'objet des habituelles difficultés d'interprétation, de groupement et donc de prise en compte. FIN DE L'ÉDIT.

    Mon Oct 4 00:24:20 2021 - permalink -
    - https://assemblee-nationale.limequery.org/848176
  • Office 365 n’est plus conforme à la doctrine Cloud de l’État Français !

    La direction interministérielle du numérique (DINUM) a adressé une note aux sinistères les informant qu'Office 365 n'est pas conforme à la nouvelle doctrine de l'État en matière de clown (cloud). Pour moi, il ne s'agit pas d'audace, mais de la suite logique aux décisions Schrems et Schrems 2 de la Cour de Justice de l'Union Européenne.

    Évidemment, l'utilisation d'Office 365 et l'externalisation restent autorisées : version d'Office 365 déconnectée du clown de Microsoft, installation On-Premises (Office hébergé sur une infrastructure (co-)détenue par l'administration), les offres commerciales labelisées SecNumcloud par l'ANSSI (à ce jour : Oodrive, Outscale et OVH) et immunisées contre les législations impérialistes hors UE type Cloud Act ou Patriot Act (par quelle magie ?! quels moyens met-on en œuvre pour s'en assurer techniquement ?), le "clown" de l'État (SNAP), le clown Bleu (Orange, Capgemini, Microsoft, etc., ça va encore donner naissance à un mammouth ingérable et inutilisable en pratique), etc. ÉDIT DU 27/06/2022 : cloud Thales-Google. FIN DE L'ÉDIT.

    Évidemment, il y aura des dérogations, et le pouvoir de prescription de la DINUM reste très limité : la note, comme celle où elle invitait les sinistrères à définir Qwant comme moteur de recherche par défaut, s'adresse exclusivement aux sinistères, et, d'une manière générale, les DSI des administrations sous tutelle ministérielle peinent à savoir s'ils sont concernés. Quelles sanctions ? Etc.

    Évidemment, la note manque d'ambition. Pas de financement d'un écosystème concurrent complet (conception, maintenance, maîtrise, formation, etc.). On attend que le privé se bouge en balaçant des tonnes de yakafokon (oui, y'a l'offre interministérielle SNAP, lol) ce qui est l'un des symptômes d'une absence de politique en matière de numérique. Manque de volonté (combien de dirigeants d'administration locales et centrales, jusqu'au plus haut niveau de l'État, utilisent Zoom, WhatsApp, etc. ?!). Pour moi, la nouvelle doctrine du clown est uniquement là pour rafistoler à l'arrache le radeau suite aux décisions de la CJUE.

    La note de la DINUM peut également être consultée ici.

    Voir aussi : https://www.nextinpact.com/lebrief/48166/la-dinum-autorise-suite-office-mais-proscrit-sa-version-365-hebergee-dans-cloud-microsoft.

    Via https://twitter.com/emile_marzolf/status/1440673920332402705 via https://twitter.com/bayartb/status/144079246619445658.

    Sun Sep 26 22:21:43 2021 - permalink -
    - https://www.solutions-numeriques.com/office-365-nest-plus-conforme-a-la-doctrine-cloud-de-letat-francais/
  • Pour un e-sport vertueux et responsable intégré dans la scolarité

    ‒ Tu n'oublieras pas tes 3 heures de Fortnite quotidiennes en rentrant de l'école. Si tu veux optimiser tes chances dans la vie, depuis Parcoursup jusqu'à devenir boss, autant t'entraîner dès le plus jeune âge à sniper tes camarades.

    Tellement vrai.

    Via https://www.nextinpact.com/article/48211/flock-tient-a-sa-reputation .

    Sat Sep 25 14:10:35 2021 - permalink -
    - https://cdnx.nextinpact.com/data-next/image/bd/169738.png
  • [ LibreOffice Writer : une page au format paysage au sein de pages au format portrait ]

    Comment insérer une page au format paysage dans un document (dont les autres pages sont au format portrait) ?

    Thu Sep 23 01:08:00 2021 - permalink -
    - https://wiki.documentfoundation.org/Faq/Writer/012/fr
  • Erreur « Cert public key did not match the private key in the CSR store » lors de l'upload d'un certificat x509 sur Aruba Mobility Master

    Sur l'interface web Aruba Mobility Master (v8.6), je génère une CSR. Je la communique à notre autorité de certification x509 (AC), et j'obtiens un certificat x509.

    Je récupère ce certificat au format PEM, je l'uploade dans l'interface web Aruba Mobility Master, et je me mange l'erreur : « Cert public key did not match the private key in the CSR store ».
    Non, je n'ai pas généré une autre CSR entre-temps. Oui, j'ai bien récupéré le certificat qui correspond à la CSR depuis l'interface web de notre AC.

    Solution : récupérer le certificat au format PKCS#7 (ou PKCS#7 PEM) auprès de notre AC. L'upload fonctionne alors très bien… … …

    Wed Sep 22 20:50:46 2021 - permalink -
    - http://shaarli.guiguishow.info/?lbwzbw
  • Error Uploading Certificate: Error : Expecting string of length 1 to 31 | Wireless Access

    Sur l'interface web d'Aruba Mobility Master v8.6, je tente d'uploader un nouveau certificat x509 : « Error : Expecting string of length 1 to 31 ». Il faut que la longueur du nom du fichier contenant le certificat n’excède pas 31 caractères… … …

    J'étais au-dessus car, dans le nom du fichier, nous mettons le common name ainsi que le numéro de commande auprès de notre autorité de certification afin de superviser et de retrouver facilement un certificat. Dingue qu'Aruba ne prenne pas en charge un cas aussi banal.

    Wed Sep 22 20:35:31 2021 - permalink -
    - https://community.arubanetworks.com/community-home/digestviewer/viewthread?MID=32743
  • SSH : sshpass, la connexion SSH par mot de passe non-interactive - Wiki - Wiki

    Un collègue (merci, Maxime) m'a fait découvrir sshpass qui permet d'automatiser / scripter une connexion SSH par mot de passe. Paquet logiciel du même nom dans Debian.
    Le mot de passe est transmis à sshpass en argument ou dans un fichier ou dans une variable d'environnement ou dans un descripteur de fichier.

    Au final, sshpass fonctionne comme expect : il lance ssh (fork(), exec()), il lit la sortie standard, quand ssh demande le mot de passe, il l'envoie sur l'entrée standard. « -P » permet d'ailleurs de changer la chaîne de caractères à laquelle sshpass réagit.
    Ça signifie aussi que toute demande imprévue de ssh est bloquante genre vérification de l'empreinte de la clé du serveur ou demande de la passphrase d'une clé SSH si l'on a une directive « IdentityFile » dans son ssh_config. « -v » permet de visualiser ce qui bloque.

    Je préfère l'authentification par clé SSH sans passphrase dédiée à un compte utilisateur sur le serveur lui-même dédié à un script / à un ensemble de scripts d'un même périmètre / giron (cela permet une traçabilité des accès sans contrainte excessive) avec droits d'accès limités (droits fichiers ou droits sudo précis), mais c'est intéressant de savoir que sshpass existe pour les cas où l'auth par clé n'est pas en place.

    Wed Sep 22 19:11:13 2021 - permalink -
    - https://www.linuxtricks.fr/wiki/ssh-sshpass-la-connexion-ssh-par-mot-de-passe-non-interactive
  • Ubuntu 20.04 : chromium ne fonctionne pas si le dossier personnel est monté en NFS ou si son chemin est inhabituel

    Sur notre parc Ubuntu 20.04, chromium ne fonctionne pas. Chromium est installé avec snap. L'ensemble pose deux problèmes :

    • Le profil AppArmor livré ne prend pas en charge les homedirs situés ailleurs que dans /home/ et/ou montés en NFS (non, il ne suffit pas de configurer les variables dans /etc/apparmor.d/tunables/home.d, lire ci-dessous pour les détails) ;

    • Indépendamment d'AppArmor (le désactiver ne résout pas le problème), snap ne semble pas gérer des homedirs (dossier personnel) montés en NFS. Voir : https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/1662552 et https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/1884299.

    On notera également que le dossier Téléchargements se trouve dans ~/snap/chromium/current/Téléchargements. Super pratique pour un utilisateur !

    Au final, on a installé Google Chrome (qui n'est pas diffusé via snap) et basta. :( On a autre chose à faire que de compiler chromium régulièrement depuis les sources et on n'a pas trouvé de dépôt apt à jour et de confiance (ce qui permettrait de nous passer de snap).



    Démarche (tests effectués) et découverte d'AppArmor :

    • Chemin vers homedir = /home/$uid + absence de NFS : chromium démarre ;

    • Chemin vers homedir = /home/$uid + NFS : chromium ne démarre pas, erreur « cannot open path of the current working directory: Permission denied » ;

      • cd /tmp/ && chromium-browser : chromium démarre (+ snap écrit dans $HOME/snap ! Je croyais que t'arrivais pas à y accéder ?!) ;
    • Chemin vers homedir = /home/$nas/$categorie/$uid + NFS : même comportement et même erreur ;
      • cd /tmp && chromium-browser : chromium ne démarre pas, erreur « cannot create user data directory: /home/$nas/$categorie/$uid/snap/chromium/1753: Permission denied ». En fonction de la configuration d'AppArmor (voir ci-dessous), l'erreur peut aussi être « cannot create user data directory: /home/$nas/$categorie/$uid/snap/chromium/1753: Stale file handle ».



    Le dernier point est lié au profil AppArmor /var/lib/snapd/apparmor/profiles/snap-confine.snapd.12883.

    • Si je désactive totalement AppArmor (ajouter apparmor=0 dans GRUB_CMDLINE_LINUX_DEFAULT dans /etc/default/grub puis lancer update-grub2 puis redémarrer), je n'ai plus de problème pour lancer chromium depuis /tmp (ou autre endroit sans NFS). Sur le web, on lit que la commande systemctl disable apparmor et un redémarrage permettent de désactiver AppArmor : ce n'est pas exact ;

    • Si je passe le profil en mode complain (geindre dans les journaux sans rien bloquer), chromium démarre toujours quand pwd = /tmp. Comme le profil n'est pas dans /etc/apparmor.d, la commande aa-complain /snap/snapd/12883/usr/lib/snapd/snap-confine sort en erreur « Profile for /snap/snapd/12883/usr/lib/snapd/snap-confine not found, skipping » (idem avec « /var/lib/snapd/apparmor/profiles/snap-confine.snapd.12883 »). Pour passer outre : ln -s /var/lib/snapd/apparmor/snap-confine.snapd.12883 /etc/apparmor.d/ && aa-complain /snap/snapd/12883/usr/lib/snapd/snap-confine. Quid de la pérennité ? « 12883 » dans le nom du profil est la révision de snapd… qui changera lors des mises à jours… ;

    • Si je passe le profil en mode complain, je m'aperçois qu'AppArmor empêche snap d'accéder à /home/ et /home/$nas en lecture ainsi que d'envoyer des messages réseau pour accéder à notre NAS en NFS. Pour débrayer le premier problème, il faut ajouter les lignes /home/ r, et /home/$nas/ r, dans le profil. Pour NFS, il faut ajouter une ligne network, dans le profil. Puis je recharge le profil avec apparmor_parser -r /var/lib/snapd/apparmor/profiles/snap-confine.snapd.12883 (on lit souvent que systemctl reload apparmor fait le job, mais c'est incorrect). Quid de la pérennité ? « 12883 » dans le nom du profil est la révision de snapd, donc le nom du profil (et/ou son contenu) changera lors des mises à jours… ;

    • Il est vain de désactiver le profil (ln -s /var/lib/snapd/apparmor/profiles/snap-confine.snapd.12883 /etc/apparmor.d/disable/ + reboot), le lancement de chromium génerera l'erreur « snap-confine has elevated permissions and is not confined but should be. Refusing to continue to avoid permission escalation attacks » ;

    • Il n'est pas possible de désinstaller AppArmor car snapd dépend de lui et chromium dépend de snapd…
    Tue Sep 21 23:45:01 2021 - permalink -
    - http://shaarli.guiguishow.info/?3IRy2Q
  • Aruba virtual MM keeps hanging - processes in PROCESS_NOT_RESPONDING_CRITICAL

    Si t'as une VM Aruba Mobility Master v8.6 (ArubaOS) sur un hyperviseur Proxmox + KVM, convertie depuis l'image disque VMWare livrée par Aruba, il faut la configurer pour utiliser le chipset q35 (au lieu de i440fx par défaut) sinon l'interface web Aruba freezera très régulièrement (affichage partiel + aucune réaction aux clics dans les menus).

    J'ai aucune idée de la fonctionnalité du chipset q35 dont ArubaOS a besoin (PCI-E ? :D Secure Boot ? :D AHCI ? vIOMMU ?).

    Je rappelle qu'il faut également choisir un modèle de CPU qui prend en charge les instructions SSSE3 sinon Aruba Mobility master ne démarre pas.

    Tue Sep 21 22:15:19 2021 - permalink -
    - https://www.reddit.com/r/ArubaNetworks/comments/enu1cp/comment/flh4mmd/
  • Annuaire LDAP : plusieurs mots de passe pour un utilisateur

    Dans un annuaire LDAP genre OpenLDAP, l'attribut « userPassword » est multi-valué (plusieurs valeurs), cf le RFC 2829.

    Il est donc possible d'avoir plusieurs mots de passe pour un même utilisateur.

    Une application qui fait de l'authentification LDAP effectue une seule requête BIND et le serveur LDAP itère sur l'ensemble des attributs userPassword pour tester le mot de passe, donc le comportement ne dépend pas de l'application. (Évidemment, y'a toujours des applications qui tentent d'authentifier un utilisateur sur un annuaire LDAP sans faire de BIND, genre en récupérant l'attribut userPassword, dont le comportement face à plusieurs mots de passe est imprévisible).

    Quand on veut diagnostiquer une authentification ou une autorisation (droits dans un logiciel / site web) sans connaître le mot de passe de l'utilisateur qui se plaint d'un problème, sans lui réinitialiser son mot de passe et sans mettre en place tout un processus pour qu'il se rende disponible pour reproduire le problème devant toi, il suffit donc d'ajouter une valeur supplémentaire l'attribut « userPassword ». L'utilisateur continuera d'utiliser son mot de passe et toi, tu utiliseras celui que t'as ajouté. Quand t'as terminé, tu retires ton mot de passe additionnel.

    C'est, pour moi, l'équivalent adminsys des frameworks web genre Symfony qui permettent de se faire passer pour un utilisateur et d'obtenir ainsi les mêmes droits.

    Tue Sep 21 21:52:47 2021 - permalink -
    - http://shaarli.guiguishow.info/?__qszQ
Links per page: 20 50 100
◄Older
page 74 / 298
Newer►
Mentions légales identiques à celles de mon blog | CC BY-SA 3.0

Shaarli - The personal, minimalist, super-fast, database free, bookmarking service by the Shaarli community