Replying to
@staircase@programming.dev
I had found myself reinstalling and reconfiguring a lot of the same things over and over while distro hopping, so I came up with a bash script with some of the most common configuration changes and such. As an example, here is my Fedora post=install script:
script
#!/usr/bin/env bash
# remove all permission restrictions from current directory
#sudo chmod -R a+rwX .
sudo hostnamectl set-hostname [redacted]
# prompt for ssh password to use later
if [[ $1 == "" ]]; then
read -p "Enter ssh password: " ssh_pass
else
ssh_pass=$1
fi
# default dnf prompts to 'y'
sudo sh -c "echo 'defaultyes=True' >> /etc/dnf/dnf.conf"
# install packages that are needed to add repos and other packages
sudo dnf up -y && sudo dnf in curl flatpak wget -y
#add repos
sudo dnf copr enable lilay/topgrade -y
sudo dnf copr enable aflyhorse/libjpeg -y
sudo dnf config-manager addrepo --from-repofile=https://repository.mullvad.net/rpm/stable/mullvad.repo
sudo dnf in https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm -y
sudo dnf in https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm -y
sudo sh -c 'curl -fsSL https://repo.librewolf.net/librewolf.repo | pkexec tee /etc/yum.repos.d/librewolf.repo'
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
echo -e "[gitlab.com_paulcarroty_vscodium_repo]\nname=gitlab.com_paulcarroty_vscodium_repo\nbaseurl=https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/rpms/\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg\nmetadata_expire=1h" | sudo tee -a /etc/yum.repos.d/vscodium.repo
#install packages
sudo dnf in augeas-devel btop cairo-devel cairo-gobject-devel cargo cmake codium dbus-devel expat-devel gifsicle gimp git kde-connect kdenlive libavcodec-freeworld librewolf libxkbcommon-devel lightdm-gtk-greeter-settings mpv mullvad-vpn ninja-build openssh-server openssl openssl-devel pipx python3-dbus python3-devel python3-pip rpmbuild syncthing thunderbird topgrade vlc sshpass -y
sudo dnf in $(curl -s https://raw.githubusercontent.com/teervo/bitwig-fedora/refs/heads/main/bitwig-rpm.sh | bash -s 4.4.10) -y
sudo dnf swap ffmpeg-free ffmpeg --allowerasing -y
export PATH="$HOME/.cargo/bin:$PATH" && echo $'export PATH= \"$HOME/.cargo/bin:$PATH \"' >> ~/.bashrc
cargo install gifski cargo-updateflatpak install com.github.iwalton3.jellyfin-media-player -y
#pipx install numlockw
pip install pandas odfpy
#create ssh key, copy to servers
ssh-keygen -q -t rsa -N '' <<< $'\ny' >/dev/null 2>&1
hosts=("10.0.0.10" "10.0.0.11")
for host in "${hosts[@]}"; do
ssh-keyscan -H $host >> ~/.ssh/known_hosts && sshpass -p "$ssh_pass" ssh-copy-id -o StrictHostKeyChecking=no [redacted]@$host && ssh -q [redacted]@$host exit
done
#enable/start ssh server
sudo systemctl enable sshd
sudo systemctl start sshd
#add external drive to fstab to automount
directory_secondary_drive=$HOME/nvme
uuid=[redacted]
sudo blkid
sudo cp /etc/fstab /etc/fstab.bak
sudo sh -c "echo 'UUID=$uuid $directory_secondary_drive btrfs rw,auto,user,exec 0 0' >> /etc/fstab"
sudo mount -a
#copy over custom config files
directory_software=$directory_secondary_drive/sync/software
cp -r $directory_software/setup/configs/* $HOME/.local/share/
#install fonts
cp $directory_software/fonts/* $HOME/.fonts
fc-cache -vf
#set git credentials
git config --global user.name "[redacted]" && git config --global user.email "[redacted]@yourdomain.com"
#add aliases to bashrc
echo $'alias pipup=\'pip list -o | cut -f1 -d\'\\\'\' \'\\\'\' | tr " " " " | awk \'\\\'\'{if(NR>=3)print}\'\\\'\' | cut -d\'\\\'\' \'\\\'\' -f1 | xargs -n1 pip install -U; pip install -U cyberdrop-dl-patched\'' >> ~/.bashrc
echo $'alias up=\"topgrade -y && echo \'\\nChecking pip\\n\' && pipup\"' >> ~/.bashrc
echo $'alias e=\"exit\"' >> ~/.bashrc
#https://support.mozilla.org/en-US/kb/compact-mode-workaround-firefox
#print ssh key
echo $'\nPublic SSH key:'
cat $HOME/.ssh/*.pub
Note that I used [redacted] here in places for anonymity reasons. This could give you a decent starting point to do something similar.
weed stallman
@incentive@mastodon.circlewithadot.net
// New Album INNER available now via Tri-Labs featuring vocals from @frequensiasound // electronic music person | unemployed linux admin & devops engineer | pso server admin | activitypub relay admin | supporter @eff // #linux #bsd #ansible #creativecommons #electronicmusic #phantasystaronline #archlinux #ubuntu #debian #fedora #freebsd #nixos #gnome #trilabs #mastoadmin
mastodon.circlewithadot.net
doas vs sudo #doas #sudo #bsd #freebsd #linux #admin #fediadmin #foss #sysadmin #selfhosting #devops #unix #openbsd
doas
63.0%
(46)
sudo
37.0%
(27)
73 votes
Poll closed
View on mastodon.circlewithadot.net
Senioradmin
@Haydar@social.tchncs.de
Free Software, Free Society, No Borders. Posts in deutsch, english. Aprendo #español. Weitere Themen: #ITSec, #Autismus, #Spanien, #Vietnam, Politik, IT allgemein, #Wandern / #Hiking und privater Kram.
social.tchncs.de
How to restrict sudo access to only apt update and apt install for a specific path opt/app? #1404 #apt #permissions #sudo
https://askubuntu.com/q/1564501/612
clamav needs sudo privileges Ubuntu 24.04.3 LTS #permissions #sudo #clamav
https://askubuntu.com/q/1563920/612
Todd C. Miller has been maintaining the #sudo codebase for over 30 years. This is exactly one of those cases where an entire critical infrastructure is held together by the work of a single volunteer who apparently can’t find anyone willing to sponsor him for some financial support. #opensource #linux #foss #GNU
You've seen all posts