Prevent Mount under Destination

TL; DR
  1. Используйте Fish для интерактивной оболочки , которая немедленно расширяет ваши возможности ( fish > zsh > bash ).
  2. Используйте POSIX / Bash для написания сценариев , который является наиболее широко поддерживаемым синтаксисом ( POSIX > Bash > ] Zsh > Fish ).

Оболочки

Мои отзывы о тестировании различных оболочек (в порядке тестирования / внедрения):

  • Bash :
    • автозаполнение: базовое ;
    • расширение пути: нет;
    • сценарий: отлично.
  • Zsh + oh-my-zsh :
    • автозаполнение: хорошо (циклический переход);
    • расширение пути: да ( cd / e / x1 cd / etc / X11 / );
    • сценарий: хорошо.
  • Fish + oh-my-fish (текущий) - лучший вариант из коробки:
    • автозаполнение: встроенное и поддерживаемое параметры;
    • расширение пути: да;
    • сценарий: слишком большое отличие от POSIX-совместимого.

Используйте значимые псевдонимы

Каждая оболочка может быть расширена с помощью функции и псевдонима , вот те, которые я использую для решения вашей проблемы (POSIX-совместимые):

back () {  # go to previous visited directory
        cd - || exit
}

up () {  # go to parent directory
        cd ..|| exit
}

Есть базовые, но действительно значимые, их легко запомнить и заполнить автоматически.

Знайте свою оболочку

Настройте CDPATH для добавления наиболее часто используемых каталогов (например, ~ / projects / , /etc/init.d/ ) так что вы можете быстро перейти к ним.

Подробнее о CDPATH см. Ответ на manatwork.

Hangouts и чтение

2
08.10.2018, 17:18
1 ответ

В системах с поддержкой SELinux каждый объект (процессы, файлы и т. д. )имеет метку безопасности. Политика SELinux содержит правила, описывающие разрешенные операции для этих меток. Политика по умолчанию довольно сложна и обширна. Настроить политику уже может быть достаточно, чтобы предотвратить монтирование в большинстве местоположений (на основе метки ).

Политика не накладывает ограничений на незащищенных пользователей. Кроме того, логическое значениеallow_mount_anyfileопределяет, может ли команда mountиспользовать (почти )любой файл в качестве точки монтирования. Использованиеограниченных пользователейналожит множество ограничений на доступ пользователей к системе. SELinuxУправление доступом на основе ролей (RBAC)помещает ограниченного пользователя в ограниченную роль. Роли ограничивают, какие домены (обрабатывают метки безопасности ), разрешенные для роли. Также ограниченный пользователь в user_rне может переключиться на другую роль.

Мы можем проверить установленную политику, чтобы определить, может ли пользователь с ограниченной ролью использовать помеченный файл/каталог в качестве точки монтирования (напрямую или путем злоупотребления другим разрешенным доменом ).

Во-первых,чтобы проверить, в какие домены user_rможно перейти с помощьюseinfo:

seinfo -r user_t -x 

Язык политики SELinux имеет разрешение mounton, которое позволяет домену использовать целевой файл/каталог в качестве точки монтирования. Чтобы запросить установленную политику для поиска доменов, разрешено использовать целевой объект в качестве точки монтирования:

sesearch --allow -t <target file/directory type> -p mounton

Если нет правил с доменом, которому user_rразрешено, пользователь в user_rне может использовать цель в качестве точки монтирования (, даже если он был root вuser_r). Кроме того, следует убедиться в отсутствии разрешенийrelabelfrom(на перемаркировку )или unlink, которые можно было бы использовать для обхода политики.

Ограничение администратора (root вsysadm_r)не является тривиальным. Для этого требуется либо модуль политики с новым настраиваемым типом, либо настройка базовой политики, поскольку sysadm_t, скорее всего, имеет упомянутые ранее разрешения. Настраиваемая политика должна иметь тип, доступный только для разрешенных доменов. Кроме того, политика должна запрещать все, что может позволить обойти политику, в результате чего пользователь root будет несколько ближе к ограниченному пользователю, чем пользователь root.

2
27.01.2020, 22:08

Теги

Похожие вопросы