Отключить --noprofile в Firejail

SSH запускает оболочку входа в систему, как указано на его справочной странице:

If a command is specified, it is executed on the remote host instead of a login shell.

Вы можете проверить это в Bash с помощью

shopt login_shell

, который покажет, работает ли он как оболочка для входа в систему.

Поведение Bash при удаленном запуске, будь то в качестве оболочки входа в систему или иным образом, описано в цитируемом вами разделе. Поведение, с которым вы его сравниваете, — это поведение интерактивных оболочек , а удаленная оболочка добавляет обработку .bashrcповерх поведения интерактивной оболочки входа в систему.

Обратите внимание, что системы Ubuntu обычно имеют сценарий .bash_profile, который имеет приоритет над .profile, и они обычно имеют исходный код .bash_profile.bashrcв любом случае...

1
06.04.2020, 07:55
1 ответ

Firejail содержит способ ограничения пользовательских сеансов, но он, вероятно, слишком груб для того, что вы хотите сделать.

Откройте файл /etc/firejail/login.usersи укажите параметры песочницы для каждого пользователя, например:

username: --noprofile --private-tmp --private-dev --caps.drop=all --seccomp=!chroot 

Затем измените пользовательскую оболочку на /usr/bin/firejailв /etc/passwd. Таким образом, весь пользовательский сеанс выполняется в одной и той же песочнице Firejail. Обратите внимание, что обычно вы не сможете запускать sudo и друзей в этом сеансе, поэтому будьте осторожны, чтобы не заблокировать себя.

Исходную документацию см. в man firejail -login .

Если один -размер -подходит -для всех песочниц — это не то, что вам нужно, лучше проверьте соответствующие системы обязательного контроля доступа (MAC ), такие как AppArmor, SELinux или Tomoyo.

1
24.06.2021, 23:19

Теги

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