Okay, so it’s pretty safe to run and likely didn’t remove anything important.
You can always just check dnf history to see what changed when and why, so you’ll know what it removed.
Bluetooth isn’t working currently but I have a hardware probe HW probe of ASUSTek ProArt X670E-CREATOR... Desktop Computer #6e7d6aae31
from when the bluetooth was working properly, running
rpm -qa kernel-core
does not include that kernel version. Should I try to downgrade the kernel version of my Fedora 38, try to find a way to change the Live USB to have that kernel version to see if it would work or is there maybe some other way to fix the issue?
If you are booted in a live environment, then you should be able to move the location of the swap partition over to the left, then expand the btrfs root partition. Or you could delete it, but then you’d have to recreate it and readd it to the fedora /etc/fstab. Not exactly fun, when generally gparted can deal with moving partitions around.
Can anyone try ‘’’modprobe vfio-pci’’’ on Linux 6.x without desktop environment? As soon as I run that, I loose main screen output.
It compiled just fine, cmake didn’t throw any warnings either, so either the developer missed dependencies too while neither cmake nor the compiler complain, or the issue lies elsewhere (or deeper down the stack)
Sooo I finally got around to trying that.
And guess what: yes it does.
Also fun fact: I mentioned how the game just quits after “servers are currently unavailable”, right? It doesn’t do that on the Linux version. It does however still on the Windows version through Proton.
That is hilarious and sad at the same time. I guess they implemented this because Steamdeck tends to sometimes not be on the internet.
Either way… no idea where to even start looking into the crashing thing…
… ???
Just started again and it works just fine. Wat.
Just started again and it crashed again. Nice. Fun.
… ???
This is wild. When I start Steam through a Terminal it works fine but when I start it via the Application menu the game crashes? How does that even make sense.
Barring a problem with my configuration, what could be preventing my laptop (running Fedora 38) from communicating with my PFSense box over a wireguard tunnel?
For some context, I have had this working before (though I did have to redo my laptop’s configuration recently, but that was more or less copy pasting from the old configuration). The PFSense config works completely as it can still connect to my iPad and my android phone. Additionally, on the Fedora laptop, I did attempt to open the port on firewalld with the commands:
$ sudo firewall-cmd --permanent --add-port=51820/udp --zone=public
$ sudo firewall-cmd --permanent --zone=public --add-masquerade
$ sudo firewall-cmd --reload
While it is possible I have a bad tunnel configuration, I do not think that is the case. It is probably worth mentioning that my PFSense box recognizes a handshake between it and the laptop, but the laptop does not.
P.S. I figured it out. I don’t know what the problem was, but it works now.
hey there,
I’m trying to connect my 2.1 speaker setup on suse tumbleweed. The 2.0 part works flawlessly, but the subwoofer isn’t being detected correctly. If i press the test button for the sub nothing happens. If i change the output to 5.1 and i press the test button the sub plays “front center”. My Mainboard is a ASUS ROG Strix B650E-F, which shares the center and subwoofer plug.
How do i convince pipewire/pulse/alsa to detect my subwoofer? So far i’ve tried “options snd-hda-intel model=asus-mode5 options snd-hda-intel index=0”
with asus-model5 to asus-model8 to no avail. The only thing that changes is, that it’s being detected as rear right speaker.
Also, another small problem i have is that after a boot it takes my devices (keyboard, mouse, ethernet) roughly one minute to come online and react. No clue why, but it hasn’t been that case before.
install qpwgraph. It works off the same concept of the Jack2 connector and allows you to route the channels how you like.
Here is what my setup looks like…
I have a Klipsch ProMedia 5.1 setup but the space module bit the dust and I don’t want to move the one from the living room into my room. So What I did is take a Toslink converter to take the S/PDIF signal from the PC and split it out to the requisite channels. Unfortunately, my TV will not send the DTS or AC/3 signal correctly so what I did with pipewire is
GPU/HDMI → TV/Monitor 5.1 Audio → then sent the monitor lines of the GPU to the playback lines of the built in S/PDIF (Toslink Optical). There is not delay in sound and this allows the GPU to send sound to the built in speakers of the LG C2 which does Left, Center, and Right with it’s onboard 3D Stereo engine. Then I can get the thump of the sub, and if I want the full 5.1 DTS/AC3 mixing, I can just toggle the sound from the 5.1 break out box.
Break Box
And A way to have the TV send DTS/AC3 from the WebOS Applications.
Arch Wiki for reference.
https://wiki.archlinux.org/title/PipeWire
I’m hosting a few websites on Linode instance for friends’ businesses, mostly static things with some php code here and there.
I’d like to implement simple monitoring of /var/www/ for any unauthorized changes partially because some of them are now asking for access to /var/www/example.com/download but mostly because my crappy code could be exploited at some point.
My original idea was hash files every X minutes and compare to known good hashes list, but that could be slow to react if files change.
Current plan is run a script as a service that listens to filesystem events and when I see how it goes implement some sort of red alert protocol, for example trigger preconfigured firewall on Linode via API and block all traffic to and from that instance.
#!/usr/bin/env python3
import logging
import pyinotify
import os
CRITICAL_EXTENSIONS = ['.php', '.js', '.css', '.html', '.sql', '.htaccess', '.xml', '.json']
IGNORED_EXTENSIONS = ['.log', '.txt', '.md']
def setup_logger(log_file):
logging.basicConfig(filename=log_file, level=logging.INFO,
format='%(asctime)s %(levelname)s %(message)s', datefmt='%m/%d/%Y %H:%M:%S')
return logging.getLogger()
def process_event(event, logger):
_, file_extension = os.path.splitext(event.pathname)
if file_extension.lower() in CRITICAL_EXTENSIONS:
logger.critical(f"File change detected: {event.pathname} - {event.maskname}")
# TODO: Figure out extensions I care about than add execute Linode API command to enable firewall.
# Another system that pings this one will then figure out something is wrong and email me.
elif file_extension.lower() not in IGNORED_EXTENSIONS:
logger.warning(f"File change detected: {event.pathname} - {event.maskname}")
def main():
log_file = "/root/watcher.log"
logger = setup_logger(log_file)
wm = pyinotify.WatchManager()
mask = pyinotify.IN_CREATE | pyinotify.IN_MODIFY | pyinotify.IN_DELETE
handler = pyinotify.ProcessEvent()
handler.process_IN_CREATE = lambda event: process_event(event, logger)
handler.process_IN_MODIFY = lambda event: process_event(event, logger)
handler.process_IN_DELETE = lambda event: process_event(event, logger)
try:
notifier = pyinotify.Notifier(wm, handler)
wm.add_watch('/var/www', mask, rec=True)
notifier.loop()
except FileNotFoundError:
logger.error(f"Watched directory not found: /var/www")
except PermissionError:
logger.error(f"Permission denied for watched directory: /var/www")
if __name__ == "__main__":
main()
Am I just delusional? What are some better, preferably lazy, options?
If there’s a change, then it was authorized, no?
Why can’t you prevent the changes in the first place with filesystem permissions, POSIX ACLs, or SELinux?
Another way using inotify-tools (pyinotify uses inotify internally) :
inotifywait --monitor --recursive --event
modify,move,create,delete \
/var/www \
| grep -E "($extensions)" \
> watcher.log
Beware that any inotify-based approach is not guaranteed to get every FS event when the kernel ring buffer is exceeded (many changes in a short space of time, faster than the user code can pull them out of the kernel).
Not necessarily, I want to let them upload to /var/www/example.com/download and I don’t care for their pdfs, docs and similar files.
I don’t know, other than setting files to be owned by www-data and have 644 permissions what else can I do? I still need to write some files on the fly from time to time. And I have one guy bugging me about running WordPress for his site - that may complicate things a bit.
Instinctively I feel this should be in the web application logic itself, but how do you determine what types of content you want to accept or reject? Just the extension alone, or by scanning the HTTP POST payload, or trusting the HTTP Content-Type header? The file extension itself, unless the application does content scanning to extension mapping, might not have any indication on the actual contents.
Having web application files (code + data) and user uploads owned by the same user is a big risk. Any bug in file path permissions might allow a mistake or attack to change the application. Having an upload module run as a different user, setuid to a different user, or using SELinux rules can mitigate that, if security is a concern, other than just having files you don’t want laying around.
You definitely gave me a lot to think about and research, for now it’s just trusted friends who will most likely use ftp for their uploads, I’m more worried about my php being vulnerable and catch any exploits that may inject new content.
If I do eventually feel brave enough to host WordPress I feel it will open up a rabbit hole of trying to balance security and still allow self management/updates by the end user. At this time SELinux is just an abstract concept to me, something to do with security - I absolutely will have to dig deeper and learn a lot more.
I need to wget an iso file over https, but I realized the temporary disk space that I have access to is only 500Mb. Is it possible to pipe the output of wget to the dd if= parameter instead of writing it to the disk?
Easily:
wget -O- $URL | dd of=/dev/sdb
curl even outputs to stdout by default.
Many Linux CLI tools can be piped to other shell commands like this. It’s a big part of what makes the shell useful. ![]()
Sure but it’s not always immediately obvious because how you do it with a given set of commands.
Sometimes it’s as easy as a|b, but often times it’s more complicated then that. A lot of commands don’t output to stdout by default and there’s no standard way of getting tgem to do it, every command does it in a different way. Things like ffmpeg output to stderr by default which is another pain. And the same goes for the input where often you need to specify a parameter for it to accept stdin. It makes it incredibly annoying to deal with when you need to chain various pipes.
Yeah no doubt, and my shell-fu could def use some improvement. ffmpeg is a good example because it’s got a million little knobs and levers you can tweak, and some very strange default behaviors if you don’t. It’s often not at all trivial to figure out exactly what you need there.
