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

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

Например:

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

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

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

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

  • предоставлять разрешение на чтение, запись, выполнение, но не может быть удалено другими пользователями
  • Приоритет ACLS, когда пользователь принадлежит нескольким группам
  • предоставление разрешений на запись группе в папку
  • Выполнять скрипт пользователя как root в приложениях запуска
  • Автоматически устанавливать группу файлов и разрешения не путем наследования из каталога
  • устанавливает ли разрешение 0 в каталоге эффективным способом защиты его содержимого?
  • Заставить владельца и группу для содержимого tar-файла?
  • Не удается получить разрешения доступа к серверу
  • 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 системы.

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

    Linux и Unix - лучшая ОС в мире.