I have 3 computers: One runs windows 10, another one runs Debian and the last one act like an NAS. I store my captured pictures to my NAS. What I would like to do more is to add a tag to each photo. I tried to do so from my Debian. I went on properties and added a tag, then I run over to my Windows 10 machine to check how it worked. But it seems it did not. Do I need to have a special program to add a tag for images? Another strange thing is that, when I add a tag to a photo on Debian search it does not look for it.
You need to get a clear concept of what data is stored where. I assume your images are files, maybe in JPEG or a camera-specific RAW format. So where do the tags go? There are some options:
A database (on the NAS?) stores the tags, and relates them to the images. In that case, the DB must be accessible by all client machines (Debian and the other one), and they all must have software to interact with that database in the way you expect.
The tags are stored inside the image files as metadata. Desktop search engines tend to scan all files and remember where they've found what metadata. This memory is called cache, it's a kind of database which would reside on the individual machine. Now if you change the tag on one machine, the other one would have to update its cache.
The tag database isentirely local to, e.g., the Debian machine. The other machine would never see this information.
Other options are possible.
The take home message is this: When you create tags, or any kind of data, make sure you have a very precise concept of where this data is stored and which programs access the data. When using multiple machines to access/modify that data, make sure you understand the synchronisation process.