Могу ли я запускать команду с определенными привилегиями в определенных каталогах?

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

Например:

root> /bin/bash -protect /folder/to/protect mycommand.sh 

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

Есть ли способ сделать это, не добавляя нового пользователя и соответствующим образом настраивая привилегии этого пользователя? Это не должно быть в bash, кстати, я не против подхода – пока я могу защитить папки без добавления нового пользователя, я не против!

(Прошу прощения за титул, я не могу думать о том, как объяснить свои требования в одной строке!)

2 Solutions collect form web for “Могу ли я запускать команду с определенными привилегиями в определенных каталогах?”

Безопасность Unix построена на разрешениях для пользователей и групп. Если вы хотите сделать каталог доступным только для чтения для команды, вам нужно запустить его как пользователя, которому не разрешено писать в этот каталог. Или есть более тяжелый подход, который заключается в том, чтобы запустить команду на виртуальной машине.

Вы можете найти bindfs полезным. Bindfs представляет собой сложную файловую систему, то есть создает альтернативный вид части дерева каталогов. В частности, вы можете создать просмотр только для чтения или представление с разными разрешениями. Bindfs не может создавать /folder/to/protect только для чтения, но он может создавать просмотр только для этого каталога /read/only/view ; вам нужно найти другие средства (например, разрешения), препятствующие написанию команды в папке `/ folder / to / protect.

 bindfs --perms=aw /folder/to/protect /read/only/view 

Вы можете написать общую библиотеку, в которой была открыта оболочка, которая выполняла дополнительную проверку (ы) безопасности. Затем программа, которую вы пишете, затем может использовать LD_PRELOAD для загрузки вашей общей библиотеки при вызове программы и переопределении open системы.

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

  • Существуют ли какие-либо настройки разрешений для проверки атрибутов (rwx) файла?
  • Как запретить пользователю изменять файлы с помощью разрешения linux
  • Почему я вижу число как владелец / группа вместо имени?
  • Начало службы и отказ от прав
  • Каков эффект разрешения файлов на системном уровне?
  • logrotate не работает для munin после последнего обновления на OpenSUSE 11.4
  • Жесткая привязка файлов других пользователей
  • Файлы создаются с использованием старой группы, хотя создатель больше не принадлежит к старой группе
  • Присвоение привилегий системным учетным записям
  • Перемещение сохраняет права собственности на исходные файлы, не позволяя делать записи
  • Защита моего сервера от его собственных пользователей
  • Linux и Unix - лучшая ОС в мире.