Linux's file permissions are over 50 years old, and three letters still decide who can touch every file on your PC

Linux's file permissions are over 50 years old, and three letters still decide who can touch every file on your PC

Published Nov 3, 2026, 8:00 PM EST Simon is a Computer Science BSc graduate who has been writing about technology since 2014, and using Windows machines since 3.1. After working for an indie game studio and acting as the family's go-to technician for all computer issues, he found his passion for writing and decided to use his skill set to write about all things tech. Since beginning his writing career, he has written for many different publications such as WorldStart, Listverse, and MakeTechEasier. However, after finding his home at MakeUseOf in February 2019, he would eventually move on to its sister site, XDA, to bring the latest and greatest in Windows, Linux, and DIY electronics. If you peek deep enough into Linux, you'll often find remnants from long ago, still chugging along today. But did you know that a technology that emerged in 1971 not only lives on your Linux PC to this day, but it still does the job it was invented for? This is the story of rwx, how it came to be, and how you can check it out on your own system. The story begins with the need for a simpler way Things were just too complicated To see where we arrived, we have to take a look at where we started. To do that, we need to turn the clock all the way back to the 60s. Back then, there was an operating system called Multics, and the way it decided who could access which files was a little complicated. On a Multics system, every file contained a list of permissions. It was, essentially, like a doorman with a clipboard. Whenever someone asked to do something with the file, the OS would go down the list to check for permissions. These permissions defined each user, the project group they're part of, and their permissions. When the doorman had validated the level of access the user has, it only allows them into those parts. It was secure, but it was also quite a burden. From an administration standpoint, ensuring each file has a proper "clipboard" to work off was a bit of a nightmare. Plus, going through this list every single time someone wanted to use a file cost memory and processing power; not something that a computer from the 60s had in droves! Two researchers devised a simpler way to do things Nine bits, three intents Two researchers, Ken Thompson and Dennis Ritchie, left Multics in 1969. They wanted a system that could handle permissions for this brand-new OS they were working on, called Unix. However, they really didn't want to use the same system Multics did; they wanted something leaner, easier on the memory, and far easier to understand. As it turns out, they discovered that a file's clipboard didn't necessarily need the granularity of every single person and every single group with every single permission. In fact, they figured out you could do quite a lot with just nine numbers, broken up into three groups. Here's how it worked. In the Unix Programmer's Manual from 1971, Ken Thompson and Dennis Ritchie used base-2 mathematics to represent the levels of permission. Base-2 is a little different from our main counting system, base-10. In base-2, the first digit (on the far right) represents 1, the second is 2, and the third (on the far left) is 4. You also can't use a number higher than 1 in any position, so you're stuck with 0s and 1s, which is the binary everyone talks about when discussing how computers store data. While we, as humans, see the number '101' and read it as one hundred, no tens, and one one (making a hundred and one), a computer using base-2 would see one four, no twos, and one one. We can then convert that into base-8 by adding up the values: a four and a one equal five, so '101' in base-8 is '5'. With these three digits, the smallest number is 000 (which is 0 in base-8) and the highest is 111 (one four, one two, and one one, equals 7 in base-8). So, here's how Ken Thompson and Dennis Ritchie put that knowledge to use. They took those three digits in base-2 and assigned each one a job. The leftmost digit represents read permission, the middle is write permission, and the rightmost is execution permission. A 1 means it's allowed, and 0 means it's not allowed. So, if you saw 101, that would mean someone could read and run the file, but couldn't edit it. And because it's in base-2, you can convert that to base-8 and get the number five. So, if you gave someone 'rule five', they could read and run it, but not edit it. Rule zero allowed no access at all, and rule seven allowed for everything. Ken Thompson and Dennis Ritchie then combined three of these trio numbers. The first trio is what the owner can do with the file, the second is what people in a recognised group can do, and the last is what everyone else can do. So, if you want your owner to have full access to the file, members of a recognised group to have read and execute permissions without editing it, and everyone else to only be able to read the file, you can give the owner '111', the group '101', and everyone else '100' for a string that just reads "111 101 100." And we can convert that into the more human-friendly base-8: '754'. With just nine base-2 numbers, or three base-8 ones, the two researchers could define three levels of access for three different types of users. Very smart. The three numbers in base-2 became known as Read, Write, and Execute, or 'rwx' for short. And those three letters defined who could access what. The rwx system makes its way onto Linux It was there from the very start Fast-forward to 1991, and a young Linus Torvalds was creating Linux. He wanted it to be POSIX-compliant so that it worked with existing Unix tools, and that meant adopting the rwx system. So, that's exactly what he did. While Linux security has obviously come a long way since then, you can still see the effect rwx has on your system today. If you enter "ls -l" into your terminal, the bit to the left of each line is the rwx system in action. For instance, the first line of my output reads: drwxr-xr-x. 1 simon simon 76 Oct 5 19:26 AppImages The seemingly random jumble of letters at the very start is rwx doing its thing, around five decades after it first hit the scene. It's made up of four parts: The d at the very start tells the system that this is a directory. The rwx immediately after the d are the permissions for the owner: read, write, and execute. The r-x after that are the permissions for the group: read and execute, but no writing. Note how the lack of write permissions is represented by a dash where the w should go. The final r-x is for everyone else, and it's, again, read and execute, but no writing. That would translate to 111 101 101, or 755 in base-8. A much simpler method than the huge clipboard. Linux is a treasure trove of ancient tech The next time you see something odd in a Linux terminal output, do a deep dive into what it means and how it came to be. You never know; you may stumble upon a ~50-year-old permissions system that's still going strong today!

Original Source

Read the full article at Xda-developers →

KhanList aggregates and links to publicly available news content. We do not host full articles from third-party sources. Always verify important information with original sources.