[LINUX] Lire tout le contenu de proc / [pid] ~ De cwd à loginuid ~

Aperçu

Je vous serais reconnaissant si vous pouviez jeter un coup d'œil aux détails ici. Lire tout le contenu de proc / [pid]

Faux, vous pouvez trouver plus d'informations ici, ce répertoire n'est plus utilisé, Je vous serais reconnaissant si vous pouviez commenter si vous avez des informations.

# sleep 365d > /dev/null &
[1] 3792

# ls /proc/3792
attr             cwd       map_files   oom_adj        schedstat  task
autogroup        environ   maps        oom_score      sessionid  timers
auxv             exe       mem         oom_score_adj  setgroups  uid_map
cgroup           fd        mountinfo   pagemap        smaps      wchan
clear_refs       fdinfo    mounts      patch_state    stack
cmdline          gid_map   mountstats  personality    stat
comm             io        net         projid_map     statm
coredump_filter  limits    ns          root           status
cpuset           loginuid  numa_maps   sched          syscall

# cd /proc/3792

cwd

# ll cwd
lrwxrwxrwx. 1 root root 0 Jan 11 13:12 cwd -> /root

Un lien symbolique vers le répertoire courant du processus. Depuis que je l'ai exécuté en tant qu'utilisateur root, c'est / root. Le processus 3792 semble fonctionner en tant que / root. Cela semble dangereux.

environ

# cat environ
XDG_SESSION_ID=89SHELL=/bin/bashTERM=xtermHISTSIZE=1000USER=rootLS_COLORS=rs=0:di=01;34:ln=01;(réduction)

# tr \\0 \\n < environ
XDG_SESSION_ID=89
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
USER=root
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;(réduction)
MAIL=/var/spool/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
LANG=en_US.UTF-8
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
LOGNAME=root
LESSOPEN=||/usr/bin/lesspipe.sh %s
_=/bin/sleep

La valeur de la variable d'environnement. Il semble être séparé par des caractères nuls. Je ne sais pas si c'est "chat". Le même contenu a été confirmé avec «ps ex | grep 3792».

Postscript

La conversion de \ 0 (NULL) en \ n (ligne de rupture) en tant que tr \\ 0 \\ n <environ facilite la lecture.

exe

# ll exe
lrwxrwxrwx. 1 root root 0 Jan 11 13:12 exe -> /usr/bin/sleep

Fichier d'exécution symbolique

fd

# ll fd
total 0
lrwx------. 1 root root 64 Jan 11 12:49 0 -> /dev/pts/0 (deleted)
l-wx------. 1 root root 64 Jan 11 12:49 1 -> /dev/null
lrwx------. 1 root root 64 Jan 11 14:26 2 -> /dev/pts/0 (deleted)

