Назад | Перейти на главную страницу

Solaris 11 / proc в разрешении отказано

У меня есть сервер Solaris 11.1 с базой данных Oracle. Я хочу прочитать среду работающего процесса оракула как пользователь оракула, например:

$ id
uid=100(oracle) gid=100(oinstall)
$ ps -fuoracle | grep pmon
oracle  1651     1   0 10:25:37 ?           0:01 ora_pmon_TESTDB
$ pargs -e 1651
pargs: cannot examine 1651: permission denied
$ ls -ld /proc/1651
dr-x--x--x   5 oracle   oinstall     864 Nov 23 10:25 /proc/1651

Как я могу предоставить Oracle разрешение на чтение процессов, которыми он уже владеет?

Чтобы ответить на вопрос Иана, файлы в каталоге PID имеют разные разрешения, но все они по-прежнему принадлежат oracle: oinstall, например:

dr-x------   2 oracle   oinstall      32 Nov 23 10:25 contracts
-r--------   1 oracle   oinstall      36 Nov 23 10:25 cred
--w-------   1 oracle   oinstall       0 Nov 23 10:25 ctl
lr-x------   1 oracle   oinstall       0 Nov 23 10:25 cwd ->
dr-x------   2 oracle   oinstall     528 Nov 23 10:25 fd
-r--------   1 oracle   oinstall       0 Nov 23 10:25 ldt
-r--r--r--   1 oracle   oinstall     120 Nov 23 10:25 lpsinfo
-r--------   1 oracle   oinstall     816 Nov 23 10:25 lstatus
-r--r--r--   1 oracle   oinstall     536 Nov 23 10:25 lusage
dr-xr-xr-x   3 oracle   oinstall      64 Nov 23 10:25 lwp
-r--------   1 oracle   oinstall    9504 Nov 23 10:30 map
dr-x------   2 oracle   oinstall    1824 Nov 23 10:25 object
-r--------   1 oracle   oinstall  258800 Nov 23 10:25 pagedata
dr-x------   2 oracle   oinstall    2352 Nov 23 10:25 path
-r--------   1 oracle   oinstall      72 Nov 23 10:25 priv
-r--r--r--   1 oracle   oinstall     336 Nov 23 10:25 psinfo
-r--------   1 oracle   oinstall    9504 Nov 23 10:25 rmap
lr-x------   1 oracle   oinstall       0 Nov 23 10:25 root ->
-r--------   1 oracle   oinstall    2304 Nov 23 10:25 sigact
-r--------   1 oracle   oinstall    1136 Nov 23 10:25 status
-r--r--r--   1 oracle   oinstall     256 Nov 23 10:25 usage
-r--------   1 oracle   oinstall       0 Nov 23 10:25 watch
-r--------   1 oracle   oinstall  119016 Nov 23 10:25 xmap

В Solaris теперь используются наборы привилегий (см .: 'man привилегии' на 'man ppriv'). Команда pargs могла унаследовать меньше привилегий (от оболочки), чем проверенный процесс 1651 имел такую ​​же эффективность. Фактически это вызвало отказ в разрешениях.

Для проверки привилегий процесса можно использовать команду ppriv:

ppriv -v ...

Установить:

ppriv -s ... ...

Чтобы перечислить все привилегии с их описанием:

ppriv -lv

Чтобы понять, почему существует проблема, вы можете использовать:

ppriv -D -e паргс -e 1651

Вам необходимо проверить права доступа к файлам в каталоге / proc / 1651. я так думаю psinfo файл содержит соответствующую информацию, поэтому проверьте его разрешения.