Что такое / bin / rbash?

14

Я узнал о программах Common Shell .

Когда я бегу cat /etc/shells, это показывает:

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

Что /bin/rbashздесь? Это используется в сценариях?

маргаритка
источник
6
Какая часть man rbashнеясна?
Стиг Хеммер
1
@StigHemmer. Я этого не делал. man rbashтакже дает мне подробную информацию. Благодарю.
маргаритка
3
Чтение справочной страницы всегда должно быть вашей первой попыткой понять инструмент. Вы также должны прочитать его на компьютере, где он появляется, чтобы убедиться, что вы читаете о правильной версии.

Ответы:

16

Из википедии

Ограниченная оболочка - это оболочка Unix, которая ограничивает некоторые возможности, доступные для интерактивного пользовательского сеанса или сценария оболочки, выполняющегося в нем. Он предназначен для обеспечения дополнительного уровня безопасности, но недостаточен для запуска полностью ненадежного программного обеспечения. Операция в ограниченном режиме находится в исходной оболочке Bourne [1] и ее более позднем аналоге bash, [2] и в оболочке Korn. [3] В некоторых случаях ограниченная оболочка используется в сочетании с изолированной тюрьмой для дальнейшей попытки ограничить доступ к системе в целом.

См . Ответ Сорена А об ограничениях, применимых к оболочкам с ограничениями.

Вы можете работать bashв ограниченном режиме

bash -r
bash --restricted

В моей системе:

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

Так что, если я бегу /bin/rbash, я бегуbash

НО

Достаточно создать ссылку с именем rbash, указывающую непосредственно на bash. Хотя это вызывает bash напрямую, без параметров -rили --restricted , bash действительно распознает, что он был вызван через rbash, и выглядит как ограниченная оболочка.

Как вы можете легко проверить:

zanna@monster:~$ rbash
zanna@monster:~$ cd playground
rbash: cd: restricted
Занна
источник
1
Кажется, много ограничений. Тогда как это полезно? Использует ли это в сценариях?
маргаритка
3
Он может быть установлен как оболочка по умолчанию для пользователя, которого вы хотите перехватить в определенном каталоге, например, @passa
Zanna
2
@passa - это не сценарии, а ограниченные оболочки бесполезны для сценариев. Поскольку вы знаете или можете определить, какие действия выполняются в сценарии, нет смысла использовать ограниченную оболочку для сценариев.
Муру
@ Муру Хорошо. Так что это можно использовать по назначению, которое сказала Занна в своем комментарии.
маргаритка
1
Это полезно для системного администратора, поскольку оно может помешать другим пользователям выполнять опасные задачи. Это несколько менее полезно для конечного пользователя.
17

rbash - это ограниченная (с ограниченными возможностями) версия bash. Смотрите эту статью: https://en.wikipedia.org/wiki/Restricted_shell

Из статьи:

Следующие операции не разрешены в ограниченной оболочке:

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

Bash добавляет дополнительные ограничения, в том числе:

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

Ограничения в ограниченной оболочке Корна во многом аналогичны ограничениям в ограниченной оболочке Борна.

Сорен А
источник