Por que o usuário reportado é “root” quando um “usuário normal” executa “ps ux” no OS X? Isso é um comportamento normal?

3

Estou executando o OS X 10.6.1. Quando eu estou logado como um usuário normal da equipe do grupo e fazer um

ps ux

lista meu comando ps ux como sendo executado pelo root:

snies   181   0.0  0.3  2774328  12500   ??  S     6:00PM   0:20.96 /System/Library...
root   1673   0.0  0.0  2434788    508 s001  R+    8:16AM   0:00.00 ps ux
snies   177   0.0  0.0  2457208    984   ??  Ss    6:00PM   0:00.52 /sbin/launchd
snies  1638   0.0  0.0  2435468   1064 s001  S     8:13AM   0:00.03 -bash

Isso é um comportamento normal? E se sim porque? Por favor, note que o usuário não é uma conta de administrador e não é capaz de sudo.

    
por snies 23.03.2010 / 08:32

1 resposta

10

É normal para o Mac OS X. Costumava ser normal em quase todos os sistemas Unix-oid. Ele é executado como root sem sudo porque o binário ps é configurado para ser executado como root (por exemplo, em meu sistema 10.4):

% ls -l $(which ps)
-rwsr-xr-x   1 root  wheel  31932 Mar 20  2005 /bin/ps

(o s no lugar da coluna user-owner x significa que ele é set-uid (e executável pelo usuário), o proprietário é root; isso significa que não importa quem o execute, ele será executar como root)

Tradicionalmente (e ainda o caso em sistemas Mac OS X), ele deve ser executado como raiz, pois as informações necessárias só estão disponíveis por meio de dispositivos acessíveis por raiz (por exemplo, / dev / kmem) ou por chamadas do sistema raiz. Isso está correto porque (a menos que haja erros na implementação), o programa ps é escrito de uma forma que não permite que os chamadores obtenham informações que de outra forma não teriam.

Outros sistemas possuem outros mecanismos que fornecem acesso às informações que o ps precisa e, portanto, não precisam de binários configurados em ps . Notavelmente, o sistema de arquivos virtual / proc nos sistemas Linux (e outros) pode publicar informações de kernel muito refinadas com permissões igualmente refinadas . Esse modelo é suficiente para permitir que um ps não privilegiado obtenha tudo o que precisa sem permitir acesso aos bits mais sensíveis das informações do kernel.

    
por 23.03.2010 / 11:00