

I’m reminded of the horrid example showcased on the amber-lang website previously.



I’m reminded of the horrid example showcased on the amber-lang website previously.



There was this recent attack to XZ utils, which shows that more attention is needed on the code being merged and compiled.
XZ was made possible largely because there was unaudited binary data. One part as test data in the repo, and the other part within the pre-built releases. Bootstrapping everything from source would have required that these binaries had an auditable source, thus allowing public eyes to review the code and likely stopping the attack. Granted, reproducibility almost certainly would have too, unless the malware wasn’t directly present in the code.
Pulled from here:
Every unauditable binary also leaves us vulnerable to compiler backdoors as described by Ken Thompson in the 1984 paper Reflections on Trusting Trust and beautifully explained by Carl Dong in his Bitcoin Build System Security talk.
It is therefore equally important that we continue towards our final goal: A Full Source bootstrap; removing all unauditable binary seeds.
Sure you might have the code that was input into GCC to create the binary, and sure the code can be absolutely safe, and you can even compile it yourself to see that you arrive at the same bit-for-bit binary as the official release binary. But was GCC safe? Did some other compilation dependency infect the compiled binary? Bootstrapping from an auditable seed can answer this question.
There’s some time limit before having to re input it.
Inputting a password multiple times into sudo has downsides too. Larger window for attackers to do something like: add a directory to your path, which has a fake sudo in it, and capture your password.


Yes. Memory allocated, but not written to, still counts toward your limit, unlike in overcommit modes 0 or 1.
The default is to hope that not enough applications on the system cash out on their memory and force the system OOM. You get more efficient use of memory, but I don’t like this approach.
And as a bonus, if you use overcommit 2, you get access to vm.admin_reserve_kbytes which allows you to reserve memory only for admin users. Quite nice.


If by “unused” you mean not actively storing data, then the Linux kernel docs disagree.


Unless you have the vm.overcommit_memory sysctl set to 2, and your overcommit is set to less than your system memory.
Then, when an application requests more memory than you have available, it will just get an error instead of needing to be killed by OOM when it attempts to use the memory at a later time.
If such a project were to become compromised (the way XZ-Utils was), it would eventually spread to Ventoy.
What a lot of people don’t know is that the XZ attack entirely relied on binary blobs: Partially in the repo as binary test files, and partially in only the github release (binary).
If someone actually built it from source, they weren’t vulnerable. So contrary to some, it wasn’t a vulnerability that was in plain view that somehow passed volunteer review.
This is why allowing binary data in open-source repos should be heavily frowned upon.


You can modify the keybinds in software too. You would need to change your console keymap (TTY) and your desktop environment keybindings. Programmable keyboard is most likely easier though.
I played around with it and changed both to just use F1 = tty1 and so on, without requiring CTRL+ALT.


Your needs must be different than mine.
I press one button combination and have root without ever entering a password. I press a similar combination and go back. Not sure how this is a pain in the ass.


All I do is have agetty --autologin root tty2 linux run as a service. It launches on startup, and I just hit CTRL + ALT + F2 if I ever need a root shell.
All its doing is just auto logging-in as root on TTY2.


From what I’ve read, no. Though it doesn’t solve the fundamental problem of a root process handling untrusted input from a regular user.
The TTY method is IMO better as it ties privileges to a piece of physical hardware, bypassing the complexities of userspace elevation of privileges.


The nosuid mount option disables this behavior per mount. Just be sure you don’t use suid binaries.
Example: sudo or doas. I replaced those with switching to a tty with an already open root account on startup. Generally faster and (for me) more secure (you need physical access to get to the tty).


… Alpine is designed to be friendly to corporations who want to lock down their devices and prevent you from modifying them.
“Designed to” assumes intent. Alpine is absolutely designed to be Small, Simple, and Secure. Using busybox instead of the GNU coreutils is a means to this end. Using musl instead of glibc is a means to this end.
On the about page they list why they use these tools. The licensing is not listed at all.


The difference would be that RMS is extremely well-versed in computer technology. He understands the problems with non-free software.
Someone with his knowledge could choose to disregard those issues for convenience, but Stallman is willing to make great sacrifices.


But now it’s too long for a power user.
Short and Long options are a thing.
Ex: GNU rm can use
--recursive
-r
or
--force
-f


To be fair, that is an issue with the implementation of the given commands, rather than the concept of the command line.
You could create a program that operates like so:
remove-file --dont-ask-for-confirmation house.png


Linux is software.
It doesn’t contain this intrinsic meaning you refer to.


It’s self-explanatory to you because you’re already familiar with the logic, language, conventions. I’m guessing, you grew up with all that from childhood…
This argument can be used as a reason to implement GUIs.
If we wish to market to an audience that has had some basic experience with using Windows and Mac, we can skip some of the reteaching by implementing familiar GUIs


Very simple actually: don’t use 100% transparency.
Just use something like 80-90% opaque (10-20% transparent) and use the background color as black so it just dims whatever us behind it.
You can have both function and form.
And static linking even better than both