FreeBSD не загружается после отключения питания/обновления/когда-либо? (проблема с ntpd...)

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

При /bin/bashили прямом доступе к Nodejs пользователь может изменять только те файлы, на изменение которых у него есть разрешение. Большая часть /etc, вероятно, недоступна для записи jimmy, поэтому они не должны rmиметь доступ ко всему каталогу.

Вы правы насчет /usr/sbin/nologin, пользователь не сможет войти в систему. Запустив веб-интерфейс для доступа к Nodejs в этом сценарии, вам все равно нужно убедиться, что веб-интерфейс не разрешает доступ к файлам, которые вам не нужны, или пользователям, имеющим доступ.

Независимо от того, какое решение вы выберете, вы не сможете запускать несколько служб на одном и том же IP-адресе и порте. Вы можете либо привязать службу к тому же порту на другом IP-адресе, либо использовать другой порт. Решение может заключаться в том, чтобы каждый пользователь работал на своем порту, а затем создавал веб-сервер, который служил бы прокси для каждой из этих служб.

Вы говорите об использовании Docker, поэтому я не уверен, почему вы не придерживаетесь этого, хотя я не знаю о возможных пользовательских ограничениях, с которыми вы работаете. Это больше похоже на chroot с дополнительной изоляцией и сетевым управлением. Docker в первую очередь предназначен для запуска одной службы, поэтому каждый пользователь, имеющий свой собственный контейнер, на котором запущен экземпляр Nodejs, звучит как раз такой вариант использования.

Если Docker не подходит, я бы рекомендовал использовать chroot, если вы уверены, что сможете сделать это правильно. В противном случае, похоже, что ваши требования могут быть удовлетворены с помощью единой системы, предлагающей вход в систему для нескольких пользователей -с соответствующими разрешениями везде.

1
09.02.2020, 04:32
2 ответа

Существуют различные способы добиться этого, но один из самых простых — испортить настройку ntpd_flagsв /etc/rc.confи эффективно провести атаку путем внедрения команды на самого себя.

Вот почему rcсистемы, основанные на сценарии оболочки, так трудно сделать правильно. Очень очень трудно полностью защититься от всех способов, которыми могут быть (случайно )введены дополнительные команды оболочки, особенно когда printfотсутствует %qспецификатор формата.

Скрипты Mewburn rcFreeBSD вообще не были защищены от таких аварий. Обратите внимание, что имя файла ntpd_configне будет работать, например, если оно содержит пробелы. Это довольно тривиальное цитирование по сравнению с некоторыми.

И да, это не аварийный снаряд.

0
28.04.2021, 23:24

Ах, эзотерика (также, вещи, которые я ненавижу в BSD ).

Оболочкой FreeBSD по умолчанию является (t? )чш. Я ненавижу [t]csh. Итак, я вставил строку в .cshrc, чтобы вместо этого выполнить команду bash.

Проблема :теперь любая оболочка запускается "от имени" root (n.b.su -m)не может принимать командный аргумент; он просто выполнит (интерактив! )bash вместо этого.

Решение :exec bash в .login(, которое явно специфично для csh -).

0
28.04.2021, 23:24

Теги

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