How do you automount without a desktop environment?

superkret@feddit.org to Linux@lemmy.ml – 37 points –

What's the easiest way to make external USB drives automount, without adding them to fstab? It should just work even if someone else hands me their flash drive.
I'm running sway on Arch if that matters.

13

You shouldn't just automount external drives. That's a recipe for trouble.

What's wrong with manually mounting them? Pretty sure the desktop environments also require you to push a button (eg, select the drive in file manager) to mount external USB drives.

WTF? I'm automounting my home directory from an external ssd usb for ages now. What is the disaster that could happen you're referring to?

If that's the case, then you should answer the OP with how it's set up. OP is specifically asking how to do it with random drives other people hands them, not trusted drives always connected.

What is the disaster that could happen you’re referring to?

Auto mounting random USB sticks has never been wise. No telling what random malware they contain.

What would be the difference if it doesn't automount it, and I instead need to mount it manually?
I mean, it's a USB stick which I just plugged into my laptop and want to access.
If I don't trust it, I'm not plugging it in.

Oh sorry, guess I missed the random drives part. You're absolutely right in that regard. Also, I use fstab to setup automount, so can't help op with this.

What malware spreads automatically from just mounting the drive?

DEs dont use mount and fstab, they use udisks2 which works with polkit, GUI prompts or rootless.

Using udisksctl prevents a ton of breakages.

I dont know about how autostart files work anymore, I always thought just place stuff in ~/.config/autostart but now those dont work anymore on KDE, sometimes.

I think you use your init system for that. If you go fully rootless, you can create a user systemd service that mounts the drive.

mkdir -p ~/flashdrive

cat < ~/.config/systemd/user/flashdrive-mount.service
[Unit]
Description=Mount flash drive on /dev/sda
#After=multi-user.target

[Service]
Type=oneshot
ExecStart=/usr/bin/udisksctl mount --block-device /dev/sda --mount-point /home/$USER/flashdrive
RemainAfterExit=true

[Install]
WantedBy=multi-user.target
EOF

systemctl --user enable --now flashdrive-mount.service

Not sure if After=multi-user.target and WantedBy=multi-user.target twists the space time continuum or something.

I am always kinda confused by those targets, as you must state one.