permissão negada ao executar um binário

1

Eu usei estas instruções para instalar o mongodb na minha máquina OS X. Eu não criei os arquivos de propriedade do root, mas usei meu usuário local (markdsievers) e instalei em /usr/local/mongodb e usr/local/mongodb_data . Eu chmod'ed e chown'ed todos os arquivos e subdiretórios deles para rwxrwxr-x markdsievers staff .

Como usuário markdsievers posso inicializar o banco de dados sem erro usando:

$ sudo mongod --dbpath=/usr/local/mongodb_data

No entanto, se eu começar com:

$ mongod --dbpath=/usr/local/mongodb_data/

Eu recebo:

Unable to create / open lock file for lockfilepath: /usr/local/mongodb_data/mongod.lock errno:13 Permission denied

O que estou perdendo aqui?

    
por markdsievers 10.07.2011 / 21:16

2 respostas

3

Primeiro, um aparte: armazenar seus dados do mongo em /usr/local/mongodb_data parece um pouco estranho; a maior parte do armazenamento nos bastidores está em /var/ ou, para aplicativos auto-instalados, /var/local/ . Veja hier(7) ou o Padrão de Hierarquia do Sistema de Arquivos para mais detalhes. (A ESF tem um nome errado: porque é descritiva, não prescritiva, não é um padrão. Mas vale a pena ler.)

Seu arquivo mongodb.lock pertence a root porque você executou:

sudo mongod --dbpath=/usr/local/mongodb_data

sudo(8) executa programas com um id de usuário efetivo diferente (veja seteuid(2) , setreuid(2) para detalhes). Como você não especificou nenhum outro usuário com a opção -u , sudo(8) assumiu a conta root . Assim, seu arquivo de bloqueio foi criado com root owner e group. (Compare sudo id com id para ver o que muda.)

O que é estranho é que o arquivo de bloqueio deveria ter sido removido quando você parou o banco de dados mongod . Certifique-se de que você está parando corretamente - não apenas para que os arquivos de bloqueio sejam removidos -, mas também para que você saiba que os dados foram salvos corretamente no disco.

    
por 11.07.2011 / 02:12
2

Faça um ls -l /usr/local/mongodb_data/mongod.lock

Aposto que desde que você executou primeiro como usuário "root", esse arquivo já existe e pertence a root. Exclua e aposto que funciona como usuário "markdsievers".

    
por 10.07.2011 / 23:53