Dando permissão ao nginx

1,628 views
Skip to first unread message

Edson Lima

unread,
Dec 20, 2012, 7:43:54 AM12/20/12
to rail...@googlegroups.com
Estou fazendo deploy com capistrano, usando o usuário root e estou sempre precisando dar permissão na pasta depois que faço o deploy. Para resolver, criei um usuário deployer e vou dar permissão para seu grupo acessar a pasta da aplicação. O problema está sendo adicionar o Nginx neste grupo deployer.

Obrigado pela atenção.

Oseias Ferreira

unread,
Dec 20, 2012, 8:19:00 AM12/20/12
to rail...@googlegroups.com
Adicionar um usuário a um grupo é simples.
usermod -a -G grupo usuario

No diretório você precisa dar permissão para este grupo.
chmod g=+rwx seu_diretorio

Mas por que você faz deploy como root?
Você usa passenger?

--
Oséias Ferreira.

Edson Lima

unread,
Dec 20, 2012, 8:41:57 AM12/20/12
to rail...@googlegroups.com
não quero mais fazer como root. Vou usar o usuário deployer. Mas como dar permissão ao nginx na pasta?

Everaldo Gomes

unread,
Dec 20, 2012, 8:47:21 AM12/20/12
to rail...@googlegroups.com
chown ?


2012/12/20 Edson Lima <edson...@outlook.com>
--
Você recebeu essa mensagem porquê está inscrito no Google
Groups "rails-br".
Para enviar uma mensagem para o grupo, mande um email para rail...@googlegroups.com
Para se descadastrar, mande um e-mail para
rails-br+u...@googlegroups.com
Visite o grupo em http://groups.google.com/group/rails-br?hl=pt-BR
Leia nossa política de uso: http://goo.gl/YGgt7

Reinaldo Oliveira

unread,
Dec 20, 2012, 8:47:48 AM12/20/12
to rail...@googlegroups.com
Se o nginx foi instalado com o usuário root então ele já tem essa permissão...
No meu server eu tenho algo parecido, fiz a instalação do nginx com root e tenho alguns usuários de deploy. Configurei o capistrano para utilizar um desses usuários e tudo rola normalmente.

Att.
Reinaldo Oliveira


Oseias Ferreira

unread,
Dec 20, 2012, 10:49:26 AM12/20/12
to rail...@googlegroups.com
Geralmente o nginx tem que ser instalado como root.
Em sistemas linux normais, se você não for root, não poderá abrir portas TCP abaixo de 1024.
Por medidas de segurança, pode-se usar outro usuário para executar um servidor.
Então é iniciado uma instancia master como root, para abrir a porta 80, e inicia outra(s) instancia(s) com o usuário que você especificar no /etc/nginx.conf

Veja:
http://wiki.nginx.org/FullExample
user www www;

Neste caso ele executará com o usuário www e grupo www.

O negócio é que o nginx sozinho não toca o rails.
Você precisa de usar outro "server" e o nginx funciona apenas como uma "porta" de entrada para sua app.
Por isto perguntei se você usa passenger, pois ele encarrega-se de abrir uma instancia do Rack com o próprio usuário que você fez deploy, o que te isenta de ter que preocupar-se com estas permissões.
Você faz o deploy com seu usuário e as permissões já estarão ok.

Se você fez um deploy como root, é provável que sua aplicação esteja com permissão de root, e neste caso o seu usuário não terá permissões de escrita onde é necessário.
Neste caso, basta você como root setar você como usuário da app.

sudo chmod -R seu_usuario suaApp
o comando acima muda o usuário para seu_usuario recursivamente.

--
Oséias Ferreira.

Edson Lima

unread,
Dec 20, 2012, 12:42:51 PM12/20/12
to rail...@googlegroups.com
Realmente uso o passenger. 
no comando: sudo chmod -R seu_usuario suaApp : onde vc coloca "suaApp", seria a pasta da aplicação, o nginx... neste ponto estou me enrolando.

Oseias Ferreira

unread,
Dec 20, 2012, 1:28:03 PM12/20/12
to Edson Lima
Antes de fazer qualquer coisa veja se realmente precisa:
la -la -d suaApp

Na verdade é:
sudo chown -R seu-usuario suaApp
É no diretório acima da sua aplicação.

--
Oséias Ferreira.
Reply all
Reply to author
Forward
0 new messages