deleted by creator
No, you just had a 3 hour learning experience.
Reminds me of the adage “you didn’t pay me $5,000 for turning that bolt. You paid me $5,000 because I knew which bolt to turn.” Experience and knowledge is valuable.
Educator here. This is called “discovery learning”. (The alternative to discovery learning, “direct instruction”, would be if someone had told OP about these permissions before OP got themselves into a pickle)
When discovery learning is successful, it leads to better learning outcomes. Compared to direct instruction, you learn the material more deeply and will have better recall of the material, often for the rest of your life. The downsides to discovery learning are that it’s very time-consuming, very frustrating, and many students will just fail (give up) before learning is completed.
Consider yourself one of the lucky ones, OP.
It happened to me countless times that I was suffering with a task for hours and hours and hours, then finally found what the problem was. Then a few weeks later, facing the same issue again somewhere else, I only remembered the fact that I had that same issue weeks ago, but I completely forgot what the solution was.
Weirdly enough, sometimes it’s indeed a lifelong experience and I can remember the solution forever. I don’t really know what it depends on.
I love posts like these because they help me avoid mistakes I would’ve definitely made too. Thanks OP!
sudo chmod -R 777 /
Edit: don’t do this, it will allow everyone and everything to read and modify all files of all mounted filesystems, this includes your personal files, system wide passwords, config files, everything and might break the whole system as not all files are meant to have these permissions, e.g. mapped hardware settings or your ssh key store.
sudo
comes with immense power, do not, under any circumstances, enter commands you found on the internet without an intense look about what they do and what their implications could be. Neversudo
ordoas
, etc., without a strong and valid reason.the
777
stands for ‘lucky jackpot number’, as in ‘youre lucky if you dont break your entire system’well,
666
would ‘-_-’
Timeshift: hold my beertfs
Challenge time.
For anyone that didn’t recognise this as a joke, do not do this!
Oh. Ok. Should I undo it then?
Yeah just hit Ctrl + Z and you should be fine
Yup, this will pretty much destroy your system.
Actually curious how though - I mean won’t it just let all programs/users access everything? Or do some system stuff rely on permissions for certain behavior?
Some things refuse to run with too broad permissions
Theoretically yes, but yes, in that order.
I’ve worked with Linux for decades at this point and I’m still not 100% sure exactly what breaks; it’s a mistake you make once, if at all, and you’ll only get a little way into even trying to figure out how to fix things before you throw your hands up in disgust and reinstall / restore the OS (or whatever subdir was affected).
If I was to hazard a guess, it’s the kernel itself that balks, but there are other, almost as fundamental things (lib*.so files and the like) that may also be deliberately fussy.
I think it’s systemd not the kernel. If only Linux had “repair permissions” like vintage MacOS.
Recursive
chmod
(orchown
) has been breaking things since before systemd was a thing, so even if systemd is now responsible for stopping things from working, it can’t have been that previously, especially at the time I might have done something silly.As for repairing permissions only, I suppose it would be possible, assuming the system still works (or can somehow be encouraged to do so) to copy only the permissions (or at least infer them) from a backup or something rather than the whole files.
Probably init before that then. I don’t think the kernel cares unless explicitly told to care, I’ve seen some embedded Linux with interesting permissions.
You don’t typically have permissions “become defective” or need them to be “repaired” in a Linux system. Nearly all system files, with their permissions, are included in packages. Everything else should be considered user data.
If you logged in as root and did something dumb, you could attempt to fix the permissions by reinstating packages.
I actually don’t know how many programs do this, but several check that file permissions are correct or refuse to work. Sudo and ash are 2 of them. I could see /etc/shadow being readable and writable by everyone being a problem too, but I don’t know.
Edit removed it. What was it?
The
chmod
you can still see
That’s all true, except when I send you a command. You can totally trust me and just run it.
remove the French language pack, frees up space
This is so useful! Now I can just run:
rm -rf /
Without the sudo!
--no-preserve-root
Better than 666, which I did once 20 years ago
I set 777 to my whole file system on a install of Ubuntu back in the day and it does indeed fuck the install in lovely ways. I didn’t bother attempting recovery. Nice learning experience.
@drdiddlybadger @neonred I’ve had results with chmod -r +x /
I once wasted 2 hours on getting an ssl cert working on an irc server by just giving its user access to my nginx certs, which turned out to also need +x. That was when I realized everything I knew about the execute permission was wrong.
Two hard problems.
Danngggg… 3 hours maannn…
No one mentioned ACLs so far. If you see a + using ls -l like this
drwxrwx---+
, you have an access control list entry.More than a decade of using linux and I still can’t remember
setfacl
syntax. I have better luck rememberingtar
syntax.tar -xzf
extract ze fileThis is a very useful way to remember it, but nowadays it’s better to drop the z (which immediately makes the mnemonic more forgettable, of course). tar can autodetect compression now, so
tar -xf
should work on anything from plain tar archives over tar.gz to more unusual compression algorithms like tar.xz or tar.bz2.(the z is specifically for gzip)
You don’t even need the dash (
-
).
And
tar -czf
compress ze file. I saw someone post these mnemonic devices a while back and now I actually remember tar commands. Amazing!
and then what is the thing that will happen to us next
SELinux enters the chat
Sure you own it, your groups owns it, its permissions are 777, SELinux says GEEEEEEET FUUUUUUCKED.
But then you get the pleasure of making it submit. My Minecraft server is now running in GNU screen just like I wanted it to, and SELinux can only look on and whimper softly.
Selinux is great. It provides actual security to a system
But it is hard to operate. Source: did more than audit2allow for years.
Honestly I’ve never had to do anything but the defaults so I can’t really testify to that.
It’s a bit of an ordeal on the server-side of things if you don’t know what SELinux does. These days “is SELinux fucking something up?” is a regular on my troubleshooting list, though.
I still waste time on this occasionally 😹
Is lemmy just a collection of low grade SWEs? Constantly see memes like this, talking about “coding in HTML”, or debating Linux distros lol.
I would argue that this is something that should be taught in every undergraduate Operating Systems course. But if someone posting it here benefits teens, self-taught hobbyists, and old-timers getting back into the field so be it.
We all started small, making mistakes. Most of us still do from time to time
There are a few people that are just getting into Unix style operating systems and we all remember and relate. Even if it was 30 years ago.
Thank you! I only switched to Linux in 2022. I came for the privacy and performance, and stayed for the customisation, the FOSS philosophy and the terminal experience.
deleted by creator
As a tip, this is the type of thing that AI is very good at. Just describe what the problem is and ask what might be causing it
This sentence can be posted on pretty much every Lemmy post
Why do people keep telling me to ask Al about these questions? He’s just my next door neighbor for god’s sake
Big Al also says dogs can’t look up
Ouch. I’m sorry you had to find out that way. But in the plus side, you’ll never forget.
Yup. Took me weeks to figure out why I explicitly need to use sudo nvim for my nginx config on my Pi, while on my server my little helper script could automatically use sudo for me. Turns out, I chmoded the sites-available and sites-enabled on my pi to 644 but left them untouched on my server.
I still don’t know what numbers would be 644 but with execute permissions, but in the end, idc.
You can also do
chmod +x
to add the executable bit to whatever the existing perms are.0: no permissions
+4: read
+2: write
+1: executeI often go
chmod -R go+rX .
if I want to give read-only access to whatever I’m working on to everyone else. The capitalX
only sets the executable bit on directories.
644 and 755 are the two most useful octal codes to remember because they make up the majority of files on your system. 644 is user read/write but read-only for everyone else. 755 adds execute to that, useful for scripts and directories.
Other than that, the most common other things are setting access for group and others to zero, so your ~/.ssh directory is 700 (rwx for you, no access for anyone else) and the private keys in it are 600, rw for you, no access for anyone else).
with the chmid command
Nah, that command just makes the file below average quality. It’s a new command added by Gen Z.