Live data from Hacker News

The Linux Upskill Challenge

theleo.zone

81–90 of 92 posts

Re: The Linux Upskill Challenge

#81
post #53

So, in years past, I lamented that people didn’t know basic sysadmin skills and therefore invented complex solutions to what are rather simple problems of configuration within common Linux software. They’d write entirely new pieces of software to deal with something I saw as trivial, and they did this because they didn’t know a solution existed. These days, I don’t lament this at all. As I see it, people wanted to ma…

> As I see it, people wanted to make new on their own instead of learning what was there. This is just how younger people are.

You cut the divide between "forgers" and "honers" along an age boundary, but that view of reality wrong. It has nothing to do with age, the mindset has other reasons. Also, as with most personality characteristics, they rarely change once developed, I wonder what gave you the idea.

When I was young, I was a "honer" all along and have remained thus. I was interested in the history of Linux and its ancestors, and preferred making use of past and modifying contemporary software rather than writing new software.

Re: The Linux Upskill Challenge

#82
post #79

Earlier quoted context omitted.

Top three bits of pain from me: 1. Constant weak reparsing of formats in shell pipelines. 2. Completely dangerous and unsafe API and principal programming language. 3. Trying to remember several different domain specific languages.

> 2. Completely dangerous and unsafe API and principal programming language. Apart from the fact that these days you can hardly call C principal (yes, it's still used for the Linux and BSD kernels, but quite rarely for any new userland project at all), what are your main gripes with the API? It is well understood, stable, most people know its limitations, it's being used by most servers and clients on the Internet, s…

What?!?! Most of the userland is C and we're still finding gaping holes in it after decades.

As for the API, the entire permissions system is just a shit show (inflexible, setgid hack, no MAC, terrible ACL implementation), ioctl (hack job), signals (totally inconsistent handling), links (hard complexity), open(2) flag craziness, then the semi userland crap particularly PAM recently and anything which involves delegated permissions from yp/nis/ldap. Urgh it's hell.

I'd rather write win32 if I'm honest these days. At least they have the honesty to break the API when it's dead by adding Ex on the end of a new one.

Re: The Linux Upskill Challenge

#83
post #32

Honestly most of the people that approach me to learn Linux, I have them follow the Gentoo Handbook to compile and configure a Linux workstation from scratch.

I have a friend who's asked me to teach him a bit about Linux and computers in general when we hang out. We haven't done much, basically I let him muck around in a TTY for a bit one day. I've considered just giving him one of my old spare PCs and having him build his own Gentoo system.

Any tips for following this approach?

Re: The Linux Upskill Challenge

#84
post #63

I think the next level above this might be https://sadservers.com/

Oh hi, author here, AMA :-) I'm happy that a lot of people use and find SadServers beneficial while not costing me a lot of money. Still a lot of features to implement on the website and a shrinking backlog of scenario ideas to materialize (if somebody has ideas for Linux/Docker/Kubernetes etc troubleshooting scenarios, please let me know).

I've just tried several of your challenges and they're all painfully accurate for real-world scenarios. I will definitely point people at these next time I'll get asked how I learned to fix !

As for suggestions, here are some random things I needed to do recently:

- resize the boot partition of an OS (don't know how doable this is with your vserver setup, maybe use one of those WASM Linux emulators?)

- set up a systemd service/timer/socket that starts at the right time and responds correctly to reloads/restarts

- set up IPv6 correctly

- troubleshoot why a device wasn't connecting to the WiFi (DHCP service problem!)

- set up a VPN (wireguard/openvpn/etc). Expert mode: make the remote endpoint have an A/AAAA record that the server isn't listening on

- troubleshoot why some of my devices couldn't ssh into a server despite the pubkeys being in the authorized_keys folder (old sshd version didn't understand the most recent key algorithm!). Bonus problem: ~/.ssh had the wrong permissions so the authorized keys weren't loading.

