operações chroot vsftpd no Ubuntu 12.04

operações chroot vsftpd no Ubuntu 12.04

Não estou familiarizado com sistemas baseados em deb, então peço desculpas se a solução for simples.

Estou tentando configurar o vsftpd para prender os usuários em seus diretórios pessoais. Recebo 500 OOPS: vsftpd: recusando-se a executar com raiz gravável dentro de chroot()

Eu pesquiso esse problema e descobri que a solução comum é usar o backport fornecido pelo thefrontiergroup assim:

sudo add-apt-repository ppa:thefrontiergroup/vsftpd

Quando faço isso, recebo um erro python:

You are about to add the following PPA to your system:
 vsftpd 2.3.5 with the allow_writeable_chroot feature backported from vsftpd 3.
 More info: https://launchpad.net/~thefrontiergroup/+archive/vsftpd
Press [ENTER] to continue or ctrl-c to cancel adding it

Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/dist-packages/softwareproperties/ppa.py", line 99, in run
    self.add_ppa_signing_key(self.ppa_path)
  File "/usr/lib/python2.7/dist-packages/softwareproperties/ppa.py", line 132, in  add_ppa_signing_key
    tmp_keyring_dir = tempfile.mkdtemp()
  File "/usr/lib/python2.7/tempfile.py", line 322, in mkdtemp
    name = names.next()
  File "/usr/lib/python2.7/tempfile.py", line 141, in next
    letters = [choose(c) for dummy in "123456"]
  File "/usr/lib/python2.7/random.py", line 274, in choice
    return seq[int(self.random() * len(seq))]  # raises IndexError if seq is empty
ValueError: cannot convert float NaN to integer

Tentando encontrar outra solução, encontro uma recomendação para alterar as permissões dos diretórios iniciais como neste artigovsftpd - restringe usuários ao diretório inicialNo entanto, seguir isso levaria a muitas redefinições manuais de permissão, porque eu quero que um subdiretório de cada usuário seja acessível via apache, como descrito na configuração do apache UserDirhttp://httpd.apache.org/docs/2.2/howto/public_html.html

No final, eu quero ser capaz de adduser foo e magicamente acabar com a capacidade de foo ter privilégios R/W completos em /home/foo SEM poder ver qualquer outra parte do sistema de arquivos, para terhttp://xxxx/~foo/acessível para qualquer pessoa e acesso ao shell se eu alterar o shell de nologin para bash.

Ubuntu 12.04 LTS, vsftpd 2.3.5

Por favor, dê algum conselho... Estou coçando a cabeça!

Responder1

Só estou supondo aqui, porque sua situação não é exatamente a mesma, mas ..

apt-get install python-software-properties

(ou talvez apt-get update python-software-properties)?

Essa foi uma etapa de pré-requisito no sistema 12.04 que eu estava configurando, mas também recebi o erro "add-apt-repository: comando não encontrado", não erros de python. São esses erros que me fazem pensar que python é problema seu, já que esse comando foi executado com sucesso para mim depois que instalei python-software-properties.

A única outra alternativa que posso encontrar - tarde demais para tentar/consertar minha própria configuração - em vez de adicionar um repositório externo, seria tornar a casa de todos /home/ e, em seguida, modificar as permissões em todos os outros diretórios para que o único diretório que eles podem VER quando leem /home/ é "foo".. Eles ainda teriam que navegar nele ou você teria que de alguma forma criar um script para alterar seu CWD após o login, mas quando a tela inicial aparecer nada além de "foo" e não pode ser gravado, deve ter um impacto bastante baixo ter que "cd foo" ou clicar na pasta foo se estiver usando uma GUI. E aparentemente isso não é tão simples quanto eu imaginava, eu estava pensando no IIS com permissões NTFS quando imaginei uma configuração de permissão que determina se um diretório pode ser visto. Descobri que existe uma opção no vsftpd.conf chamada " hide_files", que pode fazer isso com termos cuidadosamente selecionados (permite especificar um regex, mas não sei se você poderia fazer algo como expandir uma variável com base no login do usuário atual para torná-la diferente para cada do utilizador...)

informação relacionada