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?


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

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.