Banana Studio
News · BS Manager

SSH Server 0.13.0: a sua shell SSH fica agora nas suas pastas

O SSH Server 0.13.0 faz a shell SSH seguir as mesmas regras do SFTP: a shell de cada utilizador vê apenas as pastas que lhe atribui, as pastas só de leitura continuam só de leitura e os ficheiros ocultos continuam ocultos.

SSH Server 0.13.0: a sua shell SSH fica agora nas suas pastas
On this page

SSH Server 0.13.0: a sua shell SSH fica agora nas suas pastas

O SSH Server 0.13.0 já está disponível no Google Play para telemóveis, tablets e Android TV. Esta versão resolve uma falha com que alguns de vós se depararam: a shell SSH segue agora as mesmas regras do SFTP. A shell de cada utilizador vê apenas as pastas que configurou para ele, e mais nada.

Uma visita de um minuto às novidades da 0.13.0.

Porque é que isto importa

No SSH Server, atribui a cada utilizador uma lista de pastas. O SFTP sempre respeitou essa lista: um utilizador a quem só foi dado Download via Download e nada mais.

A shell SSH não o fazia. Quando o mesmo utilizador abria um terminal com ssh, a shell começava na pasta privada da própria aplicação e podia explorar tudo o que a aplicação conseguia alcançar. Isso era confuso («Porque é que não encontro a minha pasta Download na shell?») e significava que a lista de pastas não era um limite real para quem usasse a shell.

A partir da 0.13.0, a lista de pastas é o limite em todo o lado.

Antes: a shell podia navegar por tudo o que a aplicação conseguia alcançar. Agora: apenas as pastas do utilizador, Download (com escrita) e Photos (só de leitura)

O que a shell vê agora

A shell vê exatamente as pastas que o SFTP mostra a esse utilizador:

  • Uma pasta: aparece como /. Se der a um utilizador /storage/emulated/0, então / na shell dele é o seu armazenamento interno.
  • Várias pastas: / lista-as pelo seu alias. Um utilizador com Download e DCIM (mostrada como Photos) vê exatamente duas pastas em /: Download e Photos.
  • Todo o resto desaparece. O resto do seu armazenamento, os dados da própria aplicação e os de outras aplicações simplesmente não estão lá. Os caminhos que levariam para fora, incluindo .. e os truques do Linux através de /proc, ficam dentro das pastas do utilizador.

As suas ferramentas habituais da shell continuam a funcionar: ls, cd, cp, mv, find, cat, pipes, scripts e tarefas em segundo plano. Os ficheiros de sistema do Android continuam legíveis para que esses comandos possam ser executados, tal como em qualquer shell Android.

Eis uma sessão real no SSH Server 0.13.0:

Uma sessão SSH real: pwd mostra /, ls / mostra Download e Photos, escrever em Photos é recusado, /storage/emulated/0 não existe

As pastas só de leitura e os ficheiros ocultos também se aplicam

Duas definições que já conhece do SFTP funcionam agora também na shell:

  • Writable: se a caixa Writable de uma pasta estiver desmarcada, a shell pode abri-la, lê-la e copiar ficheiros dela, mas não pode criar, alterar, renomear nem eliminar nada lá dentro. Verá Read-only file system, como num disco só de leitura.
  • Show hidden files: se estiver desligada para um utilizador, os ficheiros e pastas cujo nome começa por um ponto (.ssh, .cache, …) também são omitidos nas listagens da shell: ls -a, find, o preenchimento automático com Tab. Tal como no SFTP, um ficheiro oculto pode ainda ser aberto pelo seu nome exato.

O ecrã Users: o utilizador tem Download (Writable marcado) e Photos (Writable desmarcado)

Como configurar

Não há nada de novo para ativar. A shell usa as pastas que já definiu para cada utilizador:

  1. Abra o SSH Server e toque em Users.
  2. Toque no lápis junto a um utilizador.
  3. Em Access path, toque em Add new e escolha uma pasta. Repita para cada pasta que o utilizador deva ter.
  4. Desmarque Writable em qualquer pasta que deva ser só de leitura.
  5. Toque em ✓ para guardar. Da próxima vez que esse utilizador iniciar sessão, a shell dele mostrará exatamente estas pastas.

