Outils pour utilisateurs

Outils du site


blog

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

FIXME

2025/03/24 15:06

Notes Linux kernel namespaces espace de noms

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

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 :

podman unshare --rootless-netns ip addr

FS Mount

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:~# 
2025/03/24 15:06

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  

http://doc.ubuntu-fr.org/xrandr

É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

2025/03/24 15:06

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
2025/03/24 15:06

Notes LightDM sddm

Voir aussi :

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
2025/03/24 15:06
blog.txt · Dernière modification : de 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki