Я создал скрипт Python, который в основном содержит информацию об учетной записи для специальной учетной записи, которую я использую в Reddit. Все хорошо и прекрасно, пока я не понял, что, хотя папка скрыта, пользователи и т. Д. Все еще могут технически видеть каталог и переходить к нему, если они идут туда вручную или что-то в этом духе (например, просматривая файлы, которые я использовал для сценарий в виде простого текста, выполнив gedit /path/to/.hidden
).
Я попытался обойти это, просто сделав root
основного владельца и единственного, кто может просматривать эту конкретную папку , подчеркнув, чтобы люди не думали, что я закрыл себя от основных домашних папок , но проблема в том, что Python не может просматривать нужные файлы, потому что у него нет прав на чтение.
Был бы какой-нибудь возможный способ добавить Python в свою собственную группу, аналогично тому, что Virtualbox делает автоматически, когда вы его настраиваете (например, чтобы я мог что-то сделать в соответствии с sudo chown python:python /path/to/files
)? Если нет, есть ли какие-либо альтернативы, чтобы предотвратить отслеживание, но все же позволить Python просматривать и читать файлы?
Я использую Ubuntu 18.04 (и если это поможет, я установил и имею в основном использовал среду рабочего стола MATE.)
Нет, принципиально нет. Вы хотите, чтобы пользователь мог прочитать файл с помощью команды python, но не проверять содержимое файла.
Прежде всего, с технической точки зрения, это могло бы быть возможным, если вы сделаете python двоичным файлом setuid (Примечание: не делайте этого; это, вероятно, сломает другие части вашей системы). Но. Python не создан для этого.
Я могу запустить python с python -i script
:
blockquote>-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, прочитать файл.
Проблема в основном в том, что вы пытаетесь скрыть информацию от пользователя. Однако для выполнения намеченной функции пользователю требуется эта информация. Это неразрешимая проблема.
Вы можете создать нового пользователя, сделать его владельцем скрипта и отключить доступ всех остальных к скрипту (разрешения 0700)
Для запуска скрипта используйте команду sudo следующим образом, так что вам нужно вводить пароль каждый раз, и это делает немного безопасности.
sudo -u newuser python /path/to/.hidden
Обновление: чтобы скрыть newuser от страницы входа в систему, установите для него значение uid ниже 1000 и установите для оболочки значение / bin / false, чтобы в любом случае не разрешать вход в систему, но все еще можно использовать sudo как этого пользователя