É 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.