Возможности для скрипта в Linux

Если я хочу установить возможность ( capabilities(7) ), такую ​​как CAP_NET_BIND_SERVICE , в исполняемом файле, а этот файл является скриптом , мне нужно установить возможность ( setcap(8) ) в интерпретаторе, начинающем этот сценарий, или достаточно ли установить его в самом файле сценария?

Примечание. В частности, вопрос касается Scientific Linux 6.1, но я думаю, что на него можно ответить в целом.

    One Solution collect form web for “Возможности для скрипта в Linux”

    Возможность установки скрипта не будет эффективной. Это аналогичная ситуация, так как не работает бит setuid в скрипте. Подобно тому, как в последнем случае это реализация того, как execve обрабатывает shebang и соображения безопасности позади него (подробнее см .: Разрешить setuid для сценариев оболочки ).

    Я думаю, у вас есть эти варианты

    1. установить возможности самого интерпретатора (на самом деле скорее его копию)

      • у вас есть проблема в том, что любой, кто сможет ее выполнить, будет работать с этими повышенными возможностями (сможет выполнить какой-либо произвольный скрипт или запустить его в интерактивном режиме)
    2. напишите исполняемый файл обертки, который будет иметь жесткую логику для выполнения вашего скрипта и установить желаемые возможности для этого исполняемого файла

      • убедитесь, что никто не может изменять и не удалять / не заменять скрипт
      • все еще делая chroot можно пропустить такую ​​обертку

    В обоих случаях вам нужно будет убедиться, что набор возможностей сохранится, execve настройку inheritable флага. Вы также можете использовать pam_cap распространенный с помощью libcap обычно для активации желаемых возможностей по конфигурации только для выбранных пользователей.

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

    Interesting Posts

    Почему «читай» не забирает все мои вары?

    Как расширить раздел ext3 через LVM внутри файла (виртуальная машина)?

    Контроль скорости загрузки Dropbox в командной строке

    Установка и размонтирование в том же сценарии оболочки приводит к ошибке

    перемещение (файл | каталог), избегая конфликтов имен файлов

    Добавление www в URL: не работает

    Как копировать только файлы папки (включая файлы вложенных папок), но не сама папка в оболочке

    Возможно ли, чтобы система CentOS на EC2 не имела загрузчика?

    ksh, если с несколькими условиями

    Правильные разрешения на загрузку и загрузку SFTP-подкаталогов в домашнем каталоге пользователя?

    Могу ли я использовать / usr / local между несколькими дистрибутивами Linux?

    Какие алгоритмы замены страниц используются в ядре Linux для кэша файлов ОС?

    Open / Libre Office: ограничение содержимого Impress для PowerPoint?

    Разбор JSON на оболочке

    sed – удаление нуля – / 08 / to / 8 /

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