Não quer que um utilizador tenha shell de todo? O interruptor Disable shell no mesmo ecrã continua a desativá-la.

Funciona em todo o lado, sem root

A nova shell funciona sem root em todos os dispositivos que o SSH Server suporta: telemóveis, tablets e Android TV, com processadores ARM e x86 de 64 e 32 bits. Testámo-la do Android 6 ao Android 16.

Em alguns dispositivos muito antigos, sobretudo Android 6 e 7 com um kernel de sistema desatualizado, falta ao sistema uma funcionalidade de que a shell precisa. Aí, o SSH Server não recorre a uma shell sem restrições: a sessão mostra uma breve mensagem de que a shell não consegue iniciar e depois fecha. O SFTP continua a funcionar normalmente nesses dispositivos.

Duas correções

O SFTP já não termina a sua sessão num caminho errado. Se abrisse um caminho fora das suas pastas, por exemplo ls /storage/emulated/0, a ligação podia fechar-se com Connection closed. Agora recebe uma mensagem «not found» normal e continua a trabalhar.

Antes: Connection closed. Agora: «not found», e a sessão continua

Users e SFTP Logs cabem no ecrã no Android 15 e posterior. Nas versões mais recentes do Android, o título e a seta de retroceder destes dois ecrãs deslizavam para baixo da barra de estado. Agora ficam por baixo dela.

No Android 15, o título do ecrã Users deslizava para baixo da barra de estado; agora fica por baixo dela

Perguntas

Os meus ficheiros estavam em /storage/emulated/0. Onde estão agora? Nas pastas do seu utilizador. Execute ls / para os ver. Se deu ao utilizador todo o seu armazenamento interno, é o próprio /.

A shell diz que está indisponível ou não consegue iniciar. O que posso fazer? Verifique se o utilizador tem pelo menos uma pasta em Access path e se o SSH Server tem permissão para aceder aos seus ficheiros. Se ambos estiverem bem, o seu dispositivo é um dos poucos sem a funcionalidade do kernel de que a shell precisa; o SFTP continua a funcionar.

Isto altera o SFTP? Não. O SFTP já funcionava assim. Só a shell mudou, além da correção do SFTP acima.

Obter

O SSH Server 0.13.0 está a ser lançado no Google Play agora:

Obrigado a todos os que nos escreveram sobre a shell e o SFTP. Continuem a enviar-nos a vossa opinião!

Videos

SSH Server 0.13.0: novidades

Related posts

Image2SVG 2.1: SVG a cores, pré-visualização em tempo real e muito mais
News

Image2SVG 2.1: SVG a cores, pré-visualização em tempo real e muito mais

O Image2SVG 2.1 é a nossa maior atualização até hoje: SVG a cores com até 8 cores, predefinições de vetorização com pré-visualização em tempo real, cores e tamanho para o seu SVG, saída em PDF/EPS/DXF, exportação para PNG, um visualizador para comparar e ampliar, recorte, partilha a partir de outras aplicações, exportação em ZIP e 14 novos idiomas. A aplicação está também preparada para o Android 17.

Image2SVG - Conversor SVG
Photo EXIF Editor 2.5.5: edite legendas, palavras-chave e créditos IPTC no Android
News

Photo EXIF Editor 2.5.5: edite legendas, palavras-chave e créditos IPTC no Android

O Photo EXIF Editor 2.5.5 traz a edição de IPTC em fotografias JPEG: títulos, descrições, palavras-chave, criador, direitos de autor e local, numa fotografia ou num lote inteiro. As datas que define em fotografias digitalizadas e antigas passam a aparecer corretamente na galeria, guardar nunca deixa uma fotografia danificada e o conversor de HEIC volta a funcionar no Android 16.

Photo EXIF Editor