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

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

Например:

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

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

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

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

  • Проверка эффективных разрешений файла для пользователя
  • как удалить карантин из разрешений файлов в os x
  • Изменение прав доступа к файлам в файловой системе HFS +
  • Исполняемые файлы в / usr / bin не отображаются для разрешенных пользователей
  • Смутные разрешения на доступ к каталогам
  • Невозможно создать файл * .o на разделе
  • Команда, чтобы знать привилегии группы пользователей
  • Не удается написать после предоставления прав rwx группе с использованием ACL
  • 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 - лучшая ОС в мире.