O que é / bin / rbash?

14

Eu estava aprendendo sobre os programas comuns do shell .

Quando corro cat /etc/shells, mostra:

# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash

O que tem /bin/rbashaqui? É usado em scripts?

margarida
fonte
6
Qual parte man rbashnão é clara?
precisa saber é o seguinte
1
@StigHemmer. Eu não fiz isso. man rbashtambém me fornece informações detalhadas. Obrigado.
Daisy #
3
A leitura da página de manual sempre deve ser sua primeira tentativa de entender uma ferramenta. Você também deve lê-lo na máquina em que aparece para garantir que está lendo a versão correta.

Respostas:

16

Da wikipedia

O shell restrito é um shell Unix que restringe alguns dos recursos disponíveis para uma sessão interativa do usuário ou para um script de shell em execução dentro dele. O objetivo é fornecer uma camada adicional de segurança, mas é insuficiente para permitir a execução de software totalmente não confiável. Uma operação em modo restrito é encontrada no shell Bourne original [1] e em sua posterior contraparte bash, [2] e no shell Korn. [3] Em alguns casos, um shell restrito é usado em conjunto com uma prisão chroot, em uma tentativa adicional de limitar o acesso ao sistema como um todo.

Veja a resposta de Soren A para as limitações que se aplicam a conchas restritas.

Você pode executar bashno modo restrito

bash -r
bash --restricted

No meu sistema:

$ file /bin/rbash
/bin/rbash: symbolic link to bash

Então, se eu correr /bin/rbash, eu estou correndobash

MAS

Basta criar um link chamado rbash apontando diretamente para o bash. Embora isso invoque o bash diretamente, sem as opções -rou --restricted, o bash reconhece que foi invocado pelo rbash e surge como um shell restrito.

Como você pode testar facilmente:

zanna@monster:~$ rbash
zanna@monster:~$ cd playground
rbash: cd: restricted
Zanna
fonte
1
Parece muitas restrições. Então, como isso é útil? Ele usa em scripts?
Daisy
3
Pode ser definido como shell padrão para um usuário que deseja armadilha em um diretório específico, por exemplo @passa
Zanna
2
@passa que não é de script, e shells restritos são singularmente inúteis para script. Como você sabe ou pode determinar quais ações são executadas em um script, não há sentido em usar um shell restrito para scripts.
Muru
@muru Okay. Portanto, isso poderia ser usado para o propósito que Zanna disse em seu comentário.
Daisy
1
Isso é útil para um administrador do sistema, pois pode impedir que outros usuários realizem tarefas perigosas. É um pouco menos útil para o usuário final.
17

O rbash é uma versão restrita (capabillities reduzidas) do bash. Veja este artigo: https://en.wikipedia.org/wiki/Restricted_shell

Do artigo:

As seguintes operações não são permitidas em um shell restrito:

changing directory
specifying absolute pathnames or names containing a slash
setting the PATH or SHELL variable
redirection of output

O bash adiciona outras restrições, incluindo:

limitations on function definitions
limitations on the use of slash-ed filenames in bash builtins

As restrições no shell Korn restrito são praticamente as mesmas que no shell Bourne restrito.

Soren A
fonte