Есть ли способ вручную добавить & ldquo; package & rdquo; (например, Python) в группу?

Я создал скрипт Python, который в основном содержит информацию об учетной записи для специальной учетной записи, которую я использую в Reddit. Все хорошо и прекрасно, пока я не понял, что, хотя папка скрыта, пользователи и т. Д. Все еще могут технически видеть каталог и переходить к нему, если они идут туда вручную или что-то в этом духе (например, просматривая файлы, которые я использовал для сценарий в виде простого текста, выполнив gedit /path/to/.hidden).

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

Был бы какой-нибудь возможный способ добавить Python в свою собственную группу, аналогично тому, что Virtualbox делает автоматически, когда вы его настраиваете (например, чтобы я мог что-то сделать в соответствии с sudo chown python:python /path/to/files)? Если нет, есть ли какие-либо альтернативы, чтобы предотвратить отслеживание, но все же позволить Python просматривать и читать файлы?

Я использую Ubuntu 18.04 (и если это поможет, я установил и имею в основном использовал среду рабочего стола MATE.)

0
задан 20 April 2019 в 13:18

2 ответа

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

Прежде всего, с технической точки зрения, это могло бы быть возможным, если вы сделаете python двоичным файлом setuid (Примечание: не делайте этого; это, вероятно, сломает другие части вашей системы). Но. Python не создан для этого.

Я могу запустить python с python -i script:

-i        When  a  script  is passed as first argument or the -c option is
          used, enter interactive mode after executing the script  or  the
          command.  It does not read the $PYTHONSTARTUP file.  This can be
          useful to inspect global variables  or  a  stack  trace  when  a
          script raises an exception.

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

Я мог бы даже написать небольшой скрипт на python, который читает ваш скрипт построчно и печатает его мне. Python нельзя сделать безопасным для setuid, потому что это полнофункциональный язык программирования. Если вы разрешите python читать файл, вы разрешите любому пользователю , который может запустить python, прочитать файл.

Проблема в основном в том, что вы пытаетесь скрыть информацию от пользователя. Однако для выполнения намеченной функции пользователю требуется эта информация. Это неразрешимая проблема.

0
ответ дан 20 April 2019 в 13:18

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

sudo -u newuser python /path/to/.hidden

Обновление: чтобы скрыть newuser от страницы входа в систему, установите для него значение uid ниже 1000 и установите для оболочки значение / bin / false, чтобы в любом случае не разрешать вход в систему, но все еще можно использовать sudo как этого пользователя

0
ответ дан 20 April 2019 в 13:18

Другие вопросы по тегам:

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