ps error / proc должен быть смонтирован - но работает как root

Это окно OpenVZ VPS. Например:

$ 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

Это только недавно началось (возможно, с apt-get upgrade). Я также недавно запускал locale-gen, но я не понимаю, как это повлияет на ситуацию.

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"

ОБНОВЛЕНО

Пробовал изменить / proc, но не помогло:

$ 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

Также сделали несколько перезагрузок - в основном это нормально, но только этот «глюк»

]

proc находится в fstab, но, кажется, все в порядке:

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

Файлы в /proc выглядят так - что хорошо для моего неподготовленного глаза:

$ 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

ОБНОВЛЕНИЕ

Я перестроил VPS в конце :))

2
задан 21 March 2016 в 20:50

3 ответа

Похоже, вы, или, возможно, глючный скрипт, работающий от имени пользователя root, изменили права доступа /proc. Проверьте их: ls -ld /proc

Это должно исправить это:

sudo chmod 755 /proc

Если этого недостаточно, перезагрузка, вероятно, проще всего. Вы можете хромать.

Проверьте, не затронуты ли другие файлы в /proc: ls -l /proc. В зависимости от того, какие файлы были затронуты, исправления может быть достаточно (это не полный список, а только самый важный).

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

Убедитесь, что у вас нет строки для /proc в /etc/fstab (обычно это не нужно, потому что скрипт запуска монтирует ее на ранних этапах процесса загрузки в любом случае), или, если вы это делаете, она содержит только следующее (и, возможно, 0 0 в конце):

proc  /proc  proc  defaults

Если ваш fstab правильный и перезагрузка не решает все проблемы, у вас есть большая проблема. Публикуйте хотя бы выходные данные sudo ls -la /proc и uname -a.

0
ответ дан 21 March 2016 в 20:50

Я делаю это:

strace ps aux | wc -l

Я нахожу:

enter image description here

0
ответ дан 21 March 2016 в 20:50

Сегодня у меня была эта точная проблема. Это оказалось неполным профилем apparmor для PS. Используя sudo aa-logprof я получил этот новый профиль в/etc/apparmor.d/, который восстановил PS к его нормальному:

# 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,

}

не забывайте:

  • Резервное копирование Ваш старый профиль прежде, чем попробовать новый.
  • Перезапуск apparmor с sudo service apparmor restart или /etc/init.d apparmor restart после внесения любых изменений.
0
ответ дан 14 October 2019 в 14:14

Другие вопросы по тегам:

Похожие вопросы: