Ubuntu Server 12.04 + ProftpD... Como isolar pastas de usuário?

Iniciado por wemersonrv, 16 de Novembro de 2012, 10:06

tópico anterior - próximo tópico

wemersonrv

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?


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?

irtigor


wemersonrv

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:
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:
<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?

zekkerj

CitarEssa 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

wemersonrv

Bem, eu criei o usuário no mesmo grupo... já não teria que ter acesso?

zekkerj

#5
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.

$ 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
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

wemersonrv

Então basicamente tenho que dar um chmod g+x -R a partir do /home ? e um chmod g+r em home/casadaarvore/pasta

zekkerj

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

wemersonrv

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?

zekkerj

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

wemersonrv

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.

wemersonrv

Complementando...

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

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

wemersonrv

FTP
Resposta: 530 Login incorrect.
Erro: Erro crítico
Erro: Não foi possível conectar ao servidor


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

zekkerj

É 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