Autor Tópico: Ubuntu Server 12.04 + ProftpD... Como isolar pastas de usuário?  (Lida 10079 vezes)

Offline wemersonrv

  • Usuário Ubuntu
  • *
  • Mensagens: 53
    • Ver perfil
Ubuntu Server 12.04 + ProftpD... Como isolar pastas de usuário?
« Online: 16 de Novembro de 2012, 10:06 »
Instalei o proftpd no meu servidor e todos os usuários estão sem probloemas. Porém, queria isolar o acesso aos usuários a somente a pasta deles, como fazer?


Código: [Selecionar]
Ambiente: Ubuntu Server 12.04
Servidor FTP: ProFTPD
Pasta de  usuários: /home

Preciso isolar acesso dos usuários a somente sua pasta... exemplo: /home/wemerson, /home/pedro, /home/joao; etc... de forma que um não tenha acesso às pastas dos outros.

Como faço?
« Última modificação: 16 de Novembro de 2012, 15:58 por wemersonrv »

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Ubuntu Server 12.04 + ProftpD... Como isolar pastas de usuário?
« Resposta #1 Online: 16 de Novembro de 2012, 12:39 »
Altere o DefaultRoot.

Offline wemersonrv

  • Usuário Ubuntu
  • *
  • Mensagens: 53
    • Ver perfil
Re: Ubuntu Server 12.04 + ProftpD... Como isolar pastas de usuário?
« Resposta #2 Online: 19 de Novembro de 2012, 10:56 »
Valeu parceiro!!! Deu certinho!

Agora surgiu uma coisa nova... A chefia quer disponibilizar uma área dentro do site para um cliente utilizar... apenas para envio/recebimento de arquivos das artes criadas aqui na agencia...

Entao quero criar uma conta de ftp "travada" numa pasta específica onde o cliente acessa em: http://www.meusite.com.br/cliente e no acesso ftp dele ele tenha acesso somente a essa pasta... Essa pasta já existe e é de outro usuário.

Usuário que já existe: casadaarvore
Pasta do usuário que quero liberar para outro(Somente FTP): /home/casadaarvore/pasta

passos que tentei:
1) Adicionar usuário ftp:
Código: [Selecionar]
adduser --shell /bin/false --no-create-home -ingroup casadaarvore casadaarvore01
2) Ajustar o proftpd.conf para permitir o usuário na pasta, adicionando o código abaixo:
Código: [Selecionar]
<Directory /home/casadaarvore/pasta/>
   <limit ALL>
      AllowUser casadaarvore
      AllowUser casadaarvore01
   </Limit>
</Directory>

Porém ao tentar conectar usando um cliente de ftp, acusa 530 Login incorret.

O que eu tô deixando passar?

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Ubuntu Server 12.04 + ProftpD... Como isolar pastas de usuário?
« Resposta #3 Online: 19 de Novembro de 2012, 10:59 »
Citar
Essa pasta já existe e é de outro usuário.
Mas esse usuário novo tem acesso a ela, correto?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline wemersonrv

  • Usuário Ubuntu
  • *
  • Mensagens: 53
    • Ver perfil
Re: Ubuntu Server 12.04 + ProftpD... Como isolar pastas de usuário?
« Resposta #4 Online: 19 de Novembro de 2012, 11:14 »
Bem, eu criei o usuário no mesmo grupo... já não teria que ter acesso?

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Ubuntu Server 12.04 + ProftpD... Como isolar pastas de usuário?
« Resposta #5 Online: 19 de Novembro de 2012, 11:19 »
Não necessariamente. Você deu permissão ao grupo de acessar essas pastas?

chmod g+rx /home/casadaarvore /home/casadaarvore/pasta

Note que a permissão de leitura não é suficiente para que um usuário ou grupo acessem arquivos em uma pasta; eles precisam ter permissão de execução na pasta para que vc possa acessar seus arquivos ou sub-pastas.

Note também que para acessar um arquivo num caminho, vc precisa ter permissão de execução em todas as pastas do caminho; assim, por exemplo, pra acessar o arquivo "/home/user/pasta1/pasta2/pasta3/arquivo", vc precisa ter permissão de execução em "/home", "/home/user", "/home/user/pasta1", "/home/user/pasta1/pasta2" e "/home/user/pasta1/pasta2/pasta3".

A permissão de leitura só é necessária para que você liste o conteúdo da pasta, e somente na pasta que vc quer listar. No exemplo acima, pra poder listar o mesmo diretório, só "/home/user/pasta1/pasta2/pasta3" precisa ter permissão de leitura; vc não precisa ter essa permissão em nenhum componente do caminho.

Código: [Selecionar]
$ namei -m /home/user/pasta1/pasta2/pasta3/arquivo
f: /home/user/pasta1/pasta2/pasta3/arquivo
 drwxr-xr-x /
 drwxr-xr-x /home
 drwx--x--- /home/user
 drwx--x--- /home/user/pasta1
 drwx--x--- /home/user/pasta1/pasta2
 drwxr-x--- /home/user/pasta1/pasta2/pasta3
 -rw-r--r-- /home/user/pasta1/pasta2/pasta3/arquivo

