Ответ, как всегда, «это зависит». Что вы имеете в виду под «уникальным идентификатором»? Изменится ли этот идентификатор, если содержимое файла будет изменено, или вы сочтете это тем же файлом? В Unix inode вместе с устройством определяет «уникальный идентификатор», но он сохраняется даже при изменении содержимого.
Если вы хотите узнать, что касается файла, вы можете использовать inotify на том же компьютере, чтобы узнать, что происходит с файлами (или его предшественником: dnotify).
Если вам нужно, чтобы он был на разных машинах, то я предполагаю, что samba будет использовать inotify для получения уведомлений и преобразования их в события SMB / CIFS, но я не знаком с этим.
Если вам нужен идентификатор на основе содержимого и, следовательно, вы используете хэши, вам нужно перейти в пользовательское пространство. Например, это именно то, что делает Git (система контроля версий): он отслеживает хеши содержимого, чтобы иметь «уникальный идентификатор».