Table des matières
4 billet(s) pour janvier 2026
| AWX sur K8S Kind - partage de fichier pour les blob - Execution pods | 2026/01/26 10:15 | Jean-Baptiste |
| Notes rsh rcp | 2026/01/21 18:08 | Jean-Baptiste |
| Git - Duplication d'un dépôt | 2026/01/19 10:22 | Jean-Baptiste |
| Exemple simple de conf Nagios | 2026/01/14 10:07 | Jean-Baptiste |
Notes Linux loadaverage
Brouillon
ps -eo state,pid,cmd | grep "^D"
ps -L -C java -o state,pid,cmd | grep ^D | wc -l ps -L -C java -o state,pid,cmd | grep -v ^D | wc -l
Notes Linux kernel namespaces espace de noms
Brouillon
Voir :
- https://github.com/rootless-containers/slirp4netns (va être remplacé par pasta à partir de Podman 5)
Sécurité - échappement :
Commandes unshare nsenter
Voir :
yum install util-linux
Voir :
- unshare
- share
- runc
- /proc/self/uid_map
jb@vmdeb1:~$ # sudo unshare --fork --pid --mount-proc bash jb@vmdeb1:~$ unshare -U -r -m --mount-proc -f -p root@vmdeb1:/home/jb# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 17:18 pts/5 00:00:00 bash root 2 1 0 17:18 pts/5 00:00:00 ps -ef
unshare -m -u -i -n -p -f --mount-proc bash sudo $(which runc) run test1 ip netns lsns nsenter
paramètre noyau user_namespace.enable=1
Red Hat / CentOS
#grubby --args="namespace.unpriv_enable=1 user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)" grubby --args="user_namespace.enable=1" --update-kernel=/boot/vmlinuz-$(uname -r)
cat /proc/sys/user/max_user_namespaces
Docker userns-remap namespace
Voir :
userns-remap=utilisateur
/root/daemon.json
{ "userns-remap": "USER" }
“USER” doit être un utilisateur valide du système hôte (présent dans /etc/passwd)
Pour /etc/subuid et /etc/subgid la syntaxe est la suivante :
user:start_uid:uid_count
La valeur du count doit logiquement être supérieur ou égale à l'UID max du conteneur (normalement l'utilisateur nobody)
docker run -ti --rm alpine cat /etc/passwd |cut -d: -f 3 |sort -n |tail -1
Autres /etc/subuid
plop:1000:1 plop:100000:65536
/etc/subgid
plop:982:1 plop:100000:65536
La 1ere ligne : tous les fichiers crées par root appartiendrons à l'UID 1000 et au GID 982
/etc/subuid and /etc/subgid files can then be edited or changed with usermod
Exemple
sudo usermod --add-subuids 200000-265535 --add-subgids 200000-265535 demisto
Voir podman system migrate
kernel.unprivileged_userns_clone
echo kernel.unprivileged_userns_clone = 1 | sudo tee /etc/sysctl.d/00-local-userns.conf
userns-remap=default dockremap
/root/daemon.json
{ "userns-remap": "default" }
Si vous définisez le champ userns-remap à default Docker créera lui-même l’utilisateur dockremap sur l'hôte.
/etc/passwd
dockremap:x:994:990::/home/dockremap:/bin/false
/etc/subuid
dockremap:10000:65536
/etc/subgid
dockremap:10000:65536
Exemple process Dockers
$ sudo lsns -t pid
NS TYPE NPROCS PID USER COMMAND
4026531836 pid 128 1 root /lib/systemd/systemd --system --deserialize 21
4026532223 pid 8 359 systemd-timesync nginx: master process /usr/sbin/nginx -g daemon off; -c /opt/etc/nginx/nginx.conf
4026532287 pid 2 21609 root /filebrowser --port 80 --database /data/database.db --root /srv
4026532298 pid 1 20919 root /portainer
4026532410 pid 3 31582 root tini -g -- start-notebook.sh --NotebookApp.token='' --NotebookApp.password=''
4026532477 pid 2 1717 root /bin/sh
$ pstree -p 1717
sh(1717)───sshd(14400)
$ lsns 4026532477
ps -e -o pidns,pid,cmd | grep -v ^$(ps -p 1 -o pidns --no-headers)
# lsns -t pid
NS TYPE NPROCS PID USER COMMAND
4026531836 pid 515 1 root /sbin/init
4026533558 pid 6 8200 root /usr/bin/python /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
4026533561 pid 6 8202 root /usr/bin/python /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
4026533565 pid 6 8219 root /usr/bin/python /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
# lsns 4026533558 PID PPID USER COMMAND 8200 8131 root /usr/bin/python /usr/bin/supervisord -c /etc/supervisor/supervisord.conf 8330 8200 root |-/usr/bin/python /usr/bin/pidproxy /var/run/varnish.pid /opt/varnishwrapper.sh start 8335 8330 root | `-/bin/bash /opt/varnishwrapper.sh start 8342 8335 syslog | `-/usr/sbin/varnishd -F -a :8022 -n varnish_plop -P /var/run/varnish.pid -j unix,user=varnish -T localhost:8123 -f /etc/varnish/instances/plop/main.vcl -S /et 8398 8342 messagebus | `-/usr/sbin/varnishd -F -a :8022 -n varnish_plop -P /var/run/varnish.pid -j unix,user=varnish -T localhost:8123 -f /etc/varnish/instances/plop/main.vcl -S / 8331 8200 root `-/usr/bin/broadcaster -cfg /etc/varnish/instances/plop/nodes.conf -port 8822 -mgmt-port 8722 -server-keep-alive 60m0s -ttl 10m0s -pid /var/run/broadcaster.pid
Voir aussi la commande systemd-cgtop
nsenter
nerdctl inspect --format {{.State.Pid}} kind-control-plane nsenter --target 6491 --mount --uts --ipc --net --pid
Réseau
Voir :
- https://passt.top/passt/about/#pasta-pack-a-subtle-tap-abstraction ( pasta va remplacer slirp4netns à partir de Podman 5)
podman unshare --rootless-netns ip addr
FS Mount
man 7 mount_namespaces lsns -t mnt findmnt -o TARGET,PROPAGATION /
Voir :
Autres
dockerd --userns-remap="testuser:testuser"
To disable user namespaces for a specific container, add the --userns=host flag
ls -l /var/lib/docker/
Pb
Err unshare failed: Operation not permitted
$ unshare -f --mount-proc -m bash unshare: unshare failed: Operation not permitted
Solution
$ unshare -U -r -m --mount-proc -f -p root@vivabelo:~#
Notes Linux graphique écran
Voir arandr l'outil graphique pour configurer xrandr
Pour connaître le dpi d’un écran, il suffit de taper :
xdpyinfo | grep resolution xrandr
Test graphique
apt-get install mesa-utils glxgears __GL_SYNC_TO_VBLANK=0 glxgears
Voir
Avez-vous l'accélération 3D
glxinfo |grep direct direct rendering: Yes
Sous Ubuntu
/usr/lib/nux/unity_support_test -p
A cause de grsecurity ? apt-get install xresprobe ddcprobe Erreur de segmentation echo $? 139
xrandr Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192 VGA-0 disconnected (normal left inverted right x axis y axis) HDMI-0 connected 1920×1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
1920x1080 60.00*+ 1680x1050 59.95 1280x1024 75.02 60.02 1152x864 75.00 1024x768 75.08 60.00 800x600 75.00 60.32 640x480 75.00 60.00 720x400 70.08
Écran
Voir : brightnessctl
ou
Portable :
Changer la luminosité de l'écran
# basename -a $(find /sys/devices/pci* -type f -name "*brightness" -not \( -wholename '*/backlight/*' -o -wholename '*/leds/*' \) ) brightness max_brightness actual_brightness # cat $(find /sys/devices/pci* -type f -name "*brightness" -not \( -wholename '*/backlight/*' -o -wholename '*/leds/*' \) ) 70 255 51 # dirname $(find /sys/devices/pci* -type f -name "*brightness" -not \( -wholename '*/backlight/*' -o -wholename '*/leds/*' \) ) | uniq /sys/devices/pci0000:00/0000:00:01.0/drm/card0/card0-LVDS-1/radeon_bl0 # echo 40 > /sys/devices/pci0000:00/0000:00:01.0/drm/card0/card0-LVDS-1/radeon_bl0/brightness
A titre d'exemple sur mon portable :
/etc/rc.local
#!/bin/sh -e sleep 20 && echo 70 > /sys/devices/pci0000:00/0000:00:01.0/drm/card0/card0-LVDS-1/radeon_bl0/brightness exit 0
!! Attention : rc.local n'est pas lancé par défaut avec systemd
Autres
écran EDID
apt-get install read-edid get-edid | parse-edid
https://wiki.ubuntu.com/X/Config/Resolution
OUTPUT=$(xrandr 2>&1|grep --color ' connected primary' | awk '{print $1}') xrandr --output $OUTPUT --mode 1024x768 #xrandr --output $OUTPUT --orientation right --mode 768x1024
Voir arandr
Désactiver / Réactiver la mise en veille après x minutes
xset s off xset s activate
discover --vendor-id --model-id pci | uniq
Résolution
xrandr -s 1024x768
Voir aussi arandr
A tester
Source https://gist.github.com/waiting-for-dev/9487493
# Put in /etc/gdm3/Init/Default or ~/.xprofile cvt 1280 720 60 xrandr --newmode "1280x720_60.00" 74.50 1280 1344 1472 1664 720 723 728 748 -hsync +vsync xrandr --addmode VGA-0 1280x720_60.00
Voir aussi arandr
Limineusité Ecran
find /sys/devices/pci* -type f -name "*brightness"
Rotation
Rotation automatique au démarrage sous Gnome
Normalement c'est dans
Voir http://bernaerts.dyndns.org/linux/74-ubuntu/309-ubuntu-dual-display-monitor-position-lost
NOTE : le fichier pourrait est placé ici : /etc/gnome-settings-daemon/xrandr/monitors.xml
~/.config/monitors.xml
<monitors version="1"> <configuration> <clone>no</clone> <output name="DVI-I-0"> <vendor>ELO</vendor> <product>ET1515L-2UWC</product> <serial>0x000084d6</serial> <width>768</width> <height>1024</height> <rate>60.003841400146484</rate> <x>0</x> <y>0</y> <rotation>right</rotation> <reflect_x>no</reflect_x> <reflect_y>no</reflect_y> <primary>yes</primary> <presentation>no</presentation> </output> </configuration> </monitors>
Le “OUTPUT” peut être trouvée grâce à
DISPLAY=:0 xrandr 2>&1|grep ' connected primary' | awk '{print $1}'
Une solution pour les PC en UEFI :
Passer au grub :
video=efifb fbcon=rotate:1
Solution
Install xrandr
apt-get x11-xserver-utils
/usr/local/bin/screenrotated.sh
#! /bin/bash if [ ! -e /home/user/.config/monitors.xml ] then env DISPLAY=:0 xrandr -o right fi
chmod +x /usr/local/bin/screenrotated.sh
/etc/xdg/autostart/display-rotated.desktop
[Desktop Entry] Type=Application Name=Hack Display rotated Comment=Display rotated pi/2 #Exec=env DISPLAY=':0' xrandr -o right Exec=/usr/local/bin/screenrotated.sh X-GNOME-Autostart-Phase=Desktop X-GNOME-AutoRestart=false X-GNOME-Autostart-Notify=true
Autres notes rotation d'écrans
echo 1 |sudo tee /sys/class/graphics/fbcon/rotate # Rotate all virtual framebuffers: echo 1 |sudo tee /sys/class/graphics/fbcon/rotate_all
Autres
~/.config/autostart/lxrandr-autostart.desktop
[Desktop Entry] Type=Application Name=Démarrage automatique de LXRandR Comment=Démarrer xrandr avec les paramètres configurés dans LXRandR Exec=sh -c 'xrandr --output HDMI-0 --auto --left-of LVDS --output LVDS --mode 1366x768 --rate 60.00' OnlyShowIn=LXDE
Ou
~/.config/autostart/lxqt-config-monitor-autostart.desktop
[Desktop Entry] Comment=Autostart monitor settings for LXQt-config-monitor Exec=lxqt-config-monitor -l Name=lxqt-config-monitor-autostart OnlyShowIn=LXQt Type=Application Version=1.0
Conf ici : ~/.config/lxqt/lxqt-config-monitor.conf
Notes Linux capabilities sécurité caps capsh setcap
Voir :
man 7 capabilities
capsh --print getpcaps $$
$ dpkg -L libcap-ng-utils |grep 'bin/' /usr/bin/captest /usr/bin/filecap /usr/bin/netcap /usr/bin/pscap
Voir :
tcpdump permission pour non-root
Autoriser les utilisateur non-root à utiliser tcpdump
NOTE : il est aussi possible d'utiliser le sudoer
Source : https://askubuntu.com/questions/530920/tcpdump-permissions-problem
Add a capture group and add yourself to it:
sudo groupadd pcap sudo usermod -a -G pcap $USER
Next, change the group of tcpdump and set permissions:
sudo chgrp pcap /usr/sbin/tcpdump sudo chmod 750 /usr/sbin/tcpdump
Finally, use setcap to give tcpdump the necessary permissions:
sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
Be careful, that this will allow everybody from the group pcap to manipulate network interfaces and read raw packets!
SyncThing - syncOwnership
Source : https://docs.syncthing.net/advanced/folder-sync-ownership
sudo chown root /usr/local/bin/syncthing sudo chmod 755 /usr/local/bin/syncthing sudo setcap CAP_CHOWN,CAP_FOWNER=pe /usr/local/bin/syncthing
Autres
nerdctl run -ti --rm --cap-drop=all docker.io/jess/amicontained /bin/sh
crictl inspect 6142ce06b10d6
Notes LightDM sddm
Voir aussi :
- gdm3
- slim
- sddm
- LightDM, SLiM, XDM, GDM, SDDM, KDM, Ly https://www.baeldung.com/linux/display-managers-install-uninstall
Sur Jessie
# dpkg -l | grep -i lightdm ii liblightdm-gobject-1-0 1.10.3-3 amd64 simple display manager (gobject library) ii lightdm 1.10.3-3 amd64 simple display manager ii lightdm-gtk-greeter 1.8.5-2 amd64 simple display manager (GTK+ greeter)
Configuration
Rédéfinir lightdm comme gestionnaire de session par défaut (sur Debian / Ubuntu)
dpkg-reconfigure lightdm
Fichier de conf
/etc/lightdm/lightdm.conf
[SeatDefaults] # Fermer le port TCP en écoute xdmcp-manager = false xserver-allow-tcp=false # Forcer un environnement de bureau particulier à l'ouverture de session user-session=mate # Désactiver la session invité allow-guest=false # Ouverture de session automatique autologin-user=jean autologin-user-timeout=0 # Réactiver le login (utilisateur et mot de passe) greeter-show-manual-login=true
SDDM
Autologon
mkdir /etc/sddm.conf.d/
/etc/sddm.conf.d/autologin.conf
[Autologin] User=jean Session=lxqt
