Вход в систему - PullRequest
       37

Вход в систему

0 голосов
/ 23 июня 2009

Пусть Мой системный логин - tom2deu. У меня есть одна программа на Python. Теперь я собираюсь изменить эту программу Python.

Мой вопрос

Можем ли мы напечатать мой логин в отдельный блокнот или любой другой файл?

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

Ответы [ 4 ]

2 голосов
/ 23 июня 2009

Я не уверен, какую проблему вы пытаетесь решить, но если вы хотите отслеживать изменения в исходных файлах, вам, вероятно, следует использовать систему контроля версий, такую ​​как Subversion . В двух словах, он будет отслеживать все изменения в ваших исходных файлах, а также управлять конфликтами (когда два человека пытаются изменить файл одновременно).

2 голосов
/ 23 июня 2009

Если вам нужно общее решение, вы должны взять pyinotify, который является оболочкой для функции inotify ядра Linux (версия ядра> = 2.6.13). С его помощью вы можете зарегистрироваться для определенных событий в файловой системе, например, например. в следующем коде:

from pyinotify import WatchManager, ThreadedNotifier, ProcessEvent, EventsCodes

file_to_monitor = "/tmp/test.py"

class FSEventHook(ProcessEvent):
    def __init__(self, watch_path):
        ProcessEvent.__init__(self)

        wm = WatchManager()
        wm.add_watch(watch_path, EventsCodes.ALL_FLAGS['IN_CLOSE_WRITE'], rec=False)
        self.notifier = ThreadedNotifier(wm, self)

    def start(self):
        self.notifier.start()

    def process_IN_CLOSE_WRITE(self, event):
        if os.path.isfile(event.pathname):
            print "%s changed"%pathname

fshook = FSEventHook(file_to_monitor)
fshook.start()

Поддерживаются следующие события: IN_MOVED_FROM, IN_CREATE, IN_ONESHOT, IN_IGNORED, IN_ONLYDIR, IN_Q_OVERFLOW, IN_MOVED_TO, IN_DELETE, IN_DONT_FOLLOW, IN_CLOSE_WRITE, IN_MOVE_SELF, IN_ACCESS, IN_MODIFY, IN_MASK_ADD, IN_CLOSE_NOWRITE, IN_ISDIR, IN_UNMOUNT, IN_DELETE_SELF, ALL_EVENTS, IN_OPEN, IN_ATTRIB. Для каждого из них вы должны реализовать свой собственный метод process_XXX(), который будет вызываться в случае срабатывания события.

1 голос
/ 23 июня 2009

попробуйте это ..

импорт ОС
print os.environ ['USERNAME']

или

os.getlogin ()

затем сохраните в переменной и используйте обработку файла, чтобы сохранить ее как текстовый файл ..

0 голосов
/ 23 июня 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...