Man page - systemd-analyze(1)
Packages contains this manual
- systemd-initctl.service(8)
- systemd-networkd.service(8)
- org.freedesktop.locale1(5)
- timedatectl(1)
- systemd.resource-control(5)
- systemd.journal-fields(7)
- systemd-logind.service(8)
- busctl(1)
- systemd-pstore(8)
- systemd.generator(7)
- hostname(5)
- systemd-path(1)
- systemd-random-seed.service(8)
- locale.conf(5)
- systemd-firstboot(1)
- systemd-sysv-generator(8)
- systemd.syntax(7)
- loginctl(1)
- tmpfiles.d(5)
- org.freedesktop.portable1(5)
- systemd-timedated(8)
- systemd-pstore.service(8)
- systemd-escape(1)
- systemd-system-update-generator(8)
- systemd-backlight@.service(8)
- systemd-udev-settle.service(8)
- systemd.directives(7)
- systemd.index(7)
- systemd.environment-generator(7)
- systemd-network-generator.service(8)
- org.freedesktop.systemd1(5)
- systemd-user-sessions.service(8)
- systemd-pcrlock(8)
- systemd-journald.socket(8)
- systemd-user-runtime-dir(5)
- systemd-logind(8)
- systemd-initctl.socket(8)
- systemd-pcrlock-make-policy.service(8)
- systemd(1)
- systemd-inhibit(1)
- networkctl(1)
- systemd-random-seed(8)
- sysusers.d(5)
- systemd-boot-check-no-failures(8)
- systemd.v(7)
- systemd-creds(1)
- systemd-networkd(8)
- systemd-makefs(8)
- systemd-fsck(8)
- systemd-localed.service(8)
- journald.conf.d(5)
- systemd-pcrfs@.service(8)
- systemd-cat(1)
- systemd-id128(1)
- user@.service(5)
- systemd.unit(5)
- systemd.net-naming-scheme(7)
- systemd-volatile-root(8)
- org.freedesktop.machine1(5)
- systemd-firstboot.service(1)
- localtime(5)
- systemd-timedated.service(8)
- systemd-ask-password-console.path(8)
- varlinkctl(1)
- org.freedesktop.timedate1(5)
- systemd-run-generator(8)
- systemd-system.conf(5)
- systemd-journald-varlink@.socket(8)
- systemd-rfkill.socket(8)
- systemd.exec(5)
- systemd-journald@.socket(8)
- systemd-shutdown(8)
- systemd-fsck-usr.service(8)
- systemd-sysctl.service(8)
- systemd-pcrphase.service(8)
- systemd-localed(8)
- systemd-journald(8)
- systemd-ssh-proxy(1)
- systemd.offline-updates(7)
- systemd-pcrlock-secureboot-authority.service(8)
- systemd-ac-power(1)
- pam_systemd_loadkey(8)
- systemd.device(5)
- systemd-quotacheck.service(8)
- systemd-machine-id-commit.service(8)
- systemd-backlight(8)
- binfmt.d(5)
- systemd-getty-generator(8)
- networkd.conf.d(5)
- systemd.path(5)
- systemd-networkd-wait-online.service(8)
- system.conf.d(5)
- systemd-detect-virt(1)
- systemd-sleep.conf(5)
- sysctl.d(5)
- systemd-vpick(1)
- systemd-pcrlock-secureboot-policy.service(8)
- systemd-update-done(8)
- systemd-sysctl(8)
- pstore.conf.d(5)
- hostnamectl(1)
- systemd-confext(8)
- logind.conf.d(5)
- capsule@.service(5)
- systemd-poweroff.service(8)
- systemd-modules-load(8)
- systemd.special(7)
- org.freedesktop.network1(5)
- systemd.pcrlock.d(5)
- systemd-kexec.service(8)
- systemd-stdio-bridge(1)
- systemd-umount(1)
- systemd-quotacheck(8)
- systemd-sysext.service(8)
- systemd-notify(1)
- systemd-suspend-then-hibernate.service(8)
- systemd-growfs(8)
- systemctl(1)
- systemd-hibernate-clear.service(8)
- systemd-run(1)
- systemd-pcrlock-firmware-code.service(8)
- systemd-sysusers.service(8)
- environment.d(5)
- systemd-networkd-wait-online(8)
- systemd-initctl(8)
- systemd-remount-fs.service(8)
- systemd.network(5)
- systemd-journald@.service(8)
- systemd-pcrlock-file-system.service(8)
- systemd-hibernate-resume.service(8)
- systemd-tty-ask-password-agent(1)
- systemd-growfs@.service(8)
- systemd-ask-password(1)
- systemd-hibernate-resume-generator(8)
- systemd-sleep(8)
- systemd.image-policy(7)
- systemd-hibernate.service(8)
- systemd.timer(5)
- systemd-boot-check-no-failures.service(8)
- networkd.conf(5)
- systemd-tpm2-setup(8)
- systemd-pcrphase-initrd.service(8)
- systemd-xdg-autostart-generator(8)
- systemd-tmpfiles-setup-dev-early.service(8)
- systemd-binfmt(8)
- systemd-user-sessions(8)
- file-hierarchy(7)
- systemd-socket-proxyd(8)
- localectl(1)
- modules-load.d(5)
- machine-id(5)
- systemd-battery-check.service(8)
- systemd-update-done.service(8)
- systemd.mount(5)
- systemd-machine-id-setup(1)
- systemd-storagetm.service(8)
- systemd-growfs-root.service(8)
- systemd.swap(5)
- systemd-hibernate-resume(8)
- initrd-release(5)
- systemd.target(5)
- sleep.conf.d(5)
- systemd-mkswap@.service(8)
- journald@.conf(5)
- systemd-reboot.service(8)
- systemd-journald.service(8)
- systemd-socket-activate(1)
- systemd-tmpfiles-clean.timer(8)
- systemd-debug-generator(8)
- systemd-cgtop(1)
- systemd-measure(1)
- systemd.service(5)
- systemd.slice(5)
- systemd-remount-fs(8)
- systemd-ssh-generator(8)
- systemd-bsod(8)
- systemd-pcrlock-firmware-config.service(8)
- systemd-bsod.service(8)
- systemd-pcrmachine.service(8)
- logind.conf(5)
- bootup(7)
- kernel-install(8)
- systemd-networkd-wait-online@.service(8)
- systemd-network-generator(8)
- kernel-command-line(7)
- pstore.conf(5)
- rc-local.service(8)
- systemd-confext.service(8)
- systemd-soft-reboot.service(8)
- systemd.system-credentials(7)
- systemd-fstab-generator(8)
- systemd-tpm2-setup-early.service(8)
- systemd-tmpfiles(8)
- systemd.preset(5)
- run0(1)
- user.conf.d(5)
- systemd-pcrlock-machine-id.service(8)
- os-release(5)
- systemd-fsck-root.service(8)
- systemd-battery-check(8)
- systemd.automount(5)
- systemd-pcrfs-root.service(8)
- systemd.kill(5)
- systemd-pcrphase-sysinit.service(8)
- journalctl(1)
- 30-systemd-environment-d-generator(8)
- systemd.socket(5)
- systemd-rc-local-generator(8)
- systemd-sysext(8)
- systemd-fsck@.service(8)
- systemd.time(7)
- systemd-rfkill(8)
- systemd-ask-password-wall.path(8)
- machine-info(5)
- systemd-tpm2-generator(8)
- systemd-binfmt.service(8)
- org.freedesktop.login1(5)
- systemd-delta(1)
- systemd-tmpfiles-clean.service(8)
- systemd-ask-password-wall.service(8)
- user-runtime-dir@.service(5)
- systemd-cgls(1)
- smbios-type-11(7)
- systemd-ask-password-console.service(8)
- systemd.netdev(5)
- systemd-journald-dev-log.socket(8)
- systemd-storagetm(8)
- systemd-journald-audit.socket(8)
- systemd-tmpfiles-setup-dev.service(8)
- systemd-hybrid-sleep.service(8)
- systemd-analyze(1)
- systemd-environment-d-generator(8)
- systemd-hostnamed(8)
- systemd-hostnamed.service(8)
- systemd-pcrextend(8)
- systemd-tmpfiles-setup.service(8)
- systemd.pcrlock(5)
- systemd-tpm2-setup.service(8)
- systemd-suspend.service(8)
- systemd-mount(1)
- org.freedesktop.hostname1(5)
- extension-release(5)
- systemd-makefs@.service(8)
- iocost.conf(5)
- systemd-gpt-auto-generator(8)
- systemd-halt.service(8)
- systemd-modules-load.service(8)
- systemd-sysusers(8)
- systemd-user.conf(5)
- systemd-rfkill.service(8)
- systemd-volatile-root.service(8)
- systemd.scope(5)
- daemon(7)
- journald.conf(5)
apt-get install systemd
Available languages:
en fr deManual
SYSTEMD-ANALYZE
NOMSYNOPSIS
DESCRIPTION
systemd-analyze time
systemd-analyze blame
systemd-analyze critical-chain [UNITĂ...]
systemd-analyze dump [motif...]
systemd-analyze malloc [D-Bus service...]
systemd-analyze plot
systemd-analyze dot [motif...]
systemd-analyze unit-paths
systemd-analyze exit-status [ĂTAT...]
systemd-analyze capability [CAPACITĂ... | {-m | --mask} MASQUE]
systemd-analyze condition CONDITION...
systemd-analyze syscall-filter [ENSEMBLE...]
systemd-analyze filesystems [ENSEMBLE...]
systemd-analyze calendar EXPRESSION...
systemd-analyze timestamp HORODATAGE...
systemd-analyze timespan EXPRESSION...
systemd-analyze cat-config NOM|CHEMIN...
systemd-analyze compare-versions VERSION1 [OP] VERSION2
systemd-analyze verify FICHIER...
systemd-analyze security [UNITĂ...]
systemd-analyze inspect-elf FICHIER...
systemd-analyze fdstore UNITĂ...
systemd-analyze image-policy POLITIQUE...
systemd-analyze has-tpm2
systemd-analyze pcrs [PCR...]
systemd-analyze srk [>FICHIER]
systemd-analyze architectures [NOM...]
systemd-analyze smbios11
OPTIONS
CODE DE RETOUR
ENVIRONNEMENT
EXEMPLES
VOIR AUSSI
NOTES
TRADUCTION
NOM
systemd-analyze â Analyser et dĂ©boguer le gestionnaire du systĂšme
SYNOPSIS
|
systemd-analyze [OPTIONS...] [time] |
||
|
systemd-analyze [OPTIONS...] blame |
||
|
systemd-analyze [OPTIONS...] critical-chain [ UNITĂ ...] |
||
|
systemd-analyze [OPTIONS...] dump [ MOTIF ...] |
||
|
systemd-analyze [OPTIONS...] plot [>fichier.svg] |
||
|
systemd-analyze [OPTIONS...] dot [ MOTIF ...] [>fichier.dot] |
||
|
systemd-analyze [OPTIONS...] unit-files |
||
|
systemd-analyze [OPTIONS...] unit-paths |
||
|
systemd-analyze [OPTIONS...] exit-status [ ĂTAT ...] |
||
|
systemd-analyze [OPTIONS...] capability [ CAPACITà ...| {-m | --mask} MASQUE ] |
||
|
systemd-analyze [OPTIONS...] condition CONDITION ... |
||
|
systemd-analyze [OPTIONS...] syscall-filter [ ENSEMBLE ...] |
||
|
systemd-analyze [OPTIONS...] filesystems [ ENSEMBLE ...] |
||
|
systemd-analyze [OPTIONS...] calendar SPEC ... |
||
|
systemd-analyze [OPTIONS...] timestamp HORODATAGE ... |
||
|
systemd-analyze [OPTIONS...] timespan DURĂE ... |
||
|
systemd-analyze [OPTIONS...] cat-config NOM | CHEMIN ... |
||
|
systemd-analyze [OPTIONS...] compare-versions VERSION1 [ OP ] VERSION2 |
||
|
systemd-analyze [OPTIONS...] verify FICHIER ... |
||
|
systemd-analyze [OPTIONS...] security [ UNITĂ ...] |
||
|
systemd-analyze [OPTIONS...] inspect-elf FICHIER ... |
||
|
systemd-analyze [OPTIONS...] malloc [ D-BUSÂ SERVICE ...] |
||
|
systemd-analyze [OPTIONS...] fdstore UNITĂ ... |
||
|
systemd-analyze [OPTIONS...] image-policy POLITIQUE ... |
||
|
systemd-analyze [OPTIONS...] has-tpm2 |
||
|
systemd-analyze [OPTIONS...] pcrs [ PCR ...] |
||
|
systemd-analyze [OPTIONS...] srk [ >FICHIER ] |
||
|
systemd-analyze [OPTIONS...] architectures [ NOM ...] |
||
|
systemd-analyze [OPTIONS...] smbios11 |
DESCRIPTION
systemd-analyze peut ĂȘtre utilisĂ©e pour dĂ©terminer les statistiques de performance du dĂ©marrage du systĂšme et rĂ©cupĂ©rer dâautres informations dâĂ©tat et de traçage du systĂšme et du gestionnaire de services, et vĂ©rifier la justesse des fichiers dâunitĂ©. Elle est aussi utilisĂ©e pour accĂ©der Ă des fonctions spĂ©ciales utiles au dĂ©bogage avancĂ© du gestionnaire du systĂšme.
Si aucune commande nâest passĂ©e, systemd-analyze-time est implicite.
systemd-analyze time
Cette commande affiche le temps Ă©coulĂ© dans le noyau avant que lâespace utilisateur nâait Ă©tĂ© atteint, le temps Ă©coulĂ© dans lâinitrd avant que lâespace utilisateur normal du systĂšme ne soit atteint, et le temps pris par lâespace utilisateur normal du systĂšme pour sâinitialiser. Notez que ces mesures ne font que mesurer le temps Ă©coulĂ© jusquâau moment oĂč tous les services du systĂšme ont Ă©tĂ© lancĂ©s, mais pas nĂ©cessairement jusquâĂ ce quâils aient terminĂ© leur initialisation ou que le disque soit inactif.
Exemple 1. Afficher la durĂ©e de lâamorçage (boot)
# dans un
conteneur
$ systemd-analyze time
Startup finished in 296ms (userspace)
multi-user.target reached after 275ms in userspace
# sur une vraie
machine
$ systemd-analyze time
Startup finished in 2.584s (kernel) + 19.176s (initrd) +
47.847s (userspace) = 1min 9.608s
multi-user.target reached after 47.820s in userspace
systemd-analyze blame
Cette commande affiche une liste de toutes les unitĂ©s en service, classĂ©es en fonction du temps passĂ© Ă sâinitialiser. Cette information peut ĂȘtre utilisĂ©e pour optimiser les temps dâamorçage. Prenez en compte que la sortie peut ĂȘtre trompeuse Ă©tant donnĂ© que lâinitialisation dâun service peut apparaĂźtre lente simplement parce quâil attend lâinitialisation dâun autre service pour se finaliser. Notez aussi : systemd-analyze blame nâaffiche pas de rĂ©sultats pour les services avec Type=simple , car systemd considĂšre de tels services comme dĂ©marrant immĂ©diatement, ce qui fait quâaucune mesure de dĂ©lai dâinitialisation ne peut ĂȘtre faite. Notez aussi que cette commande ne montre que le temps pris par les unitĂ©s pour dĂ©marrer, elle ne montre pas combien de temps ont passĂ© les tĂąches de lâunitĂ© dans la file dâattente dâexĂ©cutions. Cela montre en particulier le temps que lâunitĂ© a passĂ© en Ă©tat « actif », lequel nâest pas dĂ©fini pour les unitĂ©s telles que les unitĂ©s pĂ©riphĂ©riques qui effectuent une transition directement dâ« inactive » à « active ». Cette commande donne ainsi une impression de la performance du code du programme, mais ne peut reflĂ©ter avec exactitude la latence introduite par lâattente du matĂ©riel et dâĂ©vĂšnements similaires.
Exemple 2. Afficher quelles unitĂ©s prennent le plus de temps lors de lâamorçage
$
systemd-analyze blame
32.875s pmlogger.service
20.905s systemd-networkd-wait-online.service
13.299s dev-vda1.device
...
23ms sysroot.mount
11ms initrd-udevadm-cleanup-db.service
3ms sys-kernel-config.mount
systemd-analyze critical-chain [UNITĂ...]
Cette commande affiche un arbre de la chaĂźne de temps critique dâunitĂ©s (pour chacune des UNITĂ s indiquĂ©es ou pour la cible par dĂ©faut sinon). Le temps Ă©coulĂ© pour que lâunitĂ© soit active ou dĂ©marrĂ©e est affichĂ© aprĂšs le caractĂšre « @ ». Le temps pris par lâunitĂ© pour dĂ©marrer est affichĂ© aprĂšs le caractĂšre « + ». Notez que la sortie peut ĂȘtre inexacte dans la mesure oĂč lâinitialisation de services pourrait dĂ©pendre de lâactivation dâun socket et Ă cause de lâexĂ©cution en parallĂšle dâunitĂ©s. Aussi, Ă lâinstar de la commande blame , cette commande ne prend en compte que le temps passĂ© par les unitĂ©s en Ă©tat dâ« activation », et donc ne couvre pas les unitĂ©s qui ne sont jamais passĂ©es par un Ă©tat dâ« activation » (telles les unitĂ©s de pĂ©riphĂ©riques dâunitĂ© qui passent directement de lâĂ©tat « inactif » à « actif »). En outre, elle ne montre pas dâinformation sur les tĂąches (et en particulier sur les tĂąches achevĂ©es).
Exemple 3. systemd-analyze critical-chain
$
systemd-analyze critical-chain
multi-user.target @47.820s
ââpmie.service @35.968s +548ms
ââpmcd.service @33.715s +2.247s
âânetwork-online.target @33.712s
ââsystemd-networkd-wait-online.service @12.804s
+20.905s
ââsystemd-networkd.service @11.109s +1.690s
ââsystemd-udevd.service @9.201s +1.904s
ââsystemd-tmpfiles-setup-dev.service @7.306s
+1.776s
ââkmod-static-nodes.service @6.976s +177ms
ââsystemd-journald.socket
ââsystem.slice
ââ-.slice
systemd-analyze dump [motif...]
Sans aucun paramĂštre, cette commande renvoie une sĂ©rialisation lisible (habituellement trĂšs longue) de lâĂ©tat complet du gestionnaire de services. Un motif global (glob) facultatif peut ĂȘtre spĂ©cifiĂ©, limitant la sortie aux unitĂ©s dont les noms correspondent Ă lâun des motifs. Le format de sortie est susceptible dâĂȘtre modifiĂ© sans prĂ©avis et ne devrait pas ĂȘtre soumis Ă lâanalyse par des applications. Cette commande a un dĂ©bit limitĂ© pour les utilisateurs non privilĂ©giĂ©s.
Exemple 4. Afficher lâĂ©tat interne du gestionnaire utilisateur
$
systemd-analyze --user dump
Timestamp userspace: Thu 2019-03-14 23:28:07 CET
Timestamp finish: Thu 2019-03-14 23:28:07 CET
Timestamp generators-start: Thu 2019-03-14 23:28:07 CET
Timestamp generators-finish: Thu 2019-03-14 23:28:07 CET
Timestamp units-load-start: Thu 2019-03-14 23:28:07 CET
Timestamp units-load-finish: Thu 2019-03-14 23:28:07 CET
-> Unit proc-timer_list.mount:
Description: /proc/timer_list
...
-> Unit default.target:
Description: Main user target
...
systemd-analyze malloc [D-Bus service...]
Cette commande peut ĂȘtre utilisĂ©e pour demander la sortie de lâĂ©tat de la mĂ©moire interne (comme renvoyĂ© par malloc_info (3)) dâun service D-Bus. Si aucun service nâest indiquĂ©, la demande sera envoyĂ©e Ă org.freedesktop.systemd1 (le gestionnaire de services systĂšme ou utilisateur). La stabilitĂ© du format de sortie nâest pas garantie et ne devrait pas ĂȘtre analysĂ© par les applications.
Le service doit implĂ©menter lâinterface org.freedesktop.MemoryAllocation1. Dans la suite systemd, elle est actuellement implĂ©mentĂ©e seulement par le gestionnaire.
systemd-analyze plot
Cette commande affiche un graphique SVG détaillant quels services du systÚme ont démarré à quel moment, mettant en évidence le temps passé à leur initialisation, ou les données horaires brutes en format JSON ou tableau.
Exemple 5. Tracer un graphique dâamorçage
$
systemd-analyze plot >bootup.svg
$ eog bootup.svg&
Il convient de noter que ce graphique est basĂ© sur les donnĂ©es les plus rĂ©centes relatives Ă la synchronisation des unitĂ©s chargĂ©es. Cela signifie que si une unitĂ© dĂ©marre, est stoppĂ©e et redĂ©marre encore, les informations affichĂ©es ne couvriront que le cycle de dĂ©marrage le plus rĂ©cent, pas le premier. Par consĂ©quent, il est conseillĂ© de consulter ces informations peu de temps aprĂšs lâamorçage, pour que cette distinction importe peu. En outre, les unitĂ©s qui ne sont rĂ©fĂ©rencĂ©es par aucune autre unitĂ© par le biais dâune dĂ©pendance peuvent ĂȘtre dĂ©chargĂ©es par le gestionnaire de service une fois quâelles se terminent (et quâelles nâont pas Ă©chouĂ©). Ces unitĂ©s nâapparaĂźtront pas dans le graphique.
systemd-analyze dot [motif...]
Cette commande gĂ©nĂšre une description textuelle du graphe de dĂ©pendances au format dot pour un traitement ultĂ©rieur avec lâoutil GraphViz dot (1). Utilisez une ligne de commande telle que systemd-analyze dot | dot -Tsvg >systemd.svg pour gĂ©nĂ©rer un arbre de dĂ©pendances graphique. Ă moins que --order ou --require ne soit passĂ©es, le graphe obtenu montrera Ă la fois les dĂ©pendances dâordre et dâexigence. Le motif optionnel de spĂ©cifications de style globbing (par exemple *.cible) peut ĂȘtre donnĂ© Ă la fin. Une dĂ©pendance dâunitĂ© nâest inclue dans le graphe que si lâun des motifs correspond Ă la fois au nĆud dâorigine ou de destination.
Exemple 6. Tracer toutes les dépendances des unités dont le nom commence avec « avahi-daemon »
$
systemd-analyze dot 'avahi-daemon.*' | dot -Tsvg
>avahi.svg
$ eog avahi.svg
Exemple 7. Tracer les dépendances entre toutes les unités cibles connues
$
systemd-analyze dot --to-pattern='*.cible'
--from-pattern='*.cible' \
| dot -Tsvg >cibles.svg
$ eog cibles.svg
systemd-analyze unit-paths
Cette commande affiche une liste de tous les rĂ©pertoires desquels les fichiers dâunitĂ©, .d overrides, et les liens symboliques .wants, .requires doivent ĂȘtre chargĂ©s. Ă combiner avec -- user pour retrouver la liste pour lâinstance du gestionnaire utilisateur, et -- global pour la configuration globale des instances du gestionnaire utilisateur.
Exemple 8. Afficher tous les chemins pour les unités générées
$
systemd-analyze unit-paths | grep 'Ë/run'
/run/systemd/system.control
/run/systemd/transient
/run/systemd/generator.early
/run/systemd/system
/run/systemd/system.attached
/run/systemd/generator
/run/systemd/generator.late
Remarquez que cette commande affiche la liste qui est compilĂ©e Ă lâintĂ©rieur de systemd-analyze et ne communique pas avec le gestionnaire en cours dâexĂ©cution. Utilisez
systemctl [--user] [--global] show -p UnitPath --value
pour retrouver la liste réellement utilisée par le gestionnaire, avec tout répertoire vide omis.
systemd-analyze exit-status [ĂTAT...]
Cette commande affiche une liste des codes de retour avec leur « classe », câest-Ă -dire la source de la dĂ©finition (une parmi « glibc », « systemd », « LSB » ou « BSD »), voir la section des codes retour des processus dans systemd.exec (5). Si aucun autre argument nâest indiquĂ©, tous les Ă©tats connus sont affichĂ©s. Sinon, seules les dĂ©finitions pour les codes indiquĂ©s sont affichĂ©es.
Exemple 9. Afficher quelques exemples de noms dâĂ©tat de retour
$
systemd-analyze exit-status 0 1 {63..65}
NAME STATUS CLASS
SUCCESS 0 glibc
FAILURE 1 glibc
- 63 -
USAGE 64 BSD
DATAERR 65 BSD
systemd-analyze capability [CAPACITĂ... | {-m | --mask} MASQUE]
Cette commande affiche une liste des capacitĂ©s (capabilities) de Linux avec leur identifiant numĂ©rique. Consulter capabilities (7) pour les dĂ©tails. Si aucun argument nâest indiquĂ©, la liste entiĂšre des capacitĂ©s connues du gestionnaire de services et du noyau est affichĂ©e. Les capacitĂ©s dĂ©finies par le noyau, mais inconnues du gestionnaire de services sont affichĂ©es en tant que « cap_??? ». En option, si des arguments sont spĂ©cifiĂ©s, ils doivent se rĂ©fĂ©rer aux capacitĂ©s spĂ©cifiĂ©es par leur nom ou identifiant numĂ©rique, auquel cas seules les capacitĂ©s indiquĂ©es sont montrĂ©es dans la table.
De façon alternative, si --mask est passĂ©, un argument numĂ©rique unique doit ĂȘtre indiquĂ©, qui est interprĂ©tĂ© comme un masque de capacitĂ©s hexadĂ©cimal. Dans ce cas, seules les capacitĂ©s prĂ©sentes dans le masque sont affichĂ©es dans la table. Ce mode est conçu pour aider Ă dĂ©coder les rĂ©glages de capacitĂ©s disponibles avec diverses interfaces de dĂ©bogage (par exemple « /proc/PID/status »).
Exemple 10. Afficher quelques exemples de noms de capacité
$
systemd-analyze capability 0 1 {30..32}
NAME NUMBER
cap_chown 0
cap_dac_override 1
cap_audit_control 30
cap_setfcap 31
cap_mac_override 32
Exemple 11. Décoder un masque de capacités extrait de /proc
$
systemd-analyze capability -m 0000000000003c00
NAME NUMBER
cap_net_bind_service 10
cap_net_broadcast 11
cap_net_admin 12
cap_net_raw 13
systemd-analyze condition CONDITION...
Cette commande Ă©valuera les affectations Condition*=... et Assert*=... et affichera leurs valeurs et la valeur rĂ©sultante de lâensemble de conditions jointes. Consulter systemd.unit (5) pour une liste des conditions disponibles et assertions.
Exemple 12. Ăvaluer les conditions qui vĂ©rifient les versions du noyau
$
systemd-analyze condition 'ConditionKernelVersion = !
<4.0' \
'ConditionKernelVersion = >=5.1' \
'ConditionACPower=|false' \
'ConditionArchitecture=|!arm' \
'AssertPathExists=/etc/os-release'
test.service: AssertPathExists=/etc/os-release succeeded.
Asserts succeeded.
test.service: ConditionArchitecture=|!arm succeeded.
test.service: ConditionACPower=|false failed.
test.service: ConditionKernelVersion=>=5.1 succeeded.
test.service: ConditionKernelVersion=!<4.0 succeeded.
Conditions succeeded.
systemd-analyze syscall-filter [ENSEMBLE...]
Cette commande listera tous les appels systĂšme contenus dans lâensemble des appels systĂšme indiquĂ© ENSEMBLE , ou tout ensemble si aucun ensemble nâest spĂ©cifiĂ©. Lâargument ENSEMBLE doit inclure le prĂ©fixe « @ ».
systemd-analyze filesystems [ENSEMBLE...]
Cette commande listera les systĂšmes de fichiers dans lâensemble de systĂšmes de fichiers indiquĂ© ENSEMBLE , ou tout ensemble connu si aucun ensemble nâest spĂ©cifiĂ©. Lâargument ENSEMBLE doit inclure le prĂ©fixe « @ ».
systemd-analyze calendar EXPRESSION...
Cette commande va analyser et normaliser les Ă©vĂ©nements calendaires rĂ©pĂ©titifs et calculera la prochaine Ă©chĂ©ance. Elle prend la mĂȘme entrĂ©e que le OnCalendar= dĂ©fini dans systemd.timer (5), en suivant la syntaxe dĂ©crite dans systemd.time (7). Seule la prochaine Ă©chĂ©ance de lâexpression moment calendaire Ă survenir est montrĂ©e par dĂ©faut : utiliser -- iterations= pour afficher le nombre de fois indiquĂ© des prochaines Ă©chĂ©ances oĂč lâexpression se produira. Chaque moment oĂč lâexpression se dĂ©roule forme un horodatage, voir le verbatim timestamp ci-dessous.
Exemple 13. Afficher les jours bissextiles dans un futur proche
$
systemd-analyze calendar --iterations=5 '*-2-29 0:0:0'
Original form: *-2-29 0:0:0
Normalized form: *-02-29 00:00:00
Next elapse: Sat 2020-02-29 00:00:00 UTC
From now: 11 months 15 days left
Iter. #2: Thu 2024-02-29 00:00:00 UTC
From now: 4 years 11 months left
Iter. #3: Tue 2028-02-29 00:00:00 UTC
From now: 8 years 11 months left
Iter. #4: Sun 2032-02-29 00:00:00 UTC
From now: 12 years 11 months left
Iter. #5: Fri 2036-02-29 00:00:00 UTC
From now: 16 years 11 months left
systemd-analyze timestamp HORODATAGE...
Cette commande analyse un horodatage (câest-Ă -dire un simple point dans le temps) et renvoie la forme normalisĂ©e et la diffĂ©rence entre cet horodatage et maintenant. Lâhorodatage doit se conformer Ă la syntaxe documentĂ©e dans systemd.time (7), section « PARSING TIMESTAMPS » (analyse des horodatages).
Exemple 14. Afficher lâanalyse dâhorodatages
$
systemd-analyze timestamp yesterday now tomorrow
Original form: yesterday
Normalized form: Mon 2019-05-20 00:00:00 CEST
(in UTC): Sun 2019-05-19 22:00:00 UTC
UNIX seconds: @15583032000
From now: 1 day 9h ago
Original form:
now
Normalized form: Tue 2019-05-21 09:48:39 CEST
(in UTC): Tue 2019-05-21 07:48:39 UTC
UNIX seconds: @1558424919.659757
From now: 43us ago
Original form:
tomorrow
Normalized form: Wed 2019-05-22 00:00:00 CEST
(in UTC): Tue 2019-05-21 22:00:00 UTC
UNIX seconds: @15584760000
From now: 14h left
systemd-analyze timespan EXPRESSION...
Cette commande analyse un laps de temps (timespan) (câest-Ă -dire la diffĂ©rence entre deux horodatages) et renvoie la forme normalisĂ©e et la valeur Ă©quivalente en microsecondes. La durĂ©e doit se conformer Ă la syntaxe documentĂ©e dans systemd.time (7), section « PARSING TIME SPANS » (analyse de durĂ©es). Les valeurs sans unitĂ© sont analysĂ©es comme Ă©tant des secondes.
Exemple 15. Afficher lâanalyse des durĂ©es
$
systemd-analyze timespan 1s 300s '1year 0.000001s'
Original: 1s
ÎŒs: 1000000
Human: 1s
Original: 300s
ÎŒs: 300000000
Human: 5min
Original: 1year
0.000001s
ÎŒs: 31557600000001
Human: 1y 1us
systemd-analyze cat-config NOM|CHEMIN...
Cette commande est similaire Ă systemctl cat , mais opĂšre sur les fichiers de configuration. Elle copiera les contenus dâun fichier de configuration et autres bagatelles dans la sortie standard, en utilisant lâensemble des rĂ©pertoires et des rĂšgles de prioritĂ© habituel de systemd. Chaque argument doit ĂȘtre soit un chemin absolu incluant le prĂ©fixe (tel que /etc/systemd/logind.conf ou /usr/lib/systemd/logind.conf) ou un nom relatif au prĂ©fixe (tel que systemd/logind.conf).
Exemple 16. Afficher la configuration de logind
$
systemd-analyze cat-config systemd/logind.conf
# /etc/systemd/logind.conf
...
[Login]
NAutoVTs=8
...
#
/usr/lib/systemd/logind.conf.d/20-test.conf
... quelque dĂ©rogation dâun autre paquet
#
/etc/systemd/logind.conf.d/50-override.conf
... quelque dĂ©rogation dâun administrateur
systemd-analyze compare-versions VERSION1 [OP] VERSION2
Cette commande a deux modes opĂ©ratoires distincts, selon que lâopĂ©rateur OP est spĂ©cifiĂ© ou non.
Dans le premier mode â lorsque OP nâest pas indiquĂ© â, cette commande comparera les deux chaĂźnes de version et affichera soit « VERSION1 < VERSION2 », ou « VERSION1 == VERSION2 », ou « VERSION1 > VERSION2 » en fonction du rĂ©sultat.
Le code retour est 0 si les versions sont identiques, 11 si la version de droite est plus petite et 12 si la version de gauche est plus petite (cela correspond à la convention utilisée par rpmdev-vercmp ).
Dans le second mode (lorsque OP est indiquĂ©), cette commande comparera les deux chaĂźnes de version en utilisant lâopĂ©ration OP et renverra 0 (succĂšs) si les conditions sont satisfaites, et 1 (Ă©chec) sinon . OP peut ĂȘtre it , te , eq , ne , ge , gt . Dans ce mode, aucun retour nâest affichĂ© (cela correspond Ă la convention utilisĂ©e par dpkg (1) --compare-versions ).
Exemple 17. Comparer les versions dâun paquet
$
systemd-analyze compare-versions
systemd-250Ërc1.fc36.aarch64 systemd-251.fc36.aarch64
systemd-250Ërc1.fc36.aarch64 <
systemd-251.fc36.aarch64
$ echo $?
$
systemd-analyze compare-versions 1 lt 2; echo $?
0
$ systemd-analyze compare-versions 1 ge 2; echo $?
1
systemd-analyze verify FICHIER...
Cette commande chargera les fichiers dâunitĂ© et affichera des avertissements si des erreurs sont dĂ©tectĂ©es. Les fichiers indiquĂ©s sur la ligne de commande seront chargĂ©s, mais aussi toute autre unitĂ© rĂ©fĂ©rencĂ©e par eux. Un nom dâunitĂ© sur disque peut ĂȘtre remplacĂ© en spĂ©cifiant un alias aprĂšs un « deux-points » ; voir ci-dessous pour un exemple. Le chemin de recherche complet de lâunitĂ© est formĂ© en combinant les rĂ©pertoires de tous les arguments de la ligne de commande et les chemins habituels de chargement des unitĂ©s. La variable $SYSTEMD_UNIT_PATH est prise en charge et peut ĂȘtre utilisĂ©e pour remplacer ou augmenter lâensemble compilĂ© des chemins des unitĂ©s chargĂ©es ; consulter systemd.unit (5). Tous les fichiers prĂ©sents dans les rĂ©pertoires contenant les arguments de ligne de commande seront utilisĂ©s en prĂ©fĂ©rence aux autres chemins. Si une unitĂ© modĂšle nâa pas de nom dâinstance indiquĂ© (par exemple truc@.service), « test_instance » sera utilisĂ© comme nom dâinstance, ce dernier pouvant ĂȘtre contrĂŽlĂ© par lâoption --instance= .
Les erreurs suivantes sont souvent détectées :
⹠instructions et sections inconnues ;
âą dĂ©pendances nĂ©cessaires au dĂ©marrage de lâunitĂ© donnĂ©e manquantes ;
⹠pages de manuel listées dans Documentation= qui sont introuvables dans le systÚme ;
⹠commandes listées dans ExecStart= et similaires qui sont introuvables dans le systÚme ou non exécutables.
Exemple 18. Directives mal écrites
$ cat
./user.slice
[Unit]
WhatIsThis=11
Documentation=man:nosuchfile(1)
Requires=different.service
[Service]
Description=x
$
systemd-analyze verify ./user.slice
[./user.slice:9] Unknown lvalue 'WhatIsThis' in section
'Unit'
[./user.slice:13] Unknown section 'Service'. Ignoring.
Error: org.freedesktop.systemd1.LoadFailed:
Unit different.service failed to load:
No such file or directory.
Failed to create user.slice/start: Invalid argument
user.slice: man nosuchfile(1) command failed with code
16
Exemple 19. Unités de service manquantes
$ tail
./a.socket ./b.socket
==> ./a.socket <==
[Socket]
ListenStream=100
==>
./b.socket <==
[Socket]
ListenStream=100
Accept=yes
$
systemd-analyze verify ./a.socket ./b.socket
Service a.service not loaded, a.socket cannot be started.
Service b@0.service not loaded, b.socket cannot be
started.
Exemple 20. Faire un alias dâune unitĂ©
$ cat
/tmp/source
[Unit]
Description=Hostname printer
[Service]
Type=simple
ExecStart=/usr/bin/echo %H
MysteryKey=true
$
systemd-analyze verify /tmp/source
Failed to prepare filename /tmp/source: Invalid argument
$
systemd-analyze verify /tmp/source:alias.service
alias.service:7: Unknown key name 'MysteryKey' in section
'Service', ignoring.
systemd-analyze security [UNITĂ...]
Cette commande analyse la sĂ©curitĂ© et lâensemble des bacs Ă sable pour une ou plusieurs unitĂ©s de service. Si au moins un nom dâunitĂ© est spĂ©cifiĂ©, les rĂ©glages des unitĂ©s du service spĂ©cifiĂ©es sont inspectĂ©s et une analyse dĂ©taillĂ©e est affichĂ©e. Si aucun nom dâunitĂ© nâest spĂ©cifiĂ©, toutes les unitĂ©s de service chargĂ©es et en fonctionnement sont inspectĂ©es et un tableau succinct des rĂ©sultats est affichĂ©. La commande vĂ©rifie diffĂ©rents rĂ©glages relatifs Ă la sĂ©curitĂ© du service, assignant Ă chacun une valeur de « niveau dâexposition », en fonction de lâimportance du rĂ©glage. Elle calcule ensuite un niveau dâexposition global pour lâensemble de lâunitĂ©, qui est une estimation dans lâintervalle de 0.0...10.0 indiquant le degrĂ© dâexposition dâun service en matiĂšre de sĂ©curitĂ©. Des degrĂ©s dâexposition Ă©levĂ©s indiquent un « bac Ă sable » trĂšs peu appliquĂ©. Les faibles niveaux dâexposition indiquent une application du bac Ă sable serrĂ©e et des restrictions de sĂ©curitĂ© trĂšs strictes. Notez que cette commande nâanalyse que les fonctionnalitĂ©s de sĂ©curitĂ© par service que systemd lui-mĂȘme met en Ćuvre. Cela signifie que tout mĂ©canisme de sĂ©curitĂ© supplĂ©mentaire appliquĂ© par le code du service lui-mĂȘme nâest pas pris en compte. Le niveau dâexposition dĂ©terminĂ© de cette maniĂšre ne doit pas ĂȘtre mal compris : un haut niveau dâexposition ne signifie pas quâil nây a pas de bac Ă sable effectif appliquĂ© par le code du service lui-mĂȘme, ni que le service est rĂ©ellement vulnĂ©rable Ă des attaques Ă distance ou locales. De hauts niveaux dâexposition indiquent que le service pourrait bĂ©nĂ©ficier de rĂ©glages supplĂ©mentaires.
Veuillez prendre en compte que la plupart des rĂ©glages individuels pour le bac Ă sable ou la sĂ©curitĂ© peuvent ĂȘtre contournĂ©s â Ă moins dâĂȘtre combinĂ©s avec dâautres. Par exemple, si un service conserve le privilĂšge dâĂ©tablir ou de dĂ©monter des points de montage, beaucoup des options du bac Ă sable peuvent ĂȘtre dĂ©faites par le code du service lui-mĂȘme. Câest pour cela quâil est essentiel que chaque service use de rĂ©glages de bac Ă sable et de sĂ©curitĂ© les plus exhaustifs et stricts possibles. Lâoutil prendra en compte quelques-unes de ces combinaisons et relations entre les rĂ©glages, mais pas toutes. Remarquez aussi que les rĂ©glages de bac Ă sable et de sĂ©curitĂ© analysĂ©s ici ne concernent que les opĂ©rations faites par le code du service lui-mĂȘme. Si un service a accĂšs Ă un systĂšme IPC (tel que D-Bus), il pourrait nĂ©cessiter des opĂ©rations de la part dâautres services qui ne sont pas astreints aux mĂȘmes restrictions. Toute analyse exhaustive de bac Ă sable et de sĂ©curitĂ© est donc incomplĂšte si la politique dâaccĂšs IPC nâest pas aussi validĂ©e.
Exemple 21. Analyser systemd-logind.service
$
systemd-analyze security --no-pager systemd-logind.service
NAME DESCRIPTION EXPOSURE
â PrivateNetwork= Service has access to the host's
network 0.5
â User=/DynamicUser= Service runs as root user 0.4
â DeviceAllow= Service has no device ACL 0.2
â IPAddressDeny= Service blocks all IP address ranges
...
â Overall exposure level for systemd-logind.service:
4.1 OK đ
systemd-analyze inspect-elf FICHIER...
Cette commande charge les fichiers spĂ©cifiĂ©s et, sâils sont des objets ELF (exĂ©cutables, bibliothĂšques, fichier core, etc.), elle analysera les mĂ©tadonnĂ©es dâempaquetage incorporĂ©es, si prĂ©sentes et les affichera dans une table ou au format json. Voir la documentation Packaging Metadata [1] pour plus dâinformation.
Exemple 22. Afficher les informations dâun fichier core au format JSON
$
systemd-analyze inspect-elf --json=pretty \
core.fsverity.1000.f77dac5dc161402aa44e15b7dd9dcf97.58561.1637106137000000
{
"elfType" : "coredump",
"elfArchitecture" : "AMD x86-64",
"/home/bluca/git/fsverity-utils/fsverity" : {
"type" : "deb",
"name" : "fsverity-utils",
"version" : "1.3-1",
"buildId" :
"7c895ecd2a271f93e96268f479fdc3c64a2ec4ee"
},
"/home/bluca/git/fsverity-utils/libfsverity.so.0"
: {
"type" : "deb",
"name" : "fsverity-utils",
"version" : "1.3-1",
"buildId" :
"b5e428254abf14237b0ae70ed85fffbb98a78f88"
}
}
systemd-analyze fdstore UNITĂ...
Cette commande liste les contenus actuels du magasin de descripteurs de fichier de lâunitĂ© de service spĂ©cifiĂ©e et affiche les noms, les types dâinĆud, les numĂ©ros de pĂ©riphĂ©rique, les numĂ©ros dâinĆud, les chemins et les modes dâouverture des descripteurs de fichier ouverts. Les unitĂ©s indiquĂ©es doivent avoir FileDescriptorStoreMax= activé ; consultez systemd.service (5) pour les dĂ©tails.
Exemple 23. Sortie sous forme de table
$
systemd-analyze fdstore systemd-journald.service
FDNAME TYPE DEVNO INODE RDEVNO PATH FLAGS
stored sock 0:8 4218620 - socket:[4218620] ro
stored sock 0:8 4213198 - socket:[4213198] ro
stored sock 0:8 4213190 - socket:[4213190] ro
...
Remarque : la colonne « DEVNO » dĂ©signe les numĂ©ros majeur/mineur du nĆud du pĂ©riphĂ©rique associĂ© au systĂšme de fichiers dans lequel se trouve le nĆud du descripteur de fichier. La colonne « RDEVNO » dĂ©signe les numĂ©ros majeur/mineur du nĆud du pĂ©riphĂ©rique lui-mĂȘme, si le descripteur de fichier sây rĂ©fĂšre. Comparer avec les champs correspondants Ă .st_dev et .st_rdev dans struct stat (voir stat (2) pour les dĂ©tails). Les numĂ©ros dâinĆuds de la colonne « INODE » sont sur le systĂšme de fichiers indiquĂ© par « DEVNO ».
systemd-analyze image-policy POLITIQUE...
Cette commande analyse la chaĂźne de politique de lâimage indiquĂ©e, comme pour systemd.image-policy (7). Cette politique est normalisĂ©e et simplifiĂ©e. Pour chaque identifiant de partition dĂ©fini actuellement (comme pour la SpĂ©cification des Partitions DĂ©tectables [2] ) lâeffet de la chaĂźne de politique de lâimage est affichĂ© sous la forme de tableau.
Exemple 24. Exemple de sortie
$
systemd-analyze image-policy
swap=encrypted:usr=read-only-on+verity:root=encrypted
Analyzing policy:
root=encrypted:usr=verity+read-only-on:swap=encrypted
Long form:
root=encrypted:usr=verity+read-only-on:swap=encrypted:=unused+absent
PARTITION
MODE READ-ONLY GROWFS
root encrypted - -
usr verity yes -
home ignore - -
srv ignore - -
esp ignore - -
xbootldr ignore - -
swap encrypted - -
root-verity ignore - -
usr-verity unprotected yes -
root-verity-sig ignore - -
usr-verity-sig ignore - -
tmp ignore - -
var ignore - -
default ignore - -
systemd-analyze has-tpm2
Indique si le systĂšme est Ă©quipĂ© dâun pĂ©riphĂ©rique TPM2 utilisable. Si un pĂ©riphĂ©rique TPM2 a Ă©tĂ© dĂ©couvert, quâil est pris en charge et utilisĂ© par le micrologiciel, par les pilotes du noyau du systĂšme dâexploitation et par lâespace utilisateur (câest-Ă -dire systemd), cette commande affiche « yes » et quitte avec un code de retour de zĂ©ro. Si aucun pĂ©riphĂ©rique nâest dĂ©couvert/pris en charge/utilisĂ©, « no » sâaffiche. Sinon, « partial » est affichĂ©. Dans les deux cas, la sortie est un code retour diffĂ©rent de zĂ©ro. Cette commande montre aussi cinq lignes indiquant sĂ©parĂ©ment si le micrologiciel, les pilotes, le systĂšme, le noyau et les bibliothĂšques ont dĂ©couvert/gĂ©rĂ©/utilisĂ© TPM2. Actuellement, les bibliothĂšques requises sont libtss2-esys.so.0, libtss2-rc.so.0 et libtss2-mu.so.0. Ces prĂ©requis pourront changer dans le futur.
Notez que cela ne vérifie que les périphériques TPM 2.0, et ignore totalement les périphériques TPM 1.2.
Combiner avec --quiet pour supprimer la sortie.
Exemple 25. Exemple de sortie
yes
+firmware
+driver
+system
+subsystem
+libraries
+libtss2-esys.so.0
+libtss2-rc.so.0
+libtss2-mu.so.0
Ajouté dans la version 257.
systemd-analyze pcrs [PCR...]
Cette commande affiche les PCR TPM2 connus avec leurs noms dâidentification et leurs valeurs actuelles.
Exemple 26. Exemple de sortie
$
systemd-analyze pcrs
NR NAME SHA256
0 platform-code
bcd2eb527108bbb1f5528409bcbe310aa9b74f687854cc5857605993f3d9eb11
1 platform-config
b60622856eb7ce52637b80f30a520e6e87c347daa679f3335f4f1a600681bb01
2 external-code
1471262403e9a62f9c392941300b4807fbdb6f0bfdd50abfab752732087017dd
3 external-config
3d458cfe55cc03ea1f443f1562beec8df51c75e14a9fcf9a7234a13f198e7969
4 boot-loader-code
939f7fa1458e1f7ce968874d908e524fc0debf890383d355e4ce347b7b78a95c
5 boot-loader-config
864c61c5ea5ecbdb6951e6cb6d9c1f4b4eac79772f7fe13b8bece569d83d3768
6 -
3d458cfe55cc03ea1f443f1562beec8df51c75e14a9fcf9a7234a13f198e7969
7 secure-boot-policy
9c905bd9b9891bfb889b90a54c4b537b889cfa817c4389cc25754823a9443255
8 -
0000000000000000000000000000000000000000000000000000000000000000
9 kernel-initrd
9caa29b128113ef42aa53d421f03437be57211e5ebafc0fa8b5d4514ee37ff0c
10 ima
5ea9e3dab53eb6b483b6ec9e3b2c712bea66bca1b155637841216e0094387400
11 kernel-boot
0000000000000000000000000000000000000000000000000000000000000000
12 kernel-config
627ffa4b405e911902fe1f1a8b0164693b31acab04f805f15bccfe2209c7eace
13 sysexts
0000000000000000000000000000000000000000000000000000000000000000
14 shim-policy
0000000000000000000000000000000000000000000000000000000000000000
15 system-identity
0000000000000000000000000000000000000000000000000000000000000000
16 debug
0000000000000000000000000000000000000000000000000000000000000000
17 -
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
18 -
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
19 -
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
20 -
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
21 -
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
22 -
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
23 application-support
0000000000000000000000000000000000000000000000000000000000000000
systemd-analyze srk [>FICHIER]
Cette commande lit la clĂ© racine de stockage (SRK) du dispositif TPM2 et lâĂ©crit au format TPM2B_PUBLIC sĂ©rialisĂ©e sur la sortie. La sortie est une donnĂ©e non imprimable, et devrait donc ĂȘtre redirigĂ©e dans un fichier ou un tube.
Exemple 27. Sauvegarder la clef racine de stockage (Storage Root Key) dans srk.tpm2b_public
systemd-analyze srk >srk.tpm2b_public
systemd-analyze architectures [NOM...]
Lister toutes les architectures connues de CPU et lesquelles sont natives. Les noms dâarchitectures listĂ©es sont ceux pris en charge par ConditionArchitecture= , voir systemd.unit (5) pour les dĂ©tails. Si des noms dâarchitectures sont spĂ©cifiĂ©s, seuls ceux indiquĂ©s sont listĂ©s.
Exemple 28. Sortie sous forme de table
$
systemd-analyze architectures
NAME SUPPORT
alpha foreign
arc foreign
arc-be foreign
arm foreign
arm64 foreign
...
sparc foreign
sparc64 foreign
tilegx foreign
x86 secondary
x86-64 native
systemd-analyze smbios11
Afficher une liste des chaßnes SMBIOS Type #11 passées au systÚme. Consultez aussi smbios-type-11 (7).
Exemple 29. Exemple de sortie
$
systemd-analyze smbios11
io.systemd.stub.kernel-cmdline-extra=console=ttyS0
io.systemd.credential.binary:ssh.ephemeral-authorized_keys-all=c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSURGd20xbFp4WlRGclJteG9ZQlozOTYzcE1uYlJCaDMwM1MxVXhLSUM2NmYgbGVubmFydEB6ZXRhCg==
io.systemd.credential:vmm.notify_socket=vsock-stream:2:254570042
3 SMBIOS Type #11 strings passed.
Ajouté dans la version 257.
OPTIONS
Les options suivantes sont comprises :
--system
Agir sur lâinstance systemd du systĂšme. Câest lâoption implicite par dĂ©faut.
Ajouté dans la version 206.
--user
Agir sur lâinstance systemd de lâutilisateur.
Ajouté dans la version 186.
--global
Agir sur la configuration de lâensemble du systĂšme pour lâinstance systemd de lâutilisateur.
Ajouté dans la version 238.
--order , --require
Ces options sĂ©lectionnent quelles dĂ©pendances seront montrĂ©es dans le graphe de dĂ©pendances, lorsquâutilisĂ©es conjointement Ă la commande dot (voir ci-dessus). Si --order est passĂ©e, seules les dĂ©pendances du type After= ou Before= sont affichĂ©es. Si --require est passĂ©e, seules les dĂ©pendances du type Requires= , Requisite= , BindsTo= , Wants= et Conflicts= sont affichĂ©es. Si aucune nâest passĂ©e, les dĂ©pendances de tous ces types seront affichĂ©es.
Ajouté dans la version 198.
--from-pattern= , --to-pattern=
Ces options sĂ©lectionnent quelles relations sont montrĂ©es dans le graphe de dĂ©pendances lorsquâutilisĂ©es avec la commande dot (voir ci-dessus). Les deux options nĂ©cessitent un motif glob (7) comme argument qui sera comparĂ© au cĂŽtĂ© droit et au cĂŽtĂ© gauche, respectivement, des nĆuds de la relation.
Chacune dâelles peut ĂȘtre utilisĂ©e plus dâune fois, auquel cas le nom de lâunitĂ© doit correspondre Ă lâune de ces valeurs. Une relation doit passer les deux tests pour ĂȘtre affichĂ©e lorsque les tests pour les deux cĂŽtĂ©s de la relation sont prĂ©sents. Quand les motifs sont aussi spĂ©cifiĂ©s comme argument de position, ils doivent correspondre a minima Ă lâun des cĂŽtĂ©s de la relation. En dâautres termes, les motifs indiquĂ©s dans ces deux options rĂ©duiront la liste des extrĂ©mitĂ©s correspondant aux arguments de position, sâil y en a de donnĂ©s, et dĂ©termineront totalement la liste des extrĂ©mitĂ©s qui seront affichĂ©es sinon.
Ajouté dans la version 201.
--fuzz= durée
LorsquâutilisĂ©e conjointement avec la commande critical-chain (voir ci-dessus), cette option montrera aussi les unitĂ©s qui ont fini leur durĂ©e avant la derniĂšre unitĂ© sur le mĂȘme niveau. LâunitĂ© de la durĂ©e est la seconde, Ă moins quâune unitĂ© diffĂ©rente soit spĂ©cifiĂ©e, par exemple « 50ms ».
Ajouté dans la version 203.
--man=no
Ne pas invoquer man (1) pour vérifier la présence de pages de manuel listées dans Documentation= .
Ajouté dans la version 235.
--generators
Invoquer les gĂ©nĂ©rateurs dâunitĂ©s, consulter systemd.generator (7). Certains gĂ©nĂ©rateurs nĂ©cessitent les privilĂšges du superutilisateur. Fonctionner avec les gĂ©nĂ©rateurs activĂ©s en tant quâutilisateur normal rĂ©sultera en gĂ©nĂ©ral en plusieurs avertissements.
Ajouté dans la version 235.
--instance= NOM
Indiquer un nom dâinstance de secours pour les unitĂ©s modĂšle. Ă utiliser lorsquâune ou plusieurs unitĂ©s modĂšle sans nom dâinstance (par exemple truc@.service) sont indiquĂ©es par systemd-analyze condition avec --unit= , systemd-analyze security et systemd-analyze verify . Si non indiquĂ©, « test_instance » sera utilisĂ©.
Ajouté dans la version 257.
--recursive-errors= MODE
ContrĂŽler la vĂ©rification des unitĂ©s et leurs dĂ©pendances et si systemd-analyze verify finit avec un code de retour diffĂ©rent de zĂ©ro ou pas. Avec yes , renvoyer un code de retour de processus diffĂ©rent de zĂ©ro lorsque des avertissements surviennent pendant la vĂ©rification de lâunitĂ© spĂ©cifiĂ©e ou de lâune de ses dĂ©pendances associĂ©es. Avec no , renvoyer un code de retour de processus diffĂ©rent de zĂ©ro lorsque des avertissements surviennent durant la vĂ©rification de lâunitĂ© spĂ©cifiĂ©e uniquement. Avec one , renvoyer un code de retour de processus diffĂ©rent de zĂ©ro lorsque des avertissements surviennent lors de la vĂ©rification de lâunitĂ© indiquĂ©e ou de ses dĂ©pendances immĂ©diates. Si cette option nâest pas spĂ©cifiĂ©e, zĂ©ro est renvoyĂ© comme code de retour, que des avertissements surviennent ou pas lors de la vĂ©rification.
Ajouté dans la version 250.
--root= CHEMIN
Avec cat-config , verify , condition et security lorsquâutilisĂ©s avec --offline= , opĂ©rer sur les fichiers sous le chemin racine spĂ©cifiĂ© CHEMIN .
Ajouté dans la version 239.
--image= CHEMIN
Avec cat-config , verify , condition et security lorsquâutilisĂ©s avec --offline= , opĂ©rer sur les fichiers dans le chemin dâimage spĂ©cifiĂ© CHEMIN .
Ajouté dans la version 250.
--image-policy= politique
Cette option prend pour argument une image de chaine de politique, comme pour systemd.image-policy (7). La politique est imposĂ©e lors dâune opĂ©ration sur lâimage disque indiquĂ©e par --image= , voir ci-dessus. Câest par dĂ©faut la politique « * » si rien nâest indiquĂ©, câest-Ă -dire tous les systĂšmes de fichiers reconnus de lâimage sont utilisĂ©s.
--offline= BOOL
Avec security , effectuer un audit de sĂ©curitĂ© hors-ligne des fichiers dâunitĂ© spĂ©cifiĂ©s, câest-Ă -dire ne pas dĂ©pendre du PID 1 pour avoir des informations de sĂ©curitĂ© sur les fichiers de la mĂȘme façon que la commande security lorsquâutilisĂ©e seule. Cela signifie que --offline= peut ĂȘtre utilisĂ©e aussi bien avec --root= quâavec --image= . Si le niveau dâexposition global dâune unitĂ© est plus Ă©levĂ© que ce qui est dĂ©fini par --threshold= (dont la valeur par dĂ©faut est 100), --offline= enverra une erreur.
Ajouté dans la version 250.
--profile= CHEMIN
Avec security --offline= , prend en considĂ©ration le profil portable indiquĂ© lors de lâaccession aux rĂ©glages de lâunitĂ©. Le profil peut ĂȘtre passĂ© sous la forme dâun nom, auquel cas son emplacement connu sur le systĂšme sera cherchĂ©, ou il peut ĂȘtre un chemin complet vers un fichier de remplacement spĂ©cifique.
Ajouté dans la version 250.
--threshold= NOMBRE
Avec security , autorise lâutilisateur Ă dĂ©finir une valeur personnalisĂ©e Ă comparer au niveau dâexposition global pour les fichiers dâunitĂ© indiquĂ©s. Si le niveau dâexposition global dâune unitĂ© est supĂ©rieur Ă ce qui a Ă©tĂ© dĂ©fini par lâutilisateur, security renverra une erreur. --threshold= peut aussi ĂȘtre utilisĂ© avec --offline= et sa valeur par dĂ©faut est 100.
Ajouté dans la version 250.
--security-policy= CHEMIN
Avec security , permettre Ă lâutilisateur de dĂ©finir un ensemble personnalisĂ© dâexigences formatĂ©es comme un fichier JSON auquel comparer le(s) fichier(s) dâunitĂ© spĂ©cifiĂ©(s) et dĂ©terminer leur niveau dâexposition global aux menaces de sĂ©curitĂ©.
Table 1. Identificateurs de test dâĂ©valuation acceptĂ©s
Voir lâexemple « JSON Policy » ci-dessous.
Ajouté dans la version 250.
--json= MODE
Avec la commande security , gĂ©nĂ©rer une sortie formatĂ©e JSON de la table dâanalyse de sĂ©curitĂ©. Le format est un tableau JSON avec des objets contenant les champs suivants : rĂ©glage qui indique si le rĂ©glage est activĂ© ou pas, nom qui est ce qui est utilisĂ© pour se rĂ©fĂ©rer au rĂ©glage, champ_json qui est lâidentifiant compatible JSON du rĂ©glage, description qui est un aperçu de lâĂ©tat du rĂ©glage et exposition qui est un nombre dans lâintervalle de 0.0...10.0, oĂč une valeur haute correspond Ă une menace de sĂ©curitĂ© Ă©levĂ©e. La version JSON de la table est affichĂ©e dans la sortie standard. Le MODE passĂ© Ă lâoption peut ĂȘtre lâun des trois suivants : off la valeur par dĂ©faut, pretty et short qui renvoient respectivement une version enjolivĂ©e ou courte de la version JSON de la table de sĂ©curitĂ©. Avec la commande plot , gĂ©nĂ©rer une sortie formatĂ©e JSON des donnĂ©es horaires brutes. Le format est un tableau JSON avec des objets contenant les champs suivant : nom qui est le nom de lâunitĂ©, activated qui est le temps mis par le service pour ĂȘtre activĂ© aprĂšs le dĂ©marrage, activating qui est le temps mis par le service pour ĂȘtre initialement lancĂ© aprĂšs le dĂ©marrage, time qui est le temps mis par le service pour sâactiver Ă partir du moment oĂč il a Ă©tĂ© dĂ©marrĂ© initialement, desactivated qui est le temps mis par le service pour se dĂ©sactiver aprĂšs le dĂ©marrage, desactivating qui est le temps aprĂšs lequel il a Ă©tĂ© initialement demandĂ© au service de se dĂ©sactiver aprĂšs le dĂ©marrage.
Ajouté dans la version 250.
--iterations= NOMBRE
LorsquâutilisĂ©e avec la commande calendar , cette option affiche le nombre spĂ©cifique dâitĂ©rations de prochaines Ă©chĂ©ances de lâexpression calendaire indiquĂ©e. La valeur par dĂ©faut est 1 .
Ajouté dans la version 242.
--base-time= HORODATAGE
LorsquâutilisĂ©e avec la commande calendar , cette option affiche les prochaines itĂ©rations relatives Ă un moment indiquĂ©. Si rien nâest spĂ©cifiĂ©, ce sera lâheure actuelle par dĂ©faut.
Ajouté dans la version 244.
--unit= UNITĂ
LorsquâutilisĂ©e avec la commande condition , cette option permet dâĂ©valuer toutes les assignations Condition*=... et Assert*=... dans le fichier de lâunitĂ© indiquĂ©e. Le chemin complet de recherche de lâunitĂ© est formĂ© en combinant les rĂ©pertoires de lâunitĂ© indiquĂ©e avec les chemins habituels de chargement des unitĂ©s. La variable $SYSTEMD_UNIT_PATH est prise en charge et peut ĂȘtre utilisĂ©e pour remplacer ou augmenter lâensemble compilĂ© des chemins de chargement des unitĂ©s ; consulter systemd.unit (5). Tous les fichiers dâunitĂ©s prĂ©sents dans le rĂ©pertoire contenant lâunitĂ© indiquĂ©e seront utilisĂ©s de prĂ©fĂ©rence aux autres chemins. Si une unitĂ© modĂšle sans nom dâinstance est indiquĂ©e (par exemple truc@.service), « test_instance » sera utilisĂ© comme nom dâinstance, ce dernier pouvant ĂȘtre contrĂŽlĂ© par lâoption --instance= .
Ajouté dans la version 250.
--table
LorsquâutilisĂ©e avec la commande plot , la sortie des donnĂ©es horaires brutes sâaffiche sous la forme dâun tableau.
Ajouté dans la version 253.
--no-legend
LorsquâutilisĂ© avec la commande plot combinĂ©e avec soit --table ou --json= , aucune lĂ©gende ou indication ne sont inclues dans la sortie.
Ajouté dans la version 253.
-H , --host=
Effectuer lâopĂ©ration Ă distance. Indiquer un nom dâhĂŽte, ou un nom dâutilisateur et un nom dâhĂŽte sĂ©parĂ©s par un « @ », auquel se connecter. Le nom dâhĂŽte peut, de façon optionnelle, ĂȘtre suffixĂ© par un port sur lequel ssh Ă©coute, sĂ©parĂ© par un « : », puis le nom dâun conteneur, sĂ©parĂ© par un « / », ce qui connecte alors directement Ă un conteneur donnĂ© sur lâhĂŽte spĂ©cifiĂ©. SSH sera utilisĂ© pour dialoguer avec lâinstance du gestionnaire de la machine distante. Les noms de conteneur peuvent ĂȘtre Ă©numĂ©rĂ©s avec machinectl -H HĂTE . Mettre les adresses IPv6 entre crochets.
-M , --machine=
Effectuer lâopĂ©ration dans un conteneur local. PrĂ©ciser le nom dâun conteneur auquel se connecter, optionnellement prĂ©fixĂ© par le nom dâutilisateur sous lequel se connecter et un caractĂšre de sĂ©paration « @ ». Si la chaĂźne spĂ©ciale « .host » est utilisĂ©e Ă la place du nom du conteneur, une connexion au systĂšme local se produit (ce qui est utile pour se connecter au bus utilisateur dâun utilisateur particulier : « --user --machine=lennart@.host »). Si la syntaxe « @ » nâest pas utilisĂ©e, la connexion est rĂ©alisĂ©e en tant que superutilisateur. Si la syntaxe « @ » est utilisĂ©e, le cĂŽtĂ© gauche ou le cĂŽtĂ© droit peuvent ĂȘtre omis (mais pas les deux Ă la fois), auquel cas le nom de lâutilisateur local et « .host » sont implicites.
-q , --quiet
Supprimer les notes et sorties non essentielles.
Ajouté dans la version 250.
--tldr
Avec cat-config , nâafficher que les parties « intĂ©ressantes » des fichiers de configuration, sauter les commentaires et les lignes vides ainsi que les en-tĂȘtes de section suivis uniquement de commentaires et de lignes vides.
Ajouté dans la version 255.
--scale-svg= FACTEUR
Lorsque utilisĂ©e avec la commande plot , lâaxe des x du tracĂ© peut ĂȘtre Ă©tirĂ© par FACTEUR (par dĂ©faut : 1.0).
Ajouté dans la version 257.
--detailed
Lorsque utilisĂ©e avec la commande plot , les dĂ©tails des horodatages dâactivation peuvent ĂȘtre observĂ©s dans le tracĂ© SVG.
Ajouté dans la version 257.
-h , --help
Afficher un aide-mémoire succinct et quitter.
--version
Afficher une information de version courte et quitter.
--no-pager
Ne pas rediriger (pipe) la sortie vers un afficheur (pager).
CODE DE RETOUR
Pour la plupart des commandes, 0 est renvoyĂ© en cas de succĂšs et un code dâĂ©chec diffĂ©rent de zĂ©ro sinon.
Avec le verbatim compare-versions sous la forme de deux arguments, 12 , 0 ou 11 est renvoyé si la seconde chaßne de version est respectivement plus grande, égale ou plus petite que la premiÚre. Sous la forme de trois arguments, 0 ou 1 est renvoyé si la condition est respectivement vraie ou fausse.
La commande has-tpm2 renvoie 0 si un pĂ©riphĂ©rique TPM2 est dĂ©couvert, gĂ©rĂ© et utilisĂ© par le micrologiciel, le pilote et lâespace utilisateur (câest-Ă -dire systemd). Sinon, elle renvoie un OU logique de la valeur 1 (dans le cas oĂč la prise en charge du micrologiciel est manquante), 2 (prise en charge du pilote manquante) et 4 (prise en charge de lâespace utilisateur manquante). Si aucune prise en charge TPM2 nâest disponible, une valeur de 7 est renvoyĂ©e.
ENVIRONNEMENT
$SYSTEMD_LOG_LEVEL
Le niveau maximal de journalisation de messages Ă©mis (messages avec un niveau de journalisation supĂ©rieur, câest-Ă -dire les moins importants seront supprimĂ©s). Cette variable prend une liste de valeurs sĂ©parĂ©es par des virgules. Une valeur peut ĂȘtre (par ordre dâimportance dĂ©croissante) emerg , alert , crit , err , warning , notice , info , debug ou un entier dans lâintervalle 0...7. Consultez syslog (3) pour davantage dâinformations. Chaque valeur peut ĂȘtre optionnellement prĂ©fixĂ©e avec console , syslog , kmsg ou journal suivi dâun deux-points ( : ) pour dĂ©finir le niveau de journalisation maximal pour la cible spĂ©cifique de journal (par exemple SYSTEMD_LOG_LEVEL=debug,console:info indique de journaliser au niveau debug exceptĂ© pour la journalisation vers la console qui doit sâeffectuer au niveau info ). Notez que le niveau maximal de journalisation globale est prioritaire sur tout niveau maximal de journalisation par cible.
$SYSTEMD_LOG_COLOR
Un booléen. Si la valeur est vrai, les messages écrits sur le terminal seront colorés selon la priorité.
Ce rĂ©glage est utile uniquement quand les messages sont Ă©crits directement dans un terminal ou un fichier parce que journalctl (1) et dâautres outils qui affichent des journaux coloreront par eux-mĂȘmes les messages selon le niveau de journalisation.
$SYSTEMD_LOG_TIME
Un boolĂ©en. Si la valeur est vrai, les messages du journal de la console seront prĂ©fixĂ©s dâun horodatage.
Ce rĂ©glage est utile uniquement quand les messages sont Ă©crits directement dans un terminal ou un fichier parce que journalctl (1) et dâautres outils qui affichent des journaux attacheront par eux-mĂȘmes un horodatage selon les mĂ©tadonnĂ©es de lâentrĂ©e.
$SYSTEMD_LOG_LOCATION
Un boolĂ©en. Si la valeur est vrai, les messages seront prĂ©fixĂ©s par un nom de fichier et du numĂ©ro de ligne du code source dâoĂč vient le message.
Notez que lâemplacement du journal est souvent attachĂ© comme mĂ©tadonnĂ©e aux entrĂ©es du journal de toute façon. Lâinclure directement dans le texte du message peut nĂ©anmoins ĂȘtre opportun lors du dĂ©bogage de programmes.
$SYSTEMD_LOG_TID
Un boolĂ©en. Si la valeur est vrai, les messages seront prĂ©fixĂ©s par lâidentifiant numĂ©rique du thread actuel (TID).
Notez que cette information est attachĂ©e comme mĂ©tadonnĂ©e aux entrĂ©es du journal de toute façon. Lâinclure directement dans le texte du message peut nĂ©anmoins ĂȘtre opportun lors du dĂ©bogage de programmes.
$SYSTEMD_LOG_TARGET
Destination pour journaliser les messages. Une des destinations parmi console (journaliser dans le terminal attachĂ©), console-prefixed (journaliser dans le terminal attachĂ©, mais avec des prĂ©fixes qui codent le niveau et le « service » de journalisation, consultez syslog (3)), kmsg (journaliser dans le tampon de journalisation circulaire du noyau), journal (journaliser dans le journal), journal-or-kmsg (journaliser dans le journal sâil est disponible et sinon dans kmsg), auto (dĂ©terminer automatiquement la cible appropriĂ©e de journalisation, câest la destination par dĂ©faut), null (dĂ©sactive la sortie de journalisation).
$SYSTEMD_LOG_RATELIMIT_KMSG
Que ce soit pour le taux de requĂȘte kmsg ou pas. Prend un boolĂ©en. Par dĂ©faut « true ». Si dĂ©sactivĂ©, systemd ne limitera pas le taux des messages Ă©crits Ă kmsg.
$SYSTEMD_PAGER , $PAGER
Afficheur Ă utiliser lorsque --no-pager nâest pas prĂ©cisĂ©. $SYSTEMD_PAGER est utilisĂ© sâil est dĂ©fini ; autrement, $PAGER est utilisĂ©. Si ni $SYSTEMD_PAGER , ni $PAGER nâont de valeur, un ensemble dâafficheurs bien connus sont essayĂ©s Ă tour de rĂŽle, incluant less (1) et more (1), jusquâĂ ce quâil y en ait un qui soit trouvĂ©. Si aucun afficheur nâest trouvĂ©, aucun afficheur nâest appelĂ©. DĂ©finir ces variables dâenvironnement Ă une chaĂźne vide ou à « cat » est Ă©quivalent Ă lâutilisation de --no-pager .
Remarque : si $SYSTEMD_PAGERSECURE nâest pas dĂ©fini, $SYSTEMD_PAGER et $PAGER ne peuvent ĂȘtre utilisĂ©s que pour dĂ©sactiver lâafficheur (avec « cat » ou « "" ») et autrement seront ignorĂ©s.
$SYSTEMD_LESS
Outrepasser les options passées à less (par défaut « FRSXMK »).
Les utilisateurs voudront peut-ĂȘtre changer deux options en particulier :
K
Cette option ordonne Ă lâafficheur de quitter immĂ©diatement lorsque Ctrl+C est entrĂ©. Pour permettre Ă less de gĂ©rer Ctrl+C lui-mĂȘme le retour Ă lâinvite de commande de lâafficheur, ne pas fournir cette option.
Si la valeur de $SYSTEMD_LESS nâinclut pas « K » et si lâafficheur appelĂ© est less , Ctrl+C sera ignorĂ© par lâexĂ©cutable et doit ĂȘtre gĂ©rĂ© par lâafficheur.
X
Cette option ordonne Ă lâafficheur de ne pas envoyer les chaĂźnes dâinitialisation et de dĂ©sinitialisation de termcap au terminal. Câest le choix par dĂ©faut afin de permettre aux sorties des commandes de rester visibles dans le terminal mĂȘme aprĂšs que lâafficheur soit fermĂ©. Toutefois, cela empĂȘche quelques fonctionnalitĂ©s de lâafficheur de fonctionner, en particulier, il nâest pas possible de faire dĂ©filer les sorties affichĂ©es avec la souris.
Notez que le rĂ©glage de la variable dâenvironnement $LESS normale nâa aucun effet sur les invocations de less par les outils de systemd.
Voir less (1) pour plus de détails.
$SYSTEMD_LESSCHARSET
Outrepasser le jeu de caractĂšres passĂ© Ă less (par dĂ©faut « utf-8 », si le terminal invoquĂ© est compatible avec lâUTF-8).
Notez que le rĂ©glage de la variable dâenvironnement $LESSCHARSET normale nâa aucun effet sur les invocations de less par les outils de systemd.
$SYSTEMD_PAGERSECURE
Les commandes dâafficheur courantes comme less (1), en plus de « lâaffichage », câest-Ă -dire le dĂ©filement de la sortie, prennent en charge lâouverture et lâĂ©criture dâautres fichiers et lâexĂ©cution de commandes dâinterprĂ©teur arbitraires. Quand les commandes sont invoquĂ©es avec des privilĂšges Ă©levĂ©s, par exemple sous sudo (8) ou pkexec (1), lâafficheur devient une limite de sĂ©curitĂ©. Il convient de veiller Ă ce que seuls des programmes avec des fonctionnalitĂ©s strictement limitĂ©es soient utilisĂ©s comme afficheurs et que les fonctionnalitĂ©s comme lâouverture ou la crĂ©ation de nouveaux fichiers ou le dĂ©marrage de sous-processus ne soient pas autorisĂ©es. Un « mode sĂ©curisé » pour lâafficher peut ĂȘtre activĂ© comme dĂ©crit ci-dessous, si lâafficheur le prend en charge†(la plupart des afficheurs ne sont pas Ă©crits de façon Ă prendre cela en considĂ©ration). Il est recommandĂ© soit dâactiver explicitement le « mode sĂ©curisé » soit de dĂ©sactiver complĂštement lâafficheur en utilisant --no-pager ou PAGER=cat lorsque des utilisateurs non fiables sont autorisĂ©s Ă exĂ©cuter des commandes avec des privilĂšges Ă©levĂ©s.
Cette option prend un argument boolĂ©en. Lorsquâelle est dĂ©finie Ă vrai, le « mode sĂ©curisé » de lâafficheur est activĂ©. En « mode sĂ©curisé », LESSSECURE=1 est dĂ©fini lors de lâinvocation de lâafficheur, ce qui lui indique de dĂ©sactiver les commandes qui ouvrent ou crĂ©ent des fichiers, ou qui dĂ©marrent un nouveau sous-processus. Actuellement, seul less (5) est connu pour comprendre cette variable et implĂ©menter le « mode sĂ©curisé ».
Quand lâoption est dĂ©finie Ă faux, aucune limitation nâest imposĂ©e Ă lâafficheur. DĂ©finir SYSTEMD_PAGERSECURE=0 ou ne pas le supprimer de lâenvironnement hĂ©ritĂ© peut permettre Ă lâutilisateur dâinvoquer des commandes arbitraires.
Quand $SYSTEMD_PAGERSECURE nâest pas dĂ©fini, les outils de systemd tentent de dĂ©terminer automatiquement si le « mode sĂ©curisé » doit ĂȘtre activĂ© et si lâafficheur le prend en charge. Le « mode sĂ©curisé » est activĂ© si lâUID effectif est diffĂ©rent de celui du propriĂ©taire de la session de connexion (voir geteuid (2)) et sd_pid_get_owner_uid (3)) ou lors de lâexĂ©cution sous sudo (8) ou des outils similaires ( $SUDO_UID est dĂ©fini Ă [3] ). Dans ces cas, SYSTEMD_PAGERSECURE=1 sera dĂ©fini et les afficheurs qui ne sont pas connus pour implĂ©menter le « mode sĂ©curisé » ne seront pas du tout utilisĂ©s. Notez que cette dĂ©tection automatique ne couvre que les mĂ©canismes les plus courants dâĂ©lĂ©vation des privilĂšges et quâelle est conçue pour faciliter la tĂąche. Il est recommandĂ© de dĂ©finir explicitement $SYSTEMD_PAGERSECURE ou de dĂ©sactiver lâafficheur.
Notez que si les variables $SYSTEMD_PAGER ou $PAGER doivent ĂȘtre respectĂ©es, sauf pour dĂ©sactiver lâafficheur, $SYSTEMD_PAGERSECURE doit aussi ĂȘtre dĂ©fini.
$SYSTEMD_COLORS
Prend un argument boolĂ©en. Quand câest « vrai », systemd et les utilitaires liĂ©s utiliseront la couleur pour leurs sorties, autrement, la sortie sera monochrome. En plus, la variable peut prendre une des valeurs spĂ©ciales suivantes : 16 ou 256 pour limiter lâusage des couleurs aux couleurs ANSI base 16 ou base 256 respectivement. Cela peut ĂȘtre prĂ©cisĂ© pour outrepasser la dĂ©cision automatique prise sur $TERM et quel que soit ce Ă quoi la console est connectĂ©e.
$SYSTEMD_URLIFY
La valeur doit ĂȘtre un boolĂ©en. ContrĂŽle si les liens cliquables doivent ĂȘtre gĂ©nĂ©rĂ©s dans la sortie pour des Ă©mulateurs de terminaux le prenant en charge. Cela peut ĂȘtre indiquĂ© pour passer outre la dĂ©cision faite par systemd basĂ©e sur $TERM et dâautres conditions.
EXEMPLES
Exemple 30. Politique JSON
Le fichier JSON passĂ© comme paramĂštre de chemin Ă --security-policy= a un objet JSON de haut niveau dont les clĂ©s sont les identifiants des tests dâĂ©valuation mentionnĂ©s ci-dessus. Les valeurs dans le fichier doivent ĂȘtre des objets JSON avec un ou plusieurs des champs suivants : description_na (chaĂźne), description_good (chaĂźne), description_bad (chaĂźne), weight (entier non signĂ©) et range (entier non signĂ©). Si lâun de ces champs correspondant Ă un identifiant spĂ©cifique dâun fichier dâunitĂ© est manquant dans lâobjet JSON, la valeur du champ interne par dĂ©faut correspondant Ă ce mĂȘme identifiant est utilisĂ©e comme valeur par dĂ©faut pour lâanalyse de sĂ©curitĂ©. Les champs weight et range sont utilisĂ©s pour dĂ©terminer le niveau dâexposition global des fichiers de lâunité : un score de mĂ©diocritĂ© est assignĂ© comme valeur Ă chaque rĂ©glage, qui est multipliĂ© par le poids de la politique et divisĂ© par la plage de politique pour dĂ©terminer lâexposition globale que ce rĂ©glage implique. Le degrĂ© de mĂ©diocritĂ© calculĂ© est additionnĂ© Ă tous les paramĂštres du fichier de lâunitĂ©, normalisĂ© dans lâintervalle de 1 Ă 100 et utilisĂ© pour dĂ©terminer le niveau dâexposition global de lâunitĂ©. En autorisant les utilisateurs Ă manipuler ces champs, la commande « security » leur donne le choix de dĂ©cider eux-mĂȘmes quels identifiants sont plus importants et donc susceptibles dâavoir un impact plus grand sur le niveau dâexposition. Un poids de 0 signifie que le rĂ©glage ne sera pas vĂ©rifiĂ©.
{
"PrivateDevices":
{
"description_good": "Service has no access to
hardware devices",
"description_bad": "Service potentially has
access to hardware devices",
"weight": 1000,
"range": 1
},
"PrivateMounts":
{
"description_good": "Service cannot install
system mounts",
"description_bad": "Service may install
system mounts",
"weight": 1000,
"range": 1
},
"PrivateNetwork":
{
"description_good": "Service has no access to
the host's network",
"description_bad": "Service has access to the
host's network",
"weight": 2500,
"range": 1
},
"PrivateTmp":
{
"description_good": "Service has no access to
other software's temporary files",
"description_bad": "Service has access to
other software's temporary files",
"weight": 1000,
"range": 1
},
"PrivateUsers":
{
"description_good": "Service does not have
access to other users",
"description_bad": "Service has access to
other users",
"weight": 1000,
"range": 1
}
}
VOIR AUSSI
systemd (1), systemctl (1)
NOTES
|
1. |
Empaquetage de métadonnées |
https://systemd.io/COREDUMP_PACKAGE_METADATA/
|
2. |
Spécification des partitions détectables |
https://uapi-group.org/specifications/specs/discoverable_partitions_specification
|
3. |
Il est recommandé pour les autres outils de définir et vérifier $SUDO_UID comme il convient, en le considérant comme une interface courante. |
TRADUCTION
La traduction française de cette page de manuel a été créée par bubu <bubub@no-log.org>
Cette traduction est une documentation libre ; veuillez vous reporter Ă la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il nây a aucune RESPONSABILITĂ LĂGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .