Хорошо, как, кажется, случай 75% времени, я на самом деле споткнулся за ответ на свой собственный вопрос. -t
и -x
флаги для df
сделает то, что я ищу.
-t [type]
перечислит файловые системы, соответствующие ТИПУ фс [тип]
-x [type]
перечислит файловые системы, НЕ соответствующие ТИПУ фс [тип]
Т.е. чтобы я исключил смонтированные NFS файловые системы, команда df -x nfs
.
Прежде всего, возможно, chroot
не может считаться функцией безопасности . Есть мнений и в другом направлении, .
Возможно, вам нужно реализовать воспроизводимый, проверяемый метод ограничения возможности пользователя выполнять действия, отличные от строго разрешенных.
Если вы регистрируете своих пользователей в LDAP, вы наверняка уже развернули механизмы для выполнения аутентификации LDAP на любом компьютере, подключенном к этому LDAP, будь то с помощью sssd
или с помощью любого другого модуля PAM, это не имеет отношения к остальной части решения и предполагается, что он уже существует (в моем случае я использую freeIPA и sssd
).
Для реализации этого сценария, В настоящее время я делаю следующее (имейте в виду, что для такого рода ограничений требуется выполнение нескольких условий, иначе ограничение можно легко обойти):
wheel
, единственный, кто имеет право использовать su
(принудительно через PAM). Обычно существует пользователь, не являющийся пользователем LDAP ( sysadm
), чтобы позволить доверенным администраторам выполнять действия в случае аварийного восстановления или недоступности LDAP. Пользователям предоставляется должным образом защищенный rbash
с доступный только для чтения ПУТЬ, указывающий на частный ~ / bin
, этот ~ / bin /
каталог содержит ссылки на все разрешенные команды, например:
$ ll ~ / bin
- Пользователи не принадлежат к группе
wheel
, единственной, кому разрешено использовать su
(принудительно через PAM). Обычно существует пользователь, не являющийся пользователем LDAP ( sysadm
), чтобы позволить доверенным администраторам выполнять действия в случае аварийного восстановления или недоступности LDAP.
Пользователям предоставляется должным образом защищенный rbash
с доступный только для чтения ПУТЬ, указывающий на частный ~ / bin
, этот ~ / bin /
каталог содержит ссылки на все разрешенные команды, например:
$ ll ~ / bin
- Пользователи не принадлежат к группе
wheel
, единственной, кому разрешено использовать su
(принудительно через PAM). Обычно существует пользователь, не являющийся пользователем LDAP ( sysadm
), чтобы позволить доверенным администраторам выполнять действия в случае аварийного восстановления или недоступности LDAP.
Пользователям предоставляется должным образом защищенный rbash
с доступный только для чтения ПУТЬ, указывающий на частный ~ / bin
, этот ~ / bin /
каталог содержит ссылки на все разрешенные команды, например:
$ ll ~ / bin
всего 0
lrwxrwxrwx. 1 root dawud 14 сен 17 08:58 clear -> / usr / bin / clear *
lrwxrwxrwx. 1 root dawud 7 сен 17 08:58 df -> / bin / df *
lrwxrwxrwx. 1 root dawud 10 сен 17 08:58 egrep -> / bin / egrep *
lrwxrwxrwx. 1 root dawud 8 сен 17 08:58 env -> / bin / env *
lrwxrwxrwx. 1 root dawud 10 сен 17 08:58 fgrep -> / bin / fgrep *
lrwxrwxrwx. 1 root dawud 9 сен 17 08:58 grep -> / bin / grep *
lrwxrwxrwx. 1 root dawud 10 сен 17 08:58 rview -> / bin / rview *
lrwxrwxrwx. 1 root dawud 13 сен 17 08:58 rvim -> / usr / bin / rvim *
lrwxrwxrwx. 1 root dawud 13 сентября 17 08:58 sudo -> / usr / bin / sudo *
lrwxrwxrwx. 1 root dawud 17 сен 17 08:58 sudoedit -> / usr / bin / sudoedit *
lrwxrwxrwx. 1 root dawud 13 сен 17 08:58 tail -> / usr / bin / tail *
lrwxrwxrwx. 1 root dawud 11 сен 17 08:58 туалет -> / usr / bin / wc *
пользователям предоставляется ограниченная среда только для чтения (подумайте о таких вещах, как LESSSECURE
, TMOUT
, HISTFILE
переменные). Это сделано для того, чтобы избежать экранирования оболочки
из таких команд, как less
или vim
.
- если ограничения MAC существуют (конкретный дистрибутив GNU / Linux, который вы используете SELinux включен), пользователи отображаются на пользователя SELinux
staff_u
и получают права на выполнение команд от имени другого пользователя по мере необходимости через sudo
. Конкретные разрешенные Sudorules
должны быть тщательно проверены, чтобы предотвратить обход этих ограничений пользователем, и также могут быть развернуты в вашей существующей инфраструктуре LDAP (это одна из функций freeIPA).
пользователи / дом
,
/ var / tmp /tmp/.inst/var-tmp.inst-$USER- tmpdir: создать root
$ HOME $ HOME / $ USER.inst / tmpdir: создать root
Полиинстанция каталогов - не новая функция, она доступна уже довольно давно. Для справки см. эту статью от 2006 г. . Фактически, многие модули уже используют pam_namespace
по умолчанию, но конфигурация по умолчанию в /etc/security/namespace.conf
не включает многоэкземплярное создание.
Кроме того, /etc/security/namespace.init
должен сделать все скелетные файлы доступными только для чтения для пользователей и принадлежащими root
.
Таким образом, вы можете выбрать, могут ли пользователи выполнять любую команду от своего имени (по ссылке в частном каталоге ~ / bin
, предоставленной через / etc / skel
, как описано выше), от имени другого пользователя (через sudo
) или вообще ничего.