web-dev-qa-db-fra.com

ps error / proc doit être monté - mais fonctionne en tant que root

Ceci est une boîte OpenVZ VPS. Par exemple:

$ ps
Error: /proc must be mounted
  To mount /proc at boot you need an /etc/fstab line like:
  /proc   /proc   proc    defaults
 In the meantime, run "mount /proc /proc -t proc"

$ Sudo ps
[Sudo] password for ....:
 PID TTY          TIME CMD
 4699 pts/2    00:00:00 Sudo
 4700 pts/2    00:00:00 ps

Cela n'a commencé que récemment (probablement depuis un apt-get upgrade). J'ai aussi récemment lancé locale-gen, mais je ne vois pas en quoi cela affecterait les choses.

uname -a
Linux stormvz1 2.6.32-042stab072.10 #1 SMP Wed Jan 16 18:54:05 MSK 2013 x86_64 x86_64 x86_64 GNU/Linux

cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04.2 LTS"

MIS À JOUR

J'ai essayé de changer/proc, mais n'a pas aidé:

$ ls -ld /proc
dr-xr-xr-x 98 root root 0 Apr  9 20:11 /proc
$ Sudo chmod 755 /proc
[Sudo] password for ....:
$ ls -ld /proc
drwxr-xr-x 98 root root 0 Apr  9 20:11 /proc
$ ps
Error: /proc must be mounted

Ont également fait plusieurs redémarrages - semble en grande partie ok, mais juste ce "problème"

proc est en fstab, mais semble ok:

grep proc /etc/fstab
proc  /proc       proc    defaults    0    0

Les fichiers dans /proc ressemblent à ceci - ce qui semble correct pour mon œil inexpérimenté:

$ Sudo ls -la /proc
[Sudo] password for kimptoc:
total 4
drwxr-xr-x 105 root     root        0 Apr  9 20:11 .
drwxr-xr-x  22 root     root     4096 Mar  4 19:18 ..
dr-xr-xr-x   6 root     root        0 Apr  9 20:11 1
dr-xr-xr-x   6 root     root        0 Apr  9 20:11 108
dr-xr-xr-x   6 postfix  postfix     0 Apr 11 02:06 12337
dr-xr-xr-x   6 root     root        0 Apr  9 20:11 139
dr-xr-xr-x   6 root     root        0 Apr  9 20:11 140
dr-xr-xr-x   6 root     root        0 Apr  9 20:11 173
dr-xr-xr-x   6 root     root        0 Apr  9 20:11 2
dr-xr-xr-x   6 www-data www-data    0 Apr  9 21:02 2184
dr-xr-xr-x   6 root     root        0 Apr  9 20:11 251
dr-xr-xr-x   6 root     root        0 Apr  9 20:11 285
dr-xr-xr-x   6 root     root        0 Apr  9 20:11 3
dr-xr-xr-x   6 postfix  postfix     0 Apr 11 07:20 30162
dr-xr-xr-x   6 root     root        0 Apr 11 07:20 30784
dr-xr-xr-x   6 postfix  postfix     0 Apr 11 07:20 30825
dr-xr-xr-x   6 postfix  postfix     0 Apr 11 07:20 30827
dr-xr-xr-x   6 postfix  postfix     0 Apr 11 07:20 30831
dr-xr-xr-x   6 kimptoc  kimptoc     0 Apr 11 07:20 30844
dr-xr-xr-x   6 kimptoc  kimptoc     0 Apr 11 07:20 30845
dr-xr-xr-x   6 root     kimptoc     0 Apr 11 07:20 30907
dr-xr-xr-x   6 root     root        0 Apr 11 07:20 30908
dr-xr-xr-x   6 root     root        0 Apr  9 20:11 315
dr-xr-xr-x   6 root     root        0 Apr  9 20:11 317
dr-xr-xr-x   6 syslog   syslog      0 Apr  9 20:11 401
dr-xr-xr-x   6 bind     bind        0 Apr  9 20:11 419
dr-xr-xr-x   6 root     root        0 Apr  9 20:11 527
dr-xr-xr-x   6 postfix  postfix     0 Apr  9 20:11 531
dr-xr-xr-x   6 mongodb  nogroup     0 Apr  9 22:10 5372
dr-xr-xr-x   6 root     root        0 Apr  9 20:11 557
dr-xr-xr-x   6 root     root        0 Apr  9 20:11 559
dr-xr-xr-x   6 root     root        0 Apr  9 20:11 663
dr-xr-xr-x   6 www-data www-data    0 Apr  9 20:11 667
dr-xr-xr-x   6 root     root        0 Apr  9 20:11 86
-r-xr-xr--   1 root     root        0 Apr 11 07:20 cgroups
-r-xr-xr--   1 root     root        0 Apr 11 07:20 cmdline
-r-xr-xr--   1 root     root        0 Apr 11 07:20 cpuinfo
-r-xr-xr--   1 root     root        0 Apr 11 07:20 devices
-r-xr-xr--   1 root     root        0 Apr 11 07:20 fairsched
-r-xr-xr--   1 root     root        0 Apr 11 07:20 fairsched2
-r-xr-xr--   1 root     root        0 Apr 11 07:20 filesystems
dr-xr-xr--   3 root     root        0 Apr 11 07:20 fs
-r--------   1 root     root        0 Apr 11 07:20 kmsg
-r--r--r--   1 root     root        0 Apr 11 07:20 loadavg
-r-xr-xr--   1 root     root        0 Apr 11 07:20 locks
-r-xr-xr--   1 root     root        0 Apr 11 07:20 meminfo
-r-xr-xr--   1 root     root        0 Apr 11 07:20 modules
lrwxrwxrwx   1 root     root       11 Apr 11 07:20 mounts -> self/mounts
lrwxrwxrwx   1 root     root        8 Apr 11 07:20 net -> self/net
-r--r--r--   1 root     root        0 Apr 11 07:20 partitions
lrwxrwxrwx   1 root     root       64 Apr  9 20:11 self -> 30908
-r-xr-xr--   1 root     root        0 Apr 11 07:20 stat
-r-xr-xr--   1 root     root        0 Apr 11 07:20 swaps
dr-xr-xr-x   1 root     root        0 Apr  9 20:11 sys
--wx--x---   1 root     root        0 Apr 11 07:20 sysrq-trigger
dr-xr-xr--   2 root     root        0 Apr 11 07:20 sysvipc
-r-xr-x---   1 root     root        0 Apr 11 07:20 uptime
-r-xr-xr--   1 root     root        0 Apr 11 07:20 user_beancounters
-r--r--r--   1 root     root        0 Apr 11 07:20 version
-r-xr-xr--   1 root     root        0 Apr 11 07:20 vmstat
dr-xr-x---   3 root     root        0 Apr 11 07:20 vz

