um subsistema ssh que faz ls

1

Normalmente, você cria um subsistema fazendo Subsystem vim /usr/bin/vim ou algo parecido. Então, como eu faria um subsistema que fizesse ls -la ? ie. você chama o subsistema ls, dá um ls e depois fecha o canal. Não parece que Subsystem vim ls -la funcionaria, pois não é um caminho para um arquivo binário.

Alguma idéia?

    
por neubert 21.11.2014 / 17:03

1 resposta

2

Você pode incluir argumentos de linha de comando em uma definição Subsystem . Aqui está parte da descrição do "Subsistema" do documentação do sshd_config :

Subsystem
Configures an external subsystem (e.g. file transfer daemon). Arguments should be a subsystem name and a command (with optional arguments) to execute upon subsystem request.

Então, isso deve funcionar bem:

Subsystem ls ls -la /some/directory

O sshd executa o comando do subsistema como um comando shell, portanto, o comando pode conter a sintaxe do shell:

Subsystem ls ls -la /some/dir | tr a-z A-Z     # Upper-cases output

Outra abordagem seria escrever um script simples que executa o comando desejado e definir o sshd para executar o script como o comando do subsistema. Por exemplo, crie um script contendo essas linhas e marque-o como executável:

#!/bin/sh
exec ls -la

Em seguida, defina o subsistema para executar o script:

Subsystem ls /path/to/my/script
    
por 01.12.2014 / 22:15

Tags