exclui um usuário do chroot

1

Eu tenho uma configuração chroot no meu servidor CentOS, (chroot sem acesso ao shell / strict sftp). Apenas para referência, as pastas são assim:

home/sftp_users/%u     (root:root 750)

home/sftp_users/%u/input (site_user:sftp_users 770)

home/sftp_users/%u/input/result (site_user:sftp_users 770)

No meu arquivo sshd.conf eu tenho isto:

Subsystem       sftp    internal-sftp

Match Group webrecom_sftpusers
    ChrootDirectory /home/sftp_users/%u
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp

Isso praticamente faz o que eu quero. Se você notar acima, não tornei o usuário o proprietário das pastas em home directory . A razão para isso é que não quero que eles possam excluir esses diretórios ou alterar as permissões sobre eles. Caso contrário, alguém é capaz de estragar tudo em algum momento. Eles ainda têm acesso a -r -w -e por causa de seu grupo. Embora isso faça basicamente o que eu quero, por causa de sua capacidade de gravar em input , eles podem excluir o diretório result . Eu posso contornar esse in PHP recriando essa pasta. O PHP procurará nessas pastas por arquivos para pegar e executar e, em seguida, retornar relatórios sobre eles.

O problema é que site_user pertence ao seu próprio grupo site_user e no PHP eu posso somente atribuir uma pasta aos grupos aos quais um usuário pertence. Se adicionar site_user a sftp_users , fica preso na cadeia CHROOT.

Suponho que posso criar as pastas de propriedade de site_user e no grupo site_user e definir as permissões como 0777, mas:

  • existe outra maneira de impedir que os usuários alterem as permissões / excluindo esses diretórios que ignorei
  • existe uma maneira de adicionar site_user a sftp_users , mas não ficar na cadeia
por ArtisticPhoenix 02.11.2014 / 19:03

1 resposta

2

A correspondência pode ter vários condicionais. Experimente:

Match Group webrecom_sftpusers, User !site_user
    
por 05.11.2014 / 04:21