File Naming - Actual vs Symbolic

I was curious if 'NIX systems offered some sort of file naming scheme that is not offered in the Windows environment.
If that is your whole question:

Yes, file naming is different between Windows and Unixes. But the differences are minor. Here are the ones I can think of off-hand, with the most important one up front:
  • Unix has hard links. This allows the same file to appear at two different paths, for example two different names in the same directory, or in two different directories (which have to be within the same file system). The file exists only once, and gets deleted when its last name vanishes (which implies that an existing hard link always points to an existing file). Both files will have the same attributes: size, permissions, ownerships, and other attributes (EAs, ACLs and all that stuff). The two directories the files are in may have different attributes though.
  • Unix has soft links. In a nutshell, this means: when a program tries to use this file, it usually interprets the content of the soft link as a file name (relative or absolute) and uses it instead. That is called "following the link". But programs can explicitly decide to not follow the link, and operate on the link instead. Soft links do not have referential integrity: the link can point to a file that does not even exist. For that reason, one should think of soft links as a way of storing a short string in a file system, and that string can be pretty much arbitrary; by convention it is a file name, and most programs will interpret it that way, but I can instead store a paragraph of the novel I'm writing in there.
  • Unix can have files that have no name at all. Those files are by construction temporary, since they get automatically deleted when the program(s) using them right now ends. They can't be found in directory listings (duh).
  • Windows has neither hard nor soft links, and I think it uses a different mechanism for temporary files. Instead, Windows has reparse points, which can be used in place of soft links, but are actually much more powerful.
  • Most modern Unixes allow relatively long file names, with a typical length of 1024 per component (not the whole path, but each individual name entry along the path). If I remember right, Windows restricts each name to about 200 or 300 characters. In practice, this makes little difference, as few people use file names that insanely long.
  • In Unix, the file name is a sequence of bytes, and the character encoding is unspecified. So it is possible to store a valid ISO8859-1 file name, and when reading the file name back (for example with the readdir() call, which is what ls uses) interpret the bytes wrongly as Unicode in UTF-8. The kernel and file system really have no idea what the sequence of bytes means, and how it should be rendered on the screen, or how it should be encoded into a character set. In practice, this makes little difference today, as nearly every process uses UTF-8 encoding, so one can pretty much (but not completely!) rely on file names being UTF-8. In contrast, Windows has always used a 16-bit encoding of the windows character set for file names (at least starting with NTFS). That means that file names can not always be translated between the two: it is possible to have two files names in Unix that would be interpreted as the same file name in Windows if transcoded, and that doesn't work when moving data back and forth.
  • On Unix, any byte (character?) is valid in a file name, except for the NUL character (which ends the name string), and the slash character. On Windows, a whole bunch of characters and strings are invalid: You can't use file names such as PRT: or A>B. My personal taste agrees with Windows here.
  • Most Windows file systems are case blind or single case. In addition the old FAT file system (the original DOS and Windows file system) was restricted to 8.3 length. Most Unix file systems are case sensitive and can store both cases. Exceptions exist; for example, on a Mac you can configure a traditional Unix file system to be case blind but case preserving, and I think modern Windows file systems such as ReFS can be configured either way.
 
I am only an admin level user in one of 350 user groups.
This implies there's one or more system admins that have set up the different groups. Contact them.

Unix has hard links.
Unix has soft links.
Windows' NTFS does too. It's rarely used with Windows itself, but the filesystem supports it. There are various tools available that will happily create them for you. On a previous Windows machine I had C:\Users\ symlinked to D:\Users\. Even though you can change the location of the home directories through some registry keys, a LOT of stupid applications had C:\Users\ hardcoded. The symlink worked, none of the applications protested or were even aware it actually went to D:\User.

I'm guessing this was once added to NTFS due to the POSIX certification they once had. And these days it found a new use for it through WSL/WSL2.
 
I use a symbolic link when I relocate the paging file away from C: (ssd) to D: (physical).

Windows shortcut are just another type of symbolic link.
But, they are not self-adjusting, meaning if I rename the target file, the link points incorrectly to a non-existent file.

In my situation as a group admin, I rename a given file.
Logging out then back in as a regular use account, the old file name still exist, as well as the contents of the file even though under a new file name.
 
