Fish
для интерактивной оболочки , которая немедленно расширяет ваши возможности ( fish
> zsh
> bash
). POSIX
/ Bash
для написания сценариев , который является наиболее широко поддерживаемым синтаксисом ( POSIX
> Bash
> ] Zsh
> Fish
). Мои отзывы о тестировании различных оболочек (в порядке тестирования / внедрения):
Bash
:
Zsh
+ oh-my-zsh
:
cd / e / x1
→ cd / etc / X11 /
); Fish
+ oh-my-fish
(текущий) - лучший вариант из коробки:
Каждая оболочка может быть расширена с помощью функции
и псевдонима
, вот те, которые я использую для решения вашей проблемы (POSIX-совместимые):
back () { # go to previous visited directory
cd - || exit
}
up () { # go to parent directory
cd ..|| exit
}
Есть базовые, но действительно значимые, их легко запомнить и заполнить автоматически.
Настройте CDPATH
для добавления наиболее часто используемых каталогов (например, ~ / projects /
, /etc/init.d/
) так что вы можете быстро перейти к ним.
Подробнее о CDPATH
см. Ответ на manatwork.
В системах с поддержкой 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.