(Noob) Хорошо ли давать разрешение только root для скрытия скрипта Python?

Эти флаги определены в файлах спецификаций GCC , поэтому лучший способ определить различия между ними — заглянуть туда:

gcc -dumpspecs

Соответствующей частью является link_commandопределение. Это показывает, что -nostdlib, -nodefaultlibsи -nostartfilesимеют следующее влияние:

  • %{!nostdlib:%{!nodefaultlibs:%:pass-through-libs(%(link_gcc_c_sequence))}}— при необходимости добавляет libgcc, libpthread, libc, libieeeс помощью макроса и спецификационных строк libи libgcc;
  • %{!nostdlib:%{!nostartfiles:%S}}— это добавляет спецификационную строку startfile, в которой указываются объектные файлы, добавляемые для обработки запуска(crti.oи т. д.)
  • %{!nostdlib:%{fvtable-verify=std: -lvtv -u_vtable_map_vars_start -u_vtable_map_vars_end} %{fvtable-verify=preinit: -lvtv -u_vtable_map_vars_start -u_vtable_map_vars_end}}— добавляет проверку виртуальной таблицы с помощьюlibvtv
  • %{!nostdlib:%{!nodefaultlibs:%{mmpx:%{fcheck-pointer-bounds: %{static:--whole-archive -lmpx --no-whole-archive %:include(libmpx.spec)%(link_libmpx)} %{!static:%{static-libmpx:-Bstatic --whole-archive} %{!static-libmpx:--push-state --no-as-needed} -lmpx %{!static-libmpx:--pop-state} %{static-libmpx:--no-whole-archive -Bdynamic %:include(libmpx.spec)%(link_libmpx)}}}}%{mmpx:%{fcheck-pointer-bounds:%{!fno-chkp-use-wrappers: %{static:-lmpxwrappers} %{!static:%{static-libmpxwrappers:-Bstatic} -lmpxwrappers %{static-libmpxwrappers: -Bdynamic}}}}}}}— это ручкиlibmpx
  • %{!nostdlib:%{!nodefaultlibs:%{%:sanitize(address): %{static-libasan:%:include(libsanitizer.spec)%(link_libasan)} %{static:%ecannot specify -static with -fsanitize=address}} %{%:sanitize(thread): %{static-libtsan:%:include(libsanitizer.spec)%(link_libtsan)} %{static:%ecannot specify -static with -fsanitize=thread}} %{%:sanitize(undefined):%{static-libubsan:-Bstatic} -lubsan %{static-libubsan:-Bdynamic} %{static-libubsan:%:include(libsanitizer.spec)%(link_libubsan)}} %{%:sanitize(leak): %{static-liblsan:%:include(libsanitizer.spec)%(link_liblsan)}}}}— управляет различными вариантами санитарной обработки
  • .
  • %{!nostdlib:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}}— это добавляет опции защиты стека и повторяет последовательность ссылок C (, библиотеки которых уже были указаны в начале)
  • %{!nostdlib:%{!nostartfiles:%E}}— это добавляет спецификационную строку endfile, которая указывает объектные файлы, которые нужно добавить для обработки левых -оверов (crtfastmath.o, crtend.oи т. д.)

Как вы поняли из документации, -nostdlibявляется надмножеством -nodefaultlibsи -nostartfiles. Он также отключает проверку виртуальной таблицы.

Итак, -nostdlibдостаточно, чтобы отключить все связанные функции; -nodefaultlibsи -nostartfilesничего к этому не добавляют. (Но их тоже не помешает упомянуть.)

0
21.04.2020, 20:52
2 ответа

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

В конце концов, пароли unix тоже хранятся, но с солью, в /etc/shadow.

Помните, что если у людей есть доступ к компьютеру и они загружаются, например, с live CD, поскольку они являются root в среде live cd, они смогут прочитать любой файл на вашем компьютере.

1
19.03.2021, 02:27

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

Этого можно добиться, выполнив следующие две команды.

Первый гарантирует, что только владелец файла (root )имеет разрешение на чтение и выполнение скриптаchmod 500 script.py

(Если вам также необходимо иметь возможность записывать файл, вы можете использовать chmod 700 script.py, но обычно мы хотим следовать правилу наименьших привилегий, когда это возможно.)

Вторая команда сделает root владельцем скрипта
sudo chown root:root script.py

С этого момента никто, кроме пользователя root, не сможет читать, писать или выполнять ваш скрипт. Имейте в виду, что когда пользователи запускают sudo, они действуют как пользователь root.

0
19.03.2021, 02:27

Теги

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