- renew an ACME/letsencrypt certificate in nginx in proxy mode (location / was proxied but location /.well-known/... shouldn't have been!)

- check your preferred smtp daemon to see if it's set as an open relay

- upgrade postgres from an old version to a new version without data loss (hard mode: the partition postgres uses by default doesn't have the free space to make a copy and migrate the data)

- figure out why the firewall isn't blocking port 1234 despite UFW being enabled and a block-all rule being present (it was because of Docker iptables rules overriding UFW rules)

- update a package that has some kind of dependency issue (i.e. an external repository that is no longer needed)

- make Ubuntu shut up about Ubuntu Pro and stop it from fetching ads on ssh login

- alter a systemd service file so that it no longer runs as root (hard mode: set up dynamic users and other hardening features)

Re: The Linux Upskill Challenge

#85
post #63

Earlier quoted context omitted.

Oh hi, author here, AMA :-) I'm happy that a lot of people use and find SadServers beneficial while not costing me a lot of money. Still a lot of features to implement on the website and a shrinking backlog of scenario ideas to materialize (if somebody has ideas for Linux/Docker/Kubernetes etc troubleshooting scenarios, please let me know).

I've just tried several of your challenges and they're all painfully accurate for real-world scenarios. I will definitely point people at these next time I'll get asked how I learned to fix ! As for suggestions, here are some random things I needed to do recently: - resize the boot partition of an OS (don't know how doable this is with your vserver setup, maybe use one of those WASM Linux emulators?) - set up a syste…

thanks! (some of these ideas are not possible to implement in the current setup but I can explore some of the other ones)

Re: The Linux Upskill Challenge

#86
The post mentions using crontab for scheduling tasks. Recently, I needed to use systemd user account job scheduling. I found it pretty nice once I got the hang of it.

Re: The Linux Upskill Challenge

#87
post #78
post #77

Earlier quoted context omitted.

I see how that's a problem. I know that GPU stuff is an area that requires some impurity on foreign Linux with Nix. I didn't realize that had implications for libc versions. :(

It wouldn't be a problem if it was easy to recompile the entire Nix system with a different glibc version.

To change glibc do you have to override the stdenv? Why is that hard? Do you have to make a new bootstrap or something awful like that?

Re: The Linux Upskill Challenge

#88
post #10

Earlier quoted context omitted.

hehe.. lsof | grep bad.log ps -ef | grep (pid) sudo apt remove python3 kill -9 (pid)

I got lucky: ps ax showed a python3 process running /home/ubuntu/badlog.py, so I knew to kill that. If it wasn't named so obviously it would've been much harder to find it.

lsof is list open files. Good for finding things like what process is writing to a log file. You could also go dig around in /proc

Re: The Linux Upskill Challenge

#89
post #82

Earlier quoted context omitted.

> 2. Completely dangerous and unsafe API and principal programming language. Apart from the fact that these days you can hardly call C principal (yes, it's still used for the Linux and BSD kernels, but quite rarely for any new userland project at all), what are your main gripes with the API? It is well understood, stable, most people know its limitations, it's being used by most servers and clients on the Internet, s…

What?!?! Most of the userland is C and we're still finding gaping holes in it after decades. As for the API, the entire permissions system is just a shit show (inflexible, setgid hack, no MAC, terrible ACL implementation), ioctl (hack job), signals (totally inconsistent handling), links (hard complexity), open(2) flag craziness, then the semi userland crap particularly PAM recently and anything which involves delegat…

> I'd rather write win32 if I'm honest these days

You might need to train yourself to ignore the ads blinking at you from your start menu and taskbar though.

Re: The Linux Upskill Challenge

#90
post #89
post #82

Earlier quoted context omitted.

What?!?! Most of the userland is C and we're still finding gaping holes in it after decades. As for the API, the entire permissions system is just a shit show (inflexible, setgid hack, no MAC, terrible ACL implementation), ioctl (hack job), signals (totally inconsistent handling), links (hard complexity), open(2) flag craziness, then the semi userland crap particularly PAM recently and anything which involves delegat…

> I'd rather write win32 if I'm honest these days You might need to train yourself to ignore the ads blinking at you from your start menu and taskbar though.

I’m on windows 11 and haven’t actually noticed any yet. I’m not sure if that’s because I’m immune to all forms of advertising or I turned something off though.
Post reply on HN