MISE À JOUR

J'ai reconstruit le VPS à la fin :)

2
Chris Kimpton

Je fais ça:

strace ps aux | wc -l

Je trouve :

enter image description here

2
user520651

Il semble que vous, ou peut-être un script buggy fonctionnant en tant que root, a modifié les autorisations de /proc. Vérifiez-les: ls -ld /proc

Cela devrait résoudre le problème:

Sudo chmod 755 /proc

Si cela ne suffit pas, un redémarrage est probablement le plus facile. Vous pourrez peut-être boiter.

Vérifiez si les autres fichiers de /proc sont également affectés: ls -l /proc. Selon les fichiers affectés, les éléments suivants peuvent suffire à corriger (cette liste n’est pas exhaustive, mais seulement la plus importante).

Sudo chmod -R 755 /proc/[a-z]*
find /proc -type d -exec Sudo chmod +x {} +
Sudo chmod 600 /proc/kcore /proc/kmsg /proc/kpagecount /proc/kpageflags /proc/vmallocinfo
Sudo chmod 200 /proc/sysrq-trigger

Assurez-vous que vous n'avez pas de ligne pour /proc dans /etc/fstab (normalement inutile car le script de démarrage le monte quand même au début du processus de démarrage). Sinon, il ne contient que après (et éventuellement 0 0 à la fin):

proc  /proc  proc  defaults

Si votre fstab est correct et qu'un redémarrage ne résout pas tout, vous avez un problème plus grave. Postez au moins la sortie de Sudo ls -la /proc et uname -a.

2
Gilles

J'ai eu ce problème exact aujourd'hui. Il s’est avéré qu’il s’agissait d’un profil d’application incomplet pour ps. En utilisant Sudo aa-logprof j’ai eu ce nouveau profil dans /etc/apparmor.d/, qui a restauré ps à son état normal:

# Last Modified: Thu Mar 14 10:49:01 2019
#include <tunables/global>

/bin/ps {
  #include <abstractions/base>
  #include <abstractions/consoles>
  #include <abstractions/nameservice>
  #include <abstractions/totem>

  capability sys_ptrace,

  /bin/ps mr,
  /etc/ld.so.preload r,
  /proc/*/cmdline r,
  /proc/*/stat r,
  /proc/*/status r,
  /proc/*/wchan r,
  /proc/filesystems r,
  /proc/meminfo r,
  /proc/sys/kernel/osrelease r,
  /proc/sys/kernel/pid_max r,
  /proc/tty/drivers r,
  /proc/uptime r,

}

N'oubliez pas de:

  • Sauvegardez votre ancien profil avant d’en essayer un nouveau.
  • Redémarrez apparmor avec Sudo service apparmor restart ou /etc/init.d apparmor restart après toute modification.