Desativar comandos do Linux

2

Estou escrevendo um programa simples para fazer backup de alguns arquivos em uma caixa do Linux. A transação ocorrerá através do SSH e cada cópia do programa terá sua própria conta na caixa do Linux que será conectada.

Minha preocupação é que, provavelmente, um usuário do software descobrirá o nome e a senha da conta (que será gerada aleatoriamente de antemão) e desejará se conectar à caixa e brincar.

Gostaria de desabilitar a capacidade de fazer qualquer coisa nessa caixa além do que eu autorizaria o software de backup a fazer. Ou seja, eles só precisam criar novos arquivos e ler os antigos (sem atualizações ou exclusões). Eles não devem precisar da capacidade de executar bc ou who ou qualquer coisa do tipo.

Eu pensei em tentar chroot de cada usuário em seu diretório home, mas estou meio confuso sobre como fazer tudo isso.

Alguma sugestão sobre como alcançar essa funcionalidade desejada?

Obrigado!

    
por mrduclaw 16.12.2009 / 14:45

3 respostas

10

O arquivo authorized_keys de uma conta pode especificar um comando a ser usado sempre que uma chave específica for usada para autenticação. Isso exigirá que você configure a autenticação usando chaves em vez de usuário / senha - embora seja uma boa ideia fazer isso de qualquer maneira.

Por exemplo, a gitosis usa esse método para permitir que as pessoas se conectem a um servidor usando o ssh para encapsular o protocolo git, mas não permitir o login. A página de manual authorized_keys fornece exemplos, por exemplo:

    command="dump /home",no-pty,no-port-forwarding ssh-dss AAAAC3...51R== example.net
    
por 16.12.2009 / 14:53
2

Use scponly com a opção chroot. Isso dará aos usuários um login especial chrooted, com apenas os binários que você deseja usar.

Veja o link

    
por 16.12.2009 / 14:50
1

Você pode usar o rssh ( link ), é como escarnecer, mas suporta scp, sftp, rsync & cvs

    
por 16.12.2009 / 15:20