• 2 Posts
  • 16 Comments
Joined 9 months ago
cake
Cake day: January 28th, 2026

help-circle
  • I have it on all my home networking equipment, my router and my APs, and a wifi bridge for my SBCs. My experience has been that it is just as simple as the proprietary firmware, and more robust. The catch is that I chose each piece of equipment knowing that I would flash custom firmware onto it, so they were ones the OWRT wiki showed as being simple to flash.

    Which model TP-Link are you going with? The page for whichever model on the OpenWRT wiki should tell you whether it’s easy or difficult to flash and revert



  • AntiX is “proudly antifascist,” so unlikely to allow transphobia on their forums. It offers runit, sysVinit, dinit, s6-rc and s6-66 as its init systems. AntiX-core is the stripped-down system that lets you start from pretty close to scratch, so you get to mostly configure it yourself. It’s based on Debian, and the sister distro of MXLinux, so it’s guaranteed to work on older hardware. It’s super lightweight and doesn’t tax my Flex 2 (which isn’t exactly powerful hardware)



  • Yeah, it definitely makes browsing a lot more hands-on, and the lack of cross-device syncing means that you’re constantly duplicating work. There’s probably a way to export settings and diff/patch and sync the settings files for each device, but I just haven’t bothered; seems like a lot of time investment to automate something that takes me seconds to do manually.

    On the other hand, there were two big shifts for me after I started using it. One was when I got the sites I use frequently all set up after a few weeks, it became a lot smoother sailing after that. The other was when I finally took the minute to find the setting to default (temporarily) allow, but only for the current domain (after like a year or two on default deny everything).

    It’s now rare that I visit sites where I feel like I’m missing out without the added scripts. The only times that has really changed is when everything started implementing anti-scraper measures, and sites along the high seas that have trouble streaming videos from other servers.



  • They can run 100’s of scripts on a single page from every identity broker. They employ the best data scientists, to figure out every possible way.

    The impact of this is probably greatly reduced by anti-JS measures like NoScript. Some sites probably still bundle fingerprinting code into their own scripts, but the really big players contract that out to companies whose entire purpose is data-harvesting, and that’s easily defeated by denying scripts from outside domains


  • Not to be that gal, but… the GNU site’s Bash Reference Manual documents everything you could ever want to know right up until you get into weird edge cases and abusing bugs/unintended behaviors for your own nefarious purposes.

    For that, others have pointed to YSAP, whom I will also recommend. I can’t find it right now, but I swear in some videos he mentions a website or forum where people discussi Bash extremely in-depth, and that is end-game stuff (the stuff you learn right before you start auditing the code yourself or editing the source to enable your own custom behaviors)



  • Idk how versed you are on Bash Parameter Expansion or the find command, so I’d like to expand (pun intended) a little more on Jo Miran’s explanation (if you already know, I’ll leave this for others who may not):

    find’s -exec (and -execdir) option takes everything after it until a semicolon — which usually needs to be escaped, so the shell doesn’t accidentally treat it as the command separator special character — as a command to run and arguments to pass to that command. Furthermore, when using the -exec option, find treats all instances of {} as places where it should substitute the files it matched

    So breaking down -exec bash -c 'mv "$0" "${0/crunk/chunk}"' {} \; really just tells find to take the name of a file it found (in this example it would only match dir1/crunk) and put it after the command bash -c 'mv "$0" "${0/crunk/chunk}"'

    So now the command to run looks like bash -c 'mv "$0" "${0/crunk/chunk}"' dir1/crunk

    this command spawns a (sub)shell, bash, tells it to run the next argument as a command, -c, gives it that command to run, mv "$0" "${0/crunk/chunk}", and passes filename as an argument, dir1/crunk

    So now let’s talk shell parameters

    Usually $0 is a special parameter that references the shell (or script) that invoked the command. In the case of using the -c option, bash actually changes $0 to be the argument after the command to run: dir1/crunk

    So now the command looks more like

    mv "dir1/crunk" "${0/crunk/chunk}"

    So let’s finally get to the finish line: shell parameter expansion. Shell parameters (aka shell variables) can be written with curly braces around the name, so $SHELL and ${SHELL} refer to the same thing. But the curly braces can also let the shell know that if it sees certain special characters after the variable’s name, it should do some transformations to the contents of the variable.

    In this case ${0/crunk/chunk} takes the contents of $0, searches for the first instance of the string ”crunk", and replaces it with “chunk” before inserting it into the command.

    So now the final command to run looks like

    mv "dir1/crunk" "dir1/chunk”


    Also worth mentioning that the -name option of find accepts wildcards in its argument.

    I would also recommend using the -execdir option instead of -exec in this specific case, because it will run commands from inside the directories where it finds the files. In this case, that means {} would expand to ./crunk instead of dir1/crunk; this will be relevant in about 3 paragraphs.

    So now you can tweak the command to your needs. If you wanted to find more than one file that, for example, all had a “u” somewhere in the name, you could do so thusly

    find dir1 -name ”*u*"

    And then if you wanted to change the “r” in the filenames to “l”, you could do:

    find dir1 -name "*u*" -type f -execdir bash -c 'mv "$0" "${0/r/l}"' {} \;

    Note that you could not do this with the regular -exec option, as it would try to mv dir1/crunk dil1/crunk and throw an error because that directory (dil1) likely doesn’t exist… and even if it did, you don’t want your command moving files to different directories without your knowledge

    Notice that it also only changed the “r” in dir1 to an ”l”, and left the “r” in “crunk” alone? That’s not a typo on my part, that’s the intended behavior of Shell Parameter Expansion. If you wanted to replace all "r"s in filename, you would have to change the expression to ${0//r/l} (note the double slash)

    Seriously, it’s worth reading that page from gnu.org. Parameter expansion can get incredibly powerful, and it’s much easier to use the right format (${VAR/%r/h}) than trying to combine the most simple ones to achieve the same goal (e.g. DO NOT DO THIS: ${${VAR//r/h}/h/r}; it won’t even work as intended and it’s unnecessarily complex to read)



  • GaumBeist@lemmy.mltoLinux@lemmy.ml•Learning udev
    link
    fedilink
    arrow-up
    4
    ·
    4 months ago
    1. Yes… in my opinion. The real answer is that it depends on the intended use of the system and the users’ needs. It’s as legitimate to treat wheel as a catchall permissions group as it is to go around specifying permissions for specific users in your sudoers and udev rules

    2. From my understanding, the kernel tends to reuse the same names when attaching devices, but it’s not required to do so by the specs (i.e. there may be cases where the /dev file name changes depending on what you have plugged in). Hence why the common advice is to not specify /dev files in your fstab, and why people use udev rules instead of chmod and chown-ing the /dev files



  • I realize this is the best option, since it centers my experience and needs better than anyone else’s summary, but what to do if I don’t have the time to daily drive enough init systems long enough to understand the scope and limitations of each?

    E.g. Gentoo’s wiki has a comparison chart of all the systems I’m aware of, but I don’t know what some of the rows mean, so I would have to daily drive multiple types to get a feel for what it’s like with and without those options and how that affects me as an end-user. It also doesn’t include metrics that often get referenced but not quantified in the comparisons I find (stuff like boot times)

    Furthermore, the only two times I’ve tried to switch out the init system on my PC, I’ve somehow managed to bork things so bad I had to do a fresh reinstall. Yes, I could do troubleshooting, but that’s even more hours (or even days) of downtime up front.

    All this to say: I’m just looking for a little bit of a shorcut to reduce the amount of documentation I have to read, and tweaking I’ll end up doing.





  • Proxies and VPNs seem like the most obvious targets. They mostly prey on people who don’t understand the technical workings thereof (had my mom ask if she needed to get a VPN bc firefox opened on ad for theirs, claiming it enhanced privacy), and serve little benefit to people who are doing the kind of illegal activities that make governments take notice. They serve as a single point of compromise for anyone, and they work worldwide so that all your traffic can be monitored even when you’re on a different ISP/in a different country. It’s like the perfect MITM, and people are even willing to pay to have themselves monitored.

    The truth is that at best they benefit people who only don’t want their network-provider watching, but don’t care who else may be. It’s the perfect setup for a 3-letter agency to just sit and monitor everything anyone does, waiting for someone who’s just a little too careless to access illegal content thinking they’re anonymous.