Рейтинг:0

Есть ли способ определить, какой компьютер создал файл в общем ресурсе Samba (смешанная среда)?

флаг za

В настоящее время я работаю над приложением небольшого побочного проекта, которое использует средство наблюдения за файлами для отслеживания изменений в указанных папках. Одним из наиболее распространенных способов использования приложения является сетевая папка, такая как samba. Примером одного из таких применений может быть:

  • Один Windows-клиент
  • Один клиент MacOS
  • Один Linux-клиент
  • Один сервер Ubuntu с сервисом Samba

Когда клиент Windows добавляет файл в общий ресурс, уведомляются только клиент MacOS и клиент Linux. Однако наблюдатели за файлами на каждом клиенте (включая клиент Windows) обнаружат новый файл. Чтобы предотвратить получение клиентом Windows («создателем» файла) уведомления, мне нужно, чтобы приложение могло знать, кто создал файл.

// какой-то странный псевдокод
функция onFileCreated(e) {
    если (e.File.Creator == GetHostName())
        возвращаться;

    SendToastNotification (электронный файл);
}

В настоящее время каждый клиент входит в систему под одним и тем же пользователем Samba, и атрибут Owner отображает пользователя Samba (как и должно быть). Я не совсем понимаю внутреннюю работу Samba, но вот несколько подходов, о которых я думаю:

  • У каждого клиента есть свой пользователь на сервере Samba (было бы утомительно добавлять больше клиентов в будущем)
  • Каждый клиент несет ответственность за знание того, что он только что записал файл в общий ресурс Samba (потребуются привилегии высокого уровня для доступа к обработчикам файлов).
  • Когда файл загружается в общий ресурс, сервер Samba каким-то образом может добавить произвольный пользовательский атрибут файла, обозначающий имя хоста любого клиента, создавшего файл (наилучший сценарий, если это возможно)

Возможно, есть варианты получше. Спасибо заранее.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.