Let me get back to my questions, which haven't been answered yet (which makes it harder to help):

I am only an admin level user in one of 350 user groups.
If you look at /etc/passwd and /etc/group, are the "users" and "groups" of the web interface reflected in users and groups of the operating system?

In my situation as a group admin, I rename a given file.
Logging out then back in as a regular use account, ...
When you say "rename a file", do you mean you use the web interface and ask it to rename a "file", but you don't even know whether that file is indeed a Unix file or not? Or can you see the files from the command line of the server, and you log into a shell account and use an "mv" command to rename the file?

You have said before that you have no access to the file system, but then you have also said that you observe both files and soft links, which makes me think that you do have access to the file system.
 
Again, no system access, web interface only.
I have no access to /etc or anything else on the disk.
I have no access to users and groups.

I do observe files and soft links in NTFS on windows systems, but this is not the environment I'm asking about.

My group has a Vault for document storage.
As a group admin, I have create/modify/erase rights to these files.

I am cleaning up poorly named files such as "my old 1923 document" by renaming to "1923.01.17 document"
Refreshing the vault directory, I see my renamed document when logged in with my admin level account.
Logging in as a standard user, I only see the original file name, and not my renamed file name.
 
So we don't know whether the things you call "files", "groups", "admin", and "rights" are actually implemented using the Unix constructs of the same name. I think until we can verify that, it is safer to assume that the web app is using a different backend (probably a database), and all you're seeing is a bug in that web app. (Bug could be an "undocumented feature" from a different viewpoint, but your description of file names not changing does make it sound like a bug.)
 
Why? Because I asked a civil question hoping to get an honest and informed answer rather than this crap.

If you read my comments over and again I am asking about the system I am accessing not the system I am using for access.

That system is a ‘nix flavor and absolutely not a windows system.
 
Let me summarize what we know. You have a system that stores data, with the data structured by user and as files. You have no access to the system itself, other than through a custom web server interface. You don't even know what OS that system runs, other than it is "some Unix flavor". You do not have documentation for the web service, nor can you contact the vendor who created it.

When using the web interface, you observe behavior that you find strange, and makes you think the same "file" might have multiple "names" depending on the "user". We have no idea how the concepts of "file", "name" and "user" that you see in the web interface correspond to things on that system. Matter-of-fact, we strongly believe that what the web interface calls "user" is not what the Unix server calls "user" (the latter in the sense of user entry in the passwd file, with UID and all that). Most likely the web interface actually synthesizes all the concepts such as "user", "file" and "name" internally to itself.

You have not given us any information other than what I have summarized above, as far as I can see. Now you want to know what the strange behavior is. In a nutshell, you're asking us what happens inside a black box, but you are not giving us any information about what the black box is, and we can't open it or look inside.

Most importantly, we don't even know what flavor of Unix the server is running, so we don't know whether this is a FreeBSD-specific question. Statistically speaking, it is very likely that the server runs Linux instead (simply because 99% of all servers in the world run Linux). If the server is much older (say 20 years old), it could also be SysV, or Solaris, or AIX, or HP-UX, or any other flavor. If it even is one of the *BSD flavors, we don't know which one (although among the three common ones, FreeBSD is more likely to be used on a server, compared to OpenBSD or NetBSD). And we have no idea what FreeBSD version it might be, and what underlying file system (ZFS or UFS) is in use. And given your steadfast refusal to give us any information, we won't be able to give you any more answers about FreeBSD.

You also have not told us what the web interface software is. If you tell us for example it is "Yoyodyne golf course management system, Version 3.14.159, dated 2023/07/04", then someone here might know something more, or we could go and find documentation. This is all information you could easily collect, for example by doing "ssh <server>" and looking at the login banner, or finding the "about" section of the web interface.
 
Yep.
All I wanted to know was if my original question was possible on a unix-like system.
I asked an honest question to those in the know about unix systems.
All I got was a ration of shit.

My organization, which will remain private, bought the vendor and this application, which will also remain private.
This will hopefully give me a bit more access to their tech folks, since we now own them.

You can have the last word.. I am done with this topic.
 
Back
Top