$ ls /home/user/pasta1/pasta2/pasta3
arquivo

$ cat /home/user/pasta1/pasta2/pasta3/arquivo
Conteudo de arquivo

$ ls /home/user/pasta1/pasta2
ls: não foi possível abrir o diretório /home/user/pasta1/pasta2/: Permissão negada
« Última modificação: 19 de Novembro de 2012, 11:31 por zekkerj »
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline wemersonrv

  • Usuário Ubuntu
  • *
  • Mensagens: 53
    • Ver perfil
Re: Ubuntu Server 12.04 + ProftpD... Como isolar pastas de usuário?
« Resposta #6 Online: 19 de Novembro de 2012, 11:28 »
Então basicamente tenho que dar um chmod g+x -R a partir do /home ? e um chmod g+r em home/casadaarvore/pasta

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Ubuntu Server 12.04 + ProftpD... Como isolar pastas de usuário?
« Resposta #7 Online: 19 de Novembro de 2012, 11:32 »
Não aconselho o "-R", pois vai dar permissão de execução em tudo, e não só em "/home/casadaarvore".
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline wemersonrv

  • Usuário Ubuntu
  • *
  • Mensagens: 53
    • Ver perfil
Re: Ubuntu Server 12.04 + ProftpD... Como isolar pastas de usuário?
« Resposta #8 Online: 19 de Novembro de 2012, 11:35 »
Realmente... foi só uma forma de comentar... reformulando... se a pasta tivesse alguns niveis a mais hierarquicamente

/home, /home/casadaarvore, /home/casadaarvore/pasta1, /home/casadaarvore/pasta1/pasta2, /home/casadaarvore/pasta1/pasta2/comum... todas essas pastas têm que estar com permissão de escrita para o grupo... e a /home/casadaarvore/pasta1/pasta2/comum também tem que estar com permissão de leitura para o grupo...

Resumindo é isso?

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Ubuntu Server 12.04 + ProftpD... Como isolar pastas de usuário?
« Resposta #9 Online: 19 de Novembro de 2012, 11:56 »
Permissão de escrita só é necessária se vc pretende alterar o diretório --- criar, apagar ou renomear arquivos.

Eu recomendo que vc só dê permissão de escrita na própria pasta que o outro usuário vai acessar.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline wemersonrv

  • Usuário Ubuntu
  • *
  • Mensagens: 53
    • Ver perfil
Re: Ubuntu Server 12.04 + ProftpD... Como isolar pastas de usuário?
« Resposta #10 Online: 19 de Novembro de 2012, 12:02 »
Certo...
Bem... as permissões tão ajustadas... mas não tá acessando via cliente de ftp (filezilla).

sem as permissões adequadas ainda assim acessaria, só não listaria ou não permitiria alterar/excluir arquivos...

Então é algum detalhe da parte de ftp que eu não achei... conforme eu falei anteriormente tá acusando 530 Login incorret quando tento conectar com o usuario criado.

Offline wemersonrv

  • Usuário Ubuntu
  • *
  • Mensagens: 53
    • Ver perfil
Re: Ubuntu Server 12.04 + ProftpD... Como isolar pastas de usuário?
« Resposta #11 Online: 20 de Novembro de 2012, 09:33 »
Complementando...

Tanto login via ftp quanto via ssh nesse usuário tá sendo recusado... que lambança que eu fiz?

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Ubuntu Server 12.04 + ProftpD... Como isolar pastas de usuário?
« Resposta #12 Online: 20 de Novembro de 2012, 10:33 »
Recusado... alguma mensagem de erro em particular?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline wemersonrv

  • Usuário Ubuntu
  • *
  • Mensagens: 53
    • Ver perfil
Re: Ubuntu Server 12.04 + ProftpD... Como isolar pastas de usuário?
« Resposta #13 Online: 20 de Novembro de 2012, 10:56 »
FTP
Código: [Selecionar]
Resposta: 530 Login incorrect.
Erro: Erro crítico
Erro: Não foi possível conectar ao servidor

SSH
Código: [Selecionar]
Could not chdir to home directory /home/casadaarvore01: No such file or directory
connection to casadaarvore.net closed

Como pode ver na mensagem, tá acusando que não existe home... beleza, eu criei o usuário sem home mesmo pois é esse usuário só terá acesso à pasta do outro usuário e mais nada.

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Ubuntu Server 12.04 + ProftpD... Como isolar pastas de usuário?
« Resposta #14 Online: 20 de Novembro de 2012, 11:04 »
É um usuário que não tem acesso ao seu home dir, certo?

Pelo que vc explicou vc tem um usuário "casadaarvore" e um segundo usuário "xxzzy" que deveria ter seu acesso em uma sub-pasta de /home/casadaarvore, e não diretamente aí.

Bem, se for isso, eu acho que vc deve apontar o home dir de "xxzzy" diretamente p/ essa pasta, e não para /home/casadaarvore.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D