Un sous-répertoire contenant des entrées pour chaque fichier ouvert par le processus. Le descripteur de fichier est le nom du fichier, qui est un lien symbolique vers le fichier réel. Par conséquent, 0 est l'entrée standard, 1 est la sortie standard, 2 est la sortie d'erreur standard, et ainsi de suite. Citation [https://linuxjm.osdn.jp/html/LDP_man-pages/man5/proc.5.html]

fd: = Abréviation du descripteur de fichier. C'est pratique. Peut être utilisé lorsque vous souhaitez vérifier l'entrée / la sortie

fdinfo

# ll fdinfo/
total 0
-r--------. 1 root root 0 Jan 11 12:49 0
-r--------. 1 root root 0 Jan 11 12:49 1
-r--------. 1 root root 0 Jan 11 12:49 2

# cat fdinfo/0 fdinfo/1 fdinfo/2
pos:    0
flags:  0100002
mnt_id: 23
pos:    0
flags:  0100001
mnt_id: 20
pos:    0
flags:  0100002
mnt_id: 23

Avec les informations ci-dessus, il semble que le processus puisse identifier le descripteur de fichier.

gid_map,uid_map

# cat gid_map
         0          0 4294967295
# cat uid_map
         0          0 4294967295

Il semble décrire les informations de mappage requises pour utiliser différents UID et GID à l'intérieur et à l'extérieur de l'espace de noms utilisateur. Ce sera utile, donc je le lirai plus tard. https://gihyo.jp/admin/serial/01/linux_containers/0016

io

# cat io
rchar: 2012
wchar: 0
syscr: 7
syscw: 0
read_bytes: 0
write_bytes: 0
cancelled_write_bytes: 0

Ce fichier affiche les statistiques d'E / S du processus. ... rchar: nombre de caractères à lire wchar: nombre de caractères à écrire syscr: nombre d'appels système lus syscw: nombre d'appels système d'écriture read_bytes: nombre d'octets à lire write_bytes: nombre d'octets à écrire cancelled_write_bytes: ... (partiellement omis) https://linuxjm.osdn.jp/html/LDP_man-pages/man5/proc.5.html

Le dernier devrait être "le nombre d'octets qui n'ont pas pu écrire".

limits

# cat limits
Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            8388608              unlimited            bytes
Max core file size        0                    unlimited            bytes
Max resident set          unlimited            unlimited            bytes
Max processes             2288                 2288                 processes
Max open files            1024                 4096                 files
Max locked memory         65536                65536                bytes
Max address space         unlimited            unlimited            bytes
Max file locks            unlimited            unlimited            locks
Max pending signals       2288                 2288                 signals
Max msgqueue size         819200               819200               bytes
Max nice priority         0                    0
Max realtime priority     0                    0
Max realtime timeout      unlimited            unlimited            us

Il résume les limites de ressources du processus.

loginuid

# cat loginuid
1000

Qui est uid 1000

# cat /etc/passwd | grep 1000
inahy:x:1000:1001::/home/inahy:/bin/bash

C'était mon uid quand je me suis connecté à ssh. Actuellement, il est su à [inahy] -> [root]. Pourquoi allez-vous l'utiliser?

Impressions

Je ne me sentais pas bien et j'ai dû copier et coller. J'aimerais apporter des corrections plus tard.

référence

http://man7.org/linux/man-pages/man5/proc.5.html https://gihyo.jp/admin/serial/01/linux_containers/0016 http://manpages.ubuntu.com/manpages/bionic/ja/man5/proc.5.html

Recommended Posts

Lire tout le contenu de proc / [pid] ~ De cwd à loginuid ~
Lire tout le contenu de proc / [pid] ~ De setgroups à wchan ~
Lire tout le contenu de proc / [pid] ~ De map_files à numa_maps ~
Lire tout le contenu de proc / [pid] ~ De oom_adj à sessionid ~
Lire tout le contenu de proc / [pid] ~ De attr à cpuset ~
Lire tout le contenu de proc / [pid]
Modèle de script python pour lire le contenu du fichier
Après tout, l'histoire du retour de Linux à Windows
Récupérer le contenu de git diff depuis python
De l'introduction de pyethapp à l'exécution du contrat
Histoire de passer de Pipenv à la poésie
[Bash] Passez le contenu du fichier aux variables pour chaque colonne avec while read
Le mur lors du passage du service Django de Python 2.7 à la série Python 3
Essayez d'obtenir le contenu de Word avec Golang
DataNitro, implémentation de la fonction de lecture des données de feuille
Lisez également le contenu de arch / arm / kernel / swp_emulate.c
J'ai lu la référence Chainer (mise à jour de temps en temps)
[Ubuntu] Comment supprimer tout le contenu du répertoire
Comment calculer la quantité de calcul appris de ABC134-D
Paramètres pour entrer et déboguer le contenu de la bibliothèque avec VS Code
[Introduction à matplotlib] Lire l'heure de fin à partir des données COVID-19 ♬
Déployer Django + React de zéro sur GKE: Table des matières
Comment voir le contenu du fichier ipynb du notebook Jupyter
L'histoire de la copie de données de S3 vers TeamDrive de Google
Comment connecter le contenu de la liste dans une chaîne de caractères
Simulation du contenu du portefeuille
Je veux lire la version html de la version "OpenCV-Python Tutorials" OpenCV 3.1
[EC2] Comment installer Chrome et le contenu de chaque commande
Exportez le contenu de ~ .xlsx dans le dossier en HTML avec Python
[TensorFlow 2] Comment vérifier le contenu de Tensor en mode graphique
De l'introduction de JUMAN ++ à l'analyse morphologique du japonais avec Python
Créez une fonction pour obtenir le contenu de la base de données dans Go
Trouvez tous les modèles pour extraire un nombre spécifique de l'ensemble
[Python] Un programme qui fait pivoter le contenu de la liste vers la gauche
Comprendre le contenu du pipeline sklearn
Existence du point de vue de Python
Comment lire l'ensemble de données SNLI
Voir le contenu de Kumantic Segumantion
Supplément à l'explication de vscode
De l'introduction de l'API GoogleCloudPlatform Natural Language à son utilisation
À propos de l'ordre d'apprentissage des langages de programmation (de débutant à intermédiaire) Partie 2
[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
[Reconnaissance d'image] Comment lire le résultat de l'annotation automatique avec VoTT
Comment comparer si le contenu des objets dans scipy.sparse.csr_matrix est le même
Paramètre pour entrer le contenu de la bibliothèque avec pytest et effectuer un test de débogage
Téléchargez collectivement les images collées dans le corps de la pull request sur Github
Obtenez le titre de la chanson à partir du titre de la vidéo que vous avez chanté