Я пытаюсь сохранить пароли, которые обычно пишутся в файле py, отделенном от скрипта, и делают так, чтобы эти пароли были доступны только root и python всякий раз, когда это необходимо скрипту. Я пришла в голову мысль, читая это: https://stackoverflow.com/a/158248/3892678Linux/Python Как импортировать корневой модуль доступа root как пользователь без полномочий root?
Чтобы сделать это, я пытаюсь скрыть пароли, которые будут использоваться в a_script
в другом файле passwords
ру. passwords
может быть прочитан, написан и выполнен (-rwxrwx---
) от пользователя root: root. Как другой пользователь tomato
, я хочу запустить a_script
, который импортирует пароль с passwords
для использования в файле. Чтобы сделать это так, чтобы этот пользователь мог запускать файл с правами root, я увеличил файлы setuid
и setgid
с помощью chmod 6777 a_script.py
, так что у файла есть разрешения -rwsrwsrwx
. Теперь, как пользователь tomato
, я запускаю python a_script.py
, но я возвращаюсь ImportError: No module named passwords
. Я думал, что установка uid и groupid как s будет запускать файл как root, у которого должны быть разрешения читать passwords
. Что я делаю не так?
Вот a_script.py
import os
print "uid: %s" % os.getuid()
print "euid: %s" % os.getgid()
print "gid: %s" % os.geteuid()
print "egid: %s" % os.getegid()
from passwords import MYPASS
print MYPASS
Все операторы печати, прежде чем я получаю ImportError
являются 1001
что tomato
. Спасибо за вашу помощь. Может ли быть лучший способ «скрыть» пароли в другом файле, чтобы только root и программы, в которых он нуждается, были единственными, у которых есть доступ к нему?
УИП флаг устанавливает EUID для пользователя, владеющего исполняемым. Вы пытаетесь это просто для удовольствия, или вы хотите получить то, что на самом деле безопасно? –
@SvenMarnach Можете ли вы рассказать об этом немного? Это то, что должно быть на самом деле безопасным. Я не уверен, что это лучший способ сделать это. – pyramidface
Итак, если это должно быть на самом деле безопасно, с чем он должен быть защищен? Есть ли локальные пользователи на машине Linux, которые не должны видеть пароли? –