1032 lines
29 KiB
Bash
1032 lines
29 KiB
Bash
|
#!/bin/sh
|
|||
|
#
|
|||
|
if [ ! -f /etc/debian_version ]; then
|
|||
|
echo "Unsupported Linux Distribution. Prepared for Debian"
|
|||
|
exit 1
|
|||
|
fi
|
|||
|
################################################################################
|
|||
|
#
|
|||
|
#
|
|||
|
# Linux Mint 21 System Install
|
|||
|
#
|
|||
|
#
|
|||
|
################################################################################
|
|||
|
#
|
|||
|
while :
|
|||
|
do
|
|||
|
clear
|
|||
|
echo ""
|
|||
|
echo "\033[1m I N S T A L L Linux Mint 22"
|
|||
|
echo " ----------------------------------"
|
|||
|
echo "\033[0m"
|
|||
|
echo "01.Remove Fonts+Software"
|
|||
|
echo "02.Install System"
|
|||
|
echo "03.Install TLP"
|
|||
|
echo "04.Install XanMod-Kernel"
|
|||
|
echo " ----------------------------------------"
|
|||
|
echo "06.Install Samba"
|
|||
|
echo "07.Install OpenSSH-Server"
|
|||
|
echo " ----------------------------------------"
|
|||
|
echo "08.Install Software"
|
|||
|
echo "09.Install DVD+Bluray"
|
|||
|
echo "13.Install HPLIP+Plugin"
|
|||
|
echo "17.Install Timeshift-Autosnap-APT"
|
|||
|
echo " ----------------------------------------"
|
|||
|
echo "20.Install AMD-GPU"
|
|||
|
echo "21.Install Radeon-GPU"
|
|||
|
echo "22.Install Intel-GPU"
|
|||
|
echo "23.Install Nvidia-GPU"
|
|||
|
echo " ----------------------------------------"
|
|||
|
echo "24.Setup Home"
|
|||
|
echo "25.Disable ipv6"
|
|||
|
echo "26.Cleanup System"
|
|||
|
echo ""
|
|||
|
echo " x. Exit"
|
|||
|
echo ""
|
|||
|
echo -n " Please enter option [01 - 26]"
|
|||
|
read opt
|
|||
|
case $opt in
|
|||
|
##################################################################################
|
|||
|
01) echo "************ Remove Fonts+Software **********************";
|
|||
|
##################################################################################
|
|||
|
sudo apt remove -y onboard transmission transmission-gtk rhythmbox
|
|||
|
|
|||
|
# Remove most Asian font:
|
|||
|
# =======================
|
|||
|
# If you're not a user of Asian fonts, you might remove a couple of those. That should free up several
|
|||
|
# hundred MB's of disk space, but more importantly: the font selection box in Libre Office will become
|
|||
|
# much less cluttered.
|
|||
|
sudo apt remove -y fonts-kacst* fonts-khmeros* fonts-lklug-sinhala fonts-guru-extra fonts-nanum* fonts-noto-cjk
|
|||
|
sudo apt remove -y fonts-takao* fonts-tibetan-machine fonts-lao fonts-sil-padauk fonts-sil-abyssinica fonts-tlwg-*
|
|||
|
sudo apt remove -y fonts-lohit-* fonts-beng-extra fonts-gargi fonts-gubbi fonts-gujr-extra fonts-kalapi fonts-lohit-*
|
|||
|
sudo apt remove -y fonts-samyak* fonts-navilu fonts-nakula fonts-orya-extra fonts-pagul fonts-sarai fonts-telu* fonts-wqy*
|
|||
|
sudo apt remove -y fonts-smc* fonts-deva-extra
|
|||
|
sudo dpkg-reconfigure fontconfig
|
|||
|
|
|||
|
## Disable SystemD Service
|
|||
|
#sudo systemctl stop ModemManager && sudo systemctl disable ModemManager
|
|||
|
;;
|
|||
|
|
|||
|
##################################################################################
|
|||
|
02) echo "************ Install System **********************";
|
|||
|
##################################################################################
|
|||
|
sudo apt install -y \
|
|||
|
apt-transport-https \
|
|||
|
ca-certificates \
|
|||
|
curl \
|
|||
|
wget \
|
|||
|
software-properties-common
|
|||
|
|
|||
|
echo -e '\033[33m----Setup locales----\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sleep 2
|
|||
|
sudo dpkg-reconfigure locales && sudo update-locale LANG=de_DE.UTF-8 && sudo locale-gen --purge --no-archive && sudo update-initramfs -u -k all
|
|||
|
|
|||
|
|
|||
|
echo -e '\033[33m------Reconfigure Timezone------\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sleep 2
|
|||
|
sudo dpkg-reconfigure tzdata
|
|||
|
sudo timedatectl set-timezone Europe/Berlin
|
|||
|
|
|||
|
|
|||
|
echo -e '\033[33m------Install Firmware & DKMS------\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sleep 2
|
|||
|
sudo apt install -y \
|
|||
|
acpi \
|
|||
|
acpid
|
|||
|
|
|||
|
|
|||
|
|
|||
|
echo -e '\033[33m----Setup FS-Tab----\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sleep 2
|
|||
|
sudo cp /etc/fstab /etc/fstab.default
|
|||
|
#sudo sed -i 's/errors=remount-ro/noatime,commit=600,errors=remount-ro/g' /etc/fstab
|
|||
|
sudo sed -i 's/defaults,subvol=@/defaults,noatime,compress=zstd,subvol=@/g' /etc/fstab
|
|||
|
sudo sed -i 's/defaults/defaults,noatime/g' /etc/fstab
|
|||
|
|
|||
|
sudo sh -c 'echo "
|
|||
|
# Secure shared memory
|
|||
|
tmpfs /dev/shm tmpfs defaults,noexec,nosuid 0 0
|
|||
|
|
|||
|
# Tmpfs
|
|||
|
tmpfs /var/tmp tmpfs defaults,noatime 0 0
|
|||
|
tmpfs /var/spool tmpfs defaults,noatime 0 0
|
|||
|
#tmpfs /var/lock tmpfs defaults 0 0
|
|||
|
#tmpfs /var/cache/apt/archives tmpfs size=15%,defaults 0 0
|
|||
|
" >> /etc/fstab'
|
|||
|
sudo systemctl daemon-reload
|
|||
|
|
|||
|
echo -e '\033[33m----Setup rc.local / Systemd Service----\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sleep 2
|
|||
|
sudo bash -c 'cat << EOF > /etc/systemd/system/rc-local.service
|
|||
|
[Unit]
|
|||
|
Description=/etc/rc.local Compatibility
|
|||
|
ConditionPathExists=/etc/rc.local
|
|||
|
|
|||
|
[Service]
|
|||
|
Type=forking
|
|||
|
ExecStart=/etc/rc.local start
|
|||
|
TimeoutSec=0
|
|||
|
StandardOutput=tty
|
|||
|
RemainAfterExit=yes
|
|||
|
SysVStartPriority=99
|
|||
|
|
|||
|
[Install]
|
|||
|
WantedBy=multi-user.target
|
|||
|
EOF'
|
|||
|
|
|||
|
sudo bash -c 'cat << EOF > /etc/rc.local
|
|||
|
#!/bin/sh -e
|
|||
|
#
|
|||
|
# rc.local
|
|||
|
#
|
|||
|
# This script is executed at the end of each multiuser runlevel.
|
|||
|
# Make sure that the script will "exit 0" on success or any other
|
|||
|
# value on error.
|
|||
|
#
|
|||
|
# In order to enable or disable this script just change the execution
|
|||
|
# bits.
|
|||
|
#
|
|||
|
# By default this script does nothing.
|
|||
|
#exit 0
|
|||
|
EOF'
|
|||
|
|
|||
|
sudo sed -i 's/#exit 0/exit 0/g' /etc/rc.local
|
|||
|
sudo chmod +x /etc/rc.local
|
|||
|
sudo systemctl enable --now rc-local.service
|
|||
|
|
|||
|
## Tmp mount
|
|||
|
sudo cp /usr/share/systemd/tmp.mount /etc/systemd/system/ && sudo systemctl enable --now tmp.mount
|
|||
|
|
|||
|
## Sytemd journald
|
|||
|
sudo sh -c "echo 'SystemMaxUse=100M' >> /etc/systemd/journald.conf"
|
|||
|
|
|||
|
## fstrim timer
|
|||
|
sudo systemctl enable --now fstrim.timer
|
|||
|
|
|||
|
## fstrim.service
|
|||
|
sudo bash -c 'cat << EOF > /etc/systemd/system/fstrim.service
|
|||
|
[Unit]
|
|||
|
Description=Trim free cells on the SSD
|
|||
|
After=local-fs.target
|
|||
|
|
|||
|
[Service]
|
|||
|
ExecStart=/sbin/fstrim /
|
|||
|
ExecStart=/sbin/fstrim /home
|
|||
|
Type=oneshot
|
|||
|
|
|||
|
[Install]
|
|||
|
WantedBy=multi-user.target
|
|||
|
EOF'
|
|||
|
sudo systemctl enable --now fstrim.service
|
|||
|
|
|||
|
|
|||
|
echo -e '\033[33m----Setup Cron----\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sleep 2
|
|||
|
sudo cp /etc/crontab /etc/crontab.default
|
|||
|
sudo sh -c "echo '@weekly root apt autoremove && apt clean' >> /etc/crontab"
|
|||
|
|
|||
|
echo -e '\033[33m----Setup Grub----\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sleep 2
|
|||
|
sudo cp /etc/default/grub /etc/default/grub.default
|
|||
|
sudo sed -i 's/#GRUB_GFXMODE=640x480/GRUB_GFXMODE=1920x1080x32/g' /etc/default/grub
|
|||
|
sudo update-grub
|
|||
|
|
|||
|
|
|||
|
echo -e '\033[33m----Install Fonts / Optimise Bitmap-Fonts----\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sleep 2
|
|||
|
sudo apt install -y \
|
|||
|
fonts-terminus \
|
|||
|
fonts-noto \
|
|||
|
fonts-entypo \
|
|||
|
xfonts-75dpi \
|
|||
|
xfonts-100dpi \
|
|||
|
xfonts-terminus \
|
|||
|
ttf-mscorefonts-installer
|
|||
|
|
|||
|
sudo bash -c 'cat << EOF > /etc/fonts/conf.avail/20-no-embedded.conf
|
|||
|
<?xml version="1.0"?>
|
|||
|
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
|||
|
<fontconfig>
|
|||
|
<match target="font">
|
|||
|
<edit name="embeddedbitmap" mode="assign">
|
|||
|
<bool>false</bool>
|
|||
|
</edit>
|
|||
|
</match>
|
|||
|
</fontconfig>
|
|||
|
EOF'
|
|||
|
|
|||
|
sudo ln -s /etc/fonts/conf.avail/20-no-embedded.conf /etc/fonts/conf.d/
|
|||
|
|
|||
|
|
|||
|
echo -e '\033[33m----Install log2ram----\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sleep 2
|
|||
|
curl -Lo log2ram.tar.gz https://github.com/azlux/log2ram/archive/master.tar.gz && tar xf log2ram.tar.gz
|
|||
|
cd log2ram-master && chmod +x install.sh && sudo ./install.sh
|
|||
|
sudo sed -i "s/SIZE=128M/SIZE=300M/g" /etc/log2ram.conf
|
|||
|
sudo systemctl restart log2ram
|
|||
|
|
|||
|
echo -e '\033[33m----Install zramswap----\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sleep 2
|
|||
|
sudo swapoff --all && free
|
|||
|
|
|||
|
sudo apt install zram-tools && sudo zramswap stop
|
|||
|
|
|||
|
sudo mv /etc/default/zramswap /etc/default/zramswap.default
|
|||
|
|
|||
|
sudo bash -c 'cat << EOF > /etc/default/zramswap
|
|||
|
# Compression algorithm selection
|
|||
|
# speed: lz4 > zstd > lzo
|
|||
|
# compression: zstd > lzo > lz4
|
|||
|
# This is not inclusive of all that is available in latest kernels
|
|||
|
# See /sys/block/zram0/comp_algorithm (when zram module is loaded) to see
|
|||
|
# what is currently set and available for your kernel[1]
|
|||
|
# [1] https://github.com/torvalds/linux/blob/master/Documentation/blockdev/zram.txt#L86
|
|||
|
ALGO=lz4
|
|||
|
|
|||
|
# Specifies the amount of RAM that should be used for zram
|
|||
|
# based on a percentage the total amount of available memory
|
|||
|
# This takes precedence and overrides SIZE below
|
|||
|
#PERCENT=50
|
|||
|
|
|||
|
# Specifies a static amount of RAM that should be used for
|
|||
|
# the ZRAM devices, this is in MiB
|
|||
|
SIZE=1024
|
|||
|
|
|||
|
# Specifies the priority for the swap devices, see swapon(2)
|
|||
|
# for more details. Higher number = higher priority
|
|||
|
# This should probably be higher than hdd/ssd swaps.
|
|||
|
PRIORITY=100
|
|||
|
EOF'
|
|||
|
|
|||
|
sudo zramswap start
|
|||
|
# cat /proc/swaps
|
|||
|
|
|||
|
|
|||
|
echo -e '\033[33m----Setup Themes----\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sudo apt install -y qt5-style-plugins
|
|||
|
sudo sh -c 'echo "export QT_QPA_PLATFORMTHEME=gtk2" >> /etc/environment'
|
|||
|
|
|||
|
|
|||
|
echo -e '\033[33m----Enable UFW Firewall----\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sleep 2
|
|||
|
sudo ufw allow 5353 # MDNS
|
|||
|
sudo ufw enable
|
|||
|
;;
|
|||
|
|
|||
|
##################################################################################
|
|||
|
03) echo "************ Install TLP **********************";
|
|||
|
##################################################################################
|
|||
|
sudo apt install -y \
|
|||
|
tlp \
|
|||
|
tlp-rdw
|
|||
|
|
|||
|
# Auf ThinkPads installiert man zusätzlich:
|
|||
|
# sudo apt install -y tp-smapi-dkms acpi-call-dkms
|
|||
|
;;
|
|||
|
|
|||
|
##################################################################################
|
|||
|
04) echo "************ Install XanMod-Kernel **********************";
|
|||
|
##################################################################################
|
|||
|
wget -qO - https://dl.xanmod.org/archive.key | sudo gpg --dearmor -vo /usr/share/keyrings/xanmod-archive-keyring.gpg
|
|||
|
echo 'deb [signed-by=/usr/share/keyrings/xanmod-archive-keyring.gpg] http://deb.xanmod.org releases main' | sudo tee /etc/apt/sources.list.d/xanmod-release.list
|
|||
|
|
|||
|
sudo apt update && sudo apt install -y linux-xanmod-x64v3
|
|||
|
|
|||
|
# Installieren Sie XanMod edge (empfohlen für den neuesten Kernel):
|
|||
|
# sudo apt update && sudo apt install linux-xanmod-edge
|
|||
|
|
|||
|
# XanMod Stable entfernen:
|
|||
|
# sudo apt autoremove linux-xanmod --purge -y
|
|||
|
|
|||
|
# XanMod-Kante entfernen:
|
|||
|
# sudo apt autoremove linux-xanmod-edge --purge -y
|
|||
|
|
|||
|
# Repository entfernen:
|
|||
|
# sudo rm /etc/apt/sources.list.d/xanmod-kernel.list
|
|||
|
;;
|
|||
|
|
|||
|
##################################################################################
|
|||
|
07) echo "************ Install Samba **********************";
|
|||
|
##################################################################################
|
|||
|
sudo apt install -y \
|
|||
|
samba
|
|||
|
|
|||
|
# Change the owner of the directory to root and the group to sambashare:
|
|||
|
sudo chown -R root:sambashare /var/lib/samba/usershares
|
|||
|
|
|||
|
# Change the permissions of the usershares directory so that users in the group sambashare can create files.
|
|||
|
# This command also sets sticky bit, which is important to prevent users from deleting usershares of other users:
|
|||
|
#sudo chmod 1770 /var/lib/samba/usershares
|
|||
|
|
|||
|
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.default
|
|||
|
|
|||
|
sudo bash -c 'cat << EOF > /etc/samba/smb.conf
|
|||
|
#======================= Global Settings =======================
|
|||
|
[global]
|
|||
|
## Browsing/Identification ###
|
|||
|
workgroup = WORKGROUP
|
|||
|
server string = %h server
|
|||
|
disable netbios = yes
|
|||
|
unix extensions = yes
|
|||
|
client min protocol = SMB2
|
|||
|
client max protocol = SMB3
|
|||
|
server min protocol = SMB2
|
|||
|
server max protocol = SMB3
|
|||
|
# protocol = SMB3
|
|||
|
wide links = no
|
|||
|
follow symlinks = no
|
|||
|
create mask = 0777
|
|||
|
directory mask = 0777
|
|||
|
|
|||
|
####### Authentication #######
|
|||
|
server role = standalone server
|
|||
|
obey pam restrictions = yes
|
|||
|
unix password sync = yes
|
|||
|
passwd program = /usr/bin/passwd %u
|
|||
|
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
|
|||
|
pam password change = yes
|
|||
|
invalid users = root
|
|||
|
map to guest = bad user
|
|||
|
guest account = nobody
|
|||
|
guest ok = yes
|
|||
|
usershare path = /var/lib/samba/usershares
|
|||
|
usershare max shares = 100
|
|||
|
usershare allow guests = yes
|
|||
|
usershare owner only = false
|
|||
|
|
|||
|
####### Tuning #######
|
|||
|
socket options = TCP_NODELAY IPTOS_LOWDELAY
|
|||
|
use sendfile = no
|
|||
|
getwd cache = yes
|
|||
|
stat cache = yes
|
|||
|
min receivefile size = 16384
|
|||
|
write raw = yes
|
|||
|
read raw = yes
|
|||
|
max xmit = 32768
|
|||
|
deadtime = 15
|
|||
|
keepalive = 150
|
|||
|
sync always = no
|
|||
|
large readwrite = yes
|
|||
|
strict sync = no
|
|||
|
strict allocate = Yes
|
|||
|
strict locking = no
|
|||
|
server multi channel support = yes
|
|||
|
aio write size = 1
|
|||
|
aio read size = 1
|
|||
|
|
|||
|
#### Networking ####
|
|||
|
;interfaces = 127.0.0.0/8 enp37s0
|
|||
|
;bind interfaces only = yes
|
|||
|
;hosts allow = 127.0.0.0/8 192.168.10.0/24 192.168.70.0/24
|
|||
|
;hosts deny = all
|
|||
|
|
|||
|
### Browsing election options ###
|
|||
|
time server = no
|
|||
|
wins support = no
|
|||
|
multicast dns register = no
|
|||
|
#dns forwarder = 192.168.10.1
|
|||
|
dns proxy = yes
|
|||
|
|
|||
|
#### Debugging/Accounting ####
|
|||
|
log file = /var/log/samba/log.%m
|
|||
|
max log size = 1000
|
|||
|
logging = syslog
|
|||
|
panic action = /usr/share/samba/panic-action %d
|
|||
|
passdb backend = tdbsam
|
|||
|
obey pam restrictions = no
|
|||
|
log level = 0
|
|||
|
|
|||
|
####### Pinter #######
|
|||
|
load printers = no
|
|||
|
disable spoolss = yes
|
|||
|
printing = bsd
|
|||
|
printcap name = /dev/null
|
|||
|
|
|||
|
#======================= Share Definitions =======================
|
|||
|
|
|||
|
[printers]
|
|||
|
comment = All Printers
|
|||
|
browseable = no
|
|||
|
path = /var/spool/samba
|
|||
|
printable = yes
|
|||
|
guest ok = no
|
|||
|
read only = yes
|
|||
|
create mask = 0700
|
|||
|
|
|||
|
# Windows clients look for this share name as a source of downloadable printer drivers
|
|||
|
[print$]
|
|||
|
comment = Printer Drivers
|
|||
|
path = /var/lib/samba/printers
|
|||
|
browseable = yes
|
|||
|
read only = yes
|
|||
|
guest ok = no
|
|||
|
;write list = root, @lpadmin
|
|||
|
EOF'
|
|||
|
|
|||
|
sudo bash -c 'cat << EOF > /etc/avahi/services/smb.service
|
|||
|
<?xml version="1.0" standalone="no"?>
|
|||
|
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
|
|||
|
<service-group>
|
|||
|
<name replace-wildcards="yes">%h - SMB/CIFS</name>
|
|||
|
<service>
|
|||
|
<type>_smb._tcp</type>
|
|||
|
<port>445</port>
|
|||
|
</service>
|
|||
|
</service-group>
|
|||
|
EOF'
|
|||
|
|
|||
|
|
|||
|
sudo systemctl restart smbd.service
|
|||
|
sudo systemctl restart nmbd.service
|
|||
|
sudo systemctl restart avahi-daemon.service
|
|||
|
|
|||
|
sudo ufw allow samba
|
|||
|
sudo ufw reload
|
|||
|
|
|||
|
# sudo usermod -aG sambashare $USER
|
|||
|
sudo gpasswd sambashare -a $USER
|
|||
|
sudo smbpasswd -a $USER
|
|||
|
|
|||
|
# sudo apt install -y wsdd
|
|||
|
# sudo ufw allow 3702/udp # wsdd
|
|||
|
# sudo ufw allow 5357/tcp # wsdd
|
|||
|
# sudo ufw reload
|
|||
|
;;
|
|||
|
|
|||
|
|
|||
|
##################################################################################
|
|||
|
09) echo "************ Install OpenSSH-Server **********************";
|
|||
|
##################################################################################
|
|||
|
sudo addgroup sshusers
|
|||
|
sudo usermod -aG sshusers $USER
|
|||
|
|
|||
|
sudo apt install -y openssh-server openssh-client
|
|||
|
|
|||
|
sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.default
|
|||
|
|
|||
|
sudo bash -c 'cat << EOF > /etc/ssh/sshd_config
|
|||
|
Port 22
|
|||
|
#AddressFamily any
|
|||
|
#ListenAddress 0.0.0.0
|
|||
|
#ListenAddress ::
|
|||
|
|
|||
|
HostKey /etc/ssh/ssh_host_rsa_key
|
|||
|
HostKey /etc/ssh/ssh_host_ecdsa_key
|
|||
|
HostKey /etc/ssh/ssh_host_ed25519_key
|
|||
|
|
|||
|
# Ciphers and keying
|
|||
|
#RekeyLimit default none
|
|||
|
|
|||
|
# Logging
|
|||
|
SyslogFacility AUTH
|
|||
|
LogLevel INFO
|
|||
|
|
|||
|
# Authentication:
|
|||
|
DenyUsers root
|
|||
|
DenyGroups root
|
|||
|
AllowGroups sshusers
|
|||
|
|
|||
|
LoginGraceTime 600
|
|||
|
PermitRootLogin no
|
|||
|
#StrictModes yes
|
|||
|
MaxAuthTries 3
|
|||
|
#MaxSessions 10
|
|||
|
|
|||
|
# To disable tunneled clear text passwords, change to no here!
|
|||
|
PasswordAuthentication yes
|
|||
|
PermitEmptyPasswords no
|
|||
|
|
|||
|
# Change to yes to enable challenge-response passwords (beware issues with
|
|||
|
# some PAM modules and threads)
|
|||
|
ChallengeResponseAuthentication no
|
|||
|
|
|||
|
# enable PAM authentication
|
|||
|
UsePAM yes
|
|||
|
|
|||
|
#AllowAgentForwarding yes
|
|||
|
#AllowTcpForwarding yes
|
|||
|
#GatewayPorts no
|
|||
|
X11Forwarding yes
|
|||
|
#X11DisplayOffset 10
|
|||
|
#X11UseLocalhost yes
|
|||
|
#PermitTTY yes
|
|||
|
PrintMotd no
|
|||
|
#PrintLastLog yes
|
|||
|
TCPKeepAlive yes
|
|||
|
#PermitUserEnvironment no
|
|||
|
#Compression delayed
|
|||
|
ClientAliveInterval 1200
|
|||
|
ClientAliveCountMax 3
|
|||
|
#UseDNS no
|
|||
|
PidFile /var/run/sshd.pid
|
|||
|
MaxStartups 32
|
|||
|
|
|||
|
# Allow client to pass locale environment variables
|
|||
|
AcceptEnv LANG LC_*
|
|||
|
EOF'
|
|||
|
|
|||
|
sudo systemctl restart ssh.service
|
|||
|
|
|||
|
sudo sh -c 'echo "sshd: ALL EXCEPT LOCAL" >> /etc/hosts.deny'
|
|||
|
sudo sh -c 'echo "sshd: 192.168.10.0/255.255.255.0" >> /etc/hosts.allow'
|
|||
|
|
|||
|
sudo apt install -y fail2ban
|
|||
|
|
|||
|
sudo bash -c 'cat << EOF > /etc/fail2ban/jail.local
|
|||
|
[sshd]
|
|||
|
enabled = true
|
|||
|
port = ssh
|
|||
|
filter = sshd
|
|||
|
logpath = /var/log/auth.log
|
|||
|
maxretry = 3
|
|||
|
findtime = 300
|
|||
|
bantime = 3600
|
|||
|
ignoreip = 127.0.0.1 ::1
|
|||
|
EOF'
|
|||
|
|
|||
|
sudo systemctl restart fail2ban.service
|
|||
|
|
|||
|
sudo ufw allow ssh # Openssh-Server
|
|||
|
sudo ufw reload
|
|||
|
|
|||
|
# Monitoring With Fail2Ban-Client:
|
|||
|
# sudo fail2ban-client status
|
|||
|
# sudo fail2ban-client status sshd
|
|||
|
;;
|
|||
|
|
|||
|
##################################################################################
|
|||
|
11) echo "************ Install Software **********************";
|
|||
|
##################################################################################
|
|||
|
echo -e '\033[33m------Install COMMONLY USED APPLICATIONS------\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sudo apt install -y \
|
|||
|
bmon \
|
|||
|
clang llvm \
|
|||
|
conky-all \
|
|||
|
fuseiso \
|
|||
|
git \
|
|||
|
localepurge \
|
|||
|
haveged \
|
|||
|
htop iotop iftop powertop atop \
|
|||
|
tmux \
|
|||
|
numlockx \
|
|||
|
screenfetch \
|
|||
|
screen \
|
|||
|
saidar \
|
|||
|
dfc \
|
|||
|
mc \
|
|||
|
md5deep \
|
|||
|
mtp-tools \
|
|||
|
ncdu \
|
|||
|
pwgen \
|
|||
|
ppa-purge \
|
|||
|
preload \
|
|||
|
renameutils \
|
|||
|
unrar unace p7zip-rar sharutils rar arj lunzip lzip
|
|||
|
#apt install -y smartmontools glances hddtemp gpm
|
|||
|
|
|||
|
|
|||
|
echo -e '\033[33m----Accessory Applications----\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sudo apt install -y \
|
|||
|
doublecmd-gtk \
|
|||
|
diodon \
|
|||
|
gtkhash \
|
|||
|
keepassxc \
|
|||
|
shutter \
|
|||
|
plank \
|
|||
|
cherrytree
|
|||
|
|
|||
|
# caffeine \
|
|||
|
|
|||
|
|
|||
|
echo -e '\033[33m----Grafik Applications----\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sleep 2
|
|||
|
sudo apt install -y \
|
|||
|
gimp gimp-gap gimp-gutenprint gimp-plugin-registry gimp-help-de \
|
|||
|
flameshot \
|
|||
|
pinta
|
|||
|
|
|||
|
echo -e '\033[33m------Install Codec------\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sudo apt install -y \
|
|||
|
faac \
|
|||
|
faad \
|
|||
|
flac \
|
|||
|
flvstreamer \
|
|||
|
ffmpeg \
|
|||
|
gstreamer1.0-x \
|
|||
|
gstreamer1.0-tools \
|
|||
|
gstreamer1.0-plugins-bad \
|
|||
|
gstreamer1.0-plugins-base \
|
|||
|
gstreamer1.0-plugins-good \
|
|||
|
gstreamer1.0-pulseaudio \
|
|||
|
gstreamer1.0-plugins-ugly \
|
|||
|
lame \
|
|||
|
libquicktime2 \
|
|||
|
libasound2-plugins-extra \
|
|||
|
mppenc \
|
|||
|
mint-meta-codecs \
|
|||
|
vorbis-tools vorbisgain \
|
|||
|
ogmtools \
|
|||
|
opus-tools \
|
|||
|
wavpack \
|
|||
|
x264 \
|
|||
|
x265
|
|||
|
|
|||
|
echo -e '\033[33m----Multimedia Applications----\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sudo apt install -y \
|
|||
|
audacious \
|
|||
|
easytag \
|
|||
|
mediainfo mediainfo-gui \
|
|||
|
mpv \
|
|||
|
pavucontrol \
|
|||
|
soundconverter \
|
|||
|
vlc vlc-plugin-samba
|
|||
|
# puddletag python-musicbrainz2 libchromaprint-tools
|
|||
|
|
|||
|
|
|||
|
echo -e '\033[33m----Internet Applications----\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sudo apt install -y \
|
|||
|
filezilla \
|
|||
|
firejail \
|
|||
|
uget \
|
|||
|
mailnag \
|
|||
|
remmina \
|
|||
|
remmina-plugin-rdp \
|
|||
|
remmina-plugin-secret \
|
|||
|
remmina-plugin-spice
|
|||
|
#quiterss \
|
|||
|
#deluge-gtk \
|
|||
|
|
|||
|
|
|||
|
echo -e '\033[33m----Office Applications----\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sudo apt install -y \
|
|||
|
evolution \
|
|||
|
meld \
|
|||
|
libreoffice-evolution \
|
|||
|
pdfarranger \
|
|||
|
xchm
|
|||
|
|
|||
|
|
|||
|
echo -e '\033[33m------Install Nemo Addons------\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sudo apt install -y \
|
|||
|
nemo-compare \
|
|||
|
nemo-gtkhash \
|
|||
|
nemo-fileroller \
|
|||
|
nemo-media-columns \
|
|||
|
nemo-share \
|
|||
|
nemo-seahorse
|
|||
|
|
|||
|
|
|||
|
echo -e '\033[33m----System Applications----\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sudo apt install -y \
|
|||
|
backintime-qt \
|
|||
|
bleachbit \
|
|||
|
gparted \
|
|||
|
gsmartcontrol \
|
|||
|
hardinfo \
|
|||
|
tilda \
|
|||
|
notify-osd \
|
|||
|
libnotify-bin
|
|||
|
|
|||
|
|
|||
|
echo -e '\033[33m------Install Themes------\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sudo apt install -y \
|
|||
|
chameleon-cursor-theme
|
|||
|
|
|||
|
ln -s /etc/alternatives/x-cursor-theme /usr/share/icons/default/index.theme
|
|||
|
sudo update-alternatives --config x-cursor-theme
|
|||
|
|
|||
|
|
|||
|
echo -e '\033[33m------Install Profile-Sync-Daemon------\033[33m'
|
|||
|
echo -e "\033[0m"
|
|||
|
sudo apt install -y profile-sync-daemon
|
|||
|
|
|||
|
# Enable and start psd service:
|
|||
|
systemctl --user enable psd && systemctl --user start psd
|
|||
|
|
|||
|
cp -r /home/$USER/.mozilla /home/$USER/.mozilla.backup
|
|||
|
mv /home/$USER/.config/psd/psd.conf /home/$USER/.config/psd/psd.conf.default
|
|||
|
|
|||
|
cat > ~/.config/psd/psd.conf <<"EOF"
|
|||
|
## NOTE the following:
|
|||
|
## To protect data from corruption, in the event that you do make an edit while
|
|||
|
## psd is active, any changes made will be applied the next time you start psd.
|
|||
|
|
|||
|
# Uncomment and set to "yes" to use overlayfs instead of a full copy to reduce
|
|||
|
# the memory costs and to improve sync/unsync operations. Note that your kernel
|
|||
|
# MUST have this module available in order to use this mode
|
|||
|
#
|
|||
|
USE_OVERLAYFS="yes"
|
|||
|
|
|||
|
# List browsers separated by spaces to include in the sync. Useful if you do not
|
|||
|
# wish to have all possible browser profiles sync'ed which is the default if
|
|||
|
# this variable is left commented.
|
|||
|
#
|
|||
|
BROWSERS="firefox"
|
|||
|
|
|||
|
# Uncomment and set to "no" to completely disable the crash recovery feature.
|
|||
|
#
|
|||
|
# The default is to create crash recovery backups if the system is ungracefully
|
|||
|
# powered-down due to a kernel panic, hitting the reset switch, battery going
|
|||
|
# dead, etc. Some users keep very diligent backups and don't care to have this
|
|||
|
# feature enabled.
|
|||
|
USE_BACKUPS="yes"
|
|||
|
EOF
|
|||
|
|
|||
|
|
|||
|
sudo sh -c "echo '$USER ALL=(ALL) NOPASSWD: /usr/bin/psd-overlay-helper' >> /etc/sudoers"
|
|||
|
|
|||
|
# Restart psd service:
|
|||
|
systemctl --user restart psd
|
|||
|
|
|||
|
# Preview the Profile-sync-daemon settings
|
|||
|
# You can preview what exactly Psd is doing by passing the option -p
|
|||
|
# psd p
|
|||
|
|
|||
|
|
|||
|
# Change sync intervals
|
|||
|
# By default, Profile-sync-daemon runs every one hour
|
|||
|
|
|||
|
#crontab -e
|
|||
|
#*/15 * * * * /usr/bin/profile-sync-daemon sync &> /dev/null
|
|||
|
;;
|
|||
|
|
|||
|
##################################################################################
|
|||
|
13) echo "************ Install DVD+Bluray **********************";
|
|||
|
##################################################################################
|
|||
|
sudo apt install -y \
|
|||
|
asunder \
|
|||
|
libaacs0 \
|
|||
|
libbluray-bdj \
|
|||
|
libdvdcss2
|
|||
|
|
|||
|
# Setup config aacs
|
|||
|
mkdir -p /home/$USER/.config/aacs/
|
|||
|
cd /home/$USER/.config/aacs/ && wget --no-check-certificate http://vlc-bluray.whoknowsmy.name/files/KEYDB.cfg
|
|||
|
;;
|
|||
|
|
|||
|
##################################################################################
|
|||
|
13) echo "************ Install HPLIP+Plugin **********************";
|
|||
|
##################################################################################
|
|||
|
sudo apt install --assume-yes \
|
|||
|
printer-driver-cups-pdf \
|
|||
|
hplip \
|
|||
|
hplip-gui
|
|||
|
|
|||
|
# Download and Install HPLIP-Plugin:
|
|||
|
mkdir -p ~/.install/ && cd ~/.install/
|
|||
|
wget https://developers.hp.com/sites/default/files/hplip-3.23.12-plugin.run
|
|||
|
chmod u+x hplip*.run && sh hplip*.run
|
|||
|
sleep 10
|
|||
|
|
|||
|
sudo ufw allow 515 # LPD (Printer)
|
|||
|
sudo ufw allow 427 # IPP (Printer) / SLP (Printer scanner)
|
|||
|
sudo ufw reload
|
|||
|
;;
|
|||
|
|
|||
|
##################################################################################
|
|||
|
17) echo "************ Install Timeshift-Autosnap-APT **********************";
|
|||
|
##################################################################################
|
|||
|
sudo apt install -y btrfs-progs
|
|||
|
|
|||
|
mkdir -p /home/$USER/.install/
|
|||
|
|
|||
|
git clone https://github.com/wmutschl/timeshift-autosnap-apt.git /home/$USER/.install/timeshift-autosnap-apt
|
|||
|
cd /home/$USER/.install/timeshift-autosnap-apt
|
|||
|
sudo make install
|
|||
|
|
|||
|
git clone https://github.com/Antynea/grub-btrfs.git /home/$USER/.install/grub-btrfs
|
|||
|
cd /home/$USER/.install/grub-btrfs
|
|||
|
sudo make install
|
|||
|
|
|||
|
# For example, as we do not have a dedicated /boot partition, we can set snapshotBoot=false
|
|||
|
# in the timeshift-autosnap-apt-conf file to not rsync
|
|||
|
# the /boot directory to /boot.backup. Note that the EFI partition is still rsynced into your
|
|||
|
# snapshot to /boot.backup/efi. For grub-btrfs,
|
|||
|
sudo cp /etc/timeshift-autosnap-apt.conf /etc/timeshift-autosnap-apt.conf.default
|
|||
|
sudo sed -i 's/snapshotBoot=true/snapshotBoot=false/g' /etc/timeshift-autosnap-apt.conf
|
|||
|
|
|||
|
|
|||
|
# I change GRUB_BTRFS_SUBMENUNAME to “My BTRFS Snapshots”.
|
|||
|
sudo cp /etc/default/grub-btrfs/config /etc/default/grub-btrfs/config.default
|
|||
|
sudo sed -i 's/#GRUB_BTRFS_SUBMENUNAME="Arch Linux snapshots"/GRUB_BTRFS_SUBMENUNAME="My BTRFS Snapshots"/g' /etc/default/grub-btrfs/config
|
|||
|
|
|||
|
# Check if everything is working:
|
|||
|
sudo timeshift-autosnap-apt
|
|||
|
;;
|
|||
|
|
|||
|
|
|||
|
##################################################################################
|
|||
|
20) echo "************ Install AMD-GPU **********************";
|
|||
|
##################################################################################
|
|||
|
sudo apt install -y \
|
|||
|
libglx-mesa0 \
|
|||
|
libglx-mesa0:i386 \
|
|||
|
libgl1-mesa-dri \
|
|||
|
libgl1-mesa-dri:i386 \
|
|||
|
mesa-vulkan-drivers \
|
|||
|
mesa-vulkan-drivers:i386 \
|
|||
|
mesa-va-drivers \
|
|||
|
mesa-va-drivers:i386 \
|
|||
|
libvulkan-dev \
|
|||
|
libvulkan-dev:i386 \
|
|||
|
mesa-utils \
|
|||
|
vulkan-tools \
|
|||
|
mesa-common-dev \
|
|||
|
mesa-vdpau-drivers \
|
|||
|
mesa-vdpau-drivers:i386 \
|
|||
|
vkbasalt \
|
|||
|
vdpau-driver-all \
|
|||
|
libvdpau-va-gl1 \
|
|||
|
vdpauinfo \
|
|||
|
vainfo
|
|||
|
|
|||
|
|
|||
|
sudo bash -c 'cat << EOF > /etc/X11/xorg.conf.d/20-amdgpu.conf
|
|||
|
Section "Device"
|
|||
|
Identifier "AMD"
|
|||
|
Driver "amdgpu"
|
|||
|
Option "TearFree" "true"
|
|||
|
Option "DRI" "3"
|
|||
|
EndSection
|
|||
|
EOF'
|
|||
|
|
|||
|
sudo cp /etc/environment /etc/environment.default &&
|
|||
|
echo -e "ENABLE_VKBASALT=1" | sudo tee -a /etc/environment &&
|
|||
|
echo -e "RADV_PERFTEST=aco,sam,nggc" | sudo tee -a /etc/environment &&
|
|||
|
echo -e "mesa_glthread=true" | sudo tee -a /etc/environment
|
|||
|
|
|||
|
|
|||
|
# echo "export ENABLE_VKBASALT=1" >> ~/.profile
|
|||
|
# echo "export RADV_PERFTEST=aco" >> ~/.profile
|
|||
|
# echo "export mesa_glthread=true" >> ~/.profile
|
|||
|
;;
|
|||
|
|
|||
|
##################################################################################
|
|||
|
21) echo "************ Install Radeon-GPU **********************";
|
|||
|
##################################################################################
|
|||
|
sudo bash -c 'cat << EOF > /etc/X11/xorg.conf.d/20-radeon.conf
|
|||
|
Section "Device"
|
|||
|
Identifier "Radeon"
|
|||
|
Driver "radeon"
|
|||
|
Option "TearFree" "true"
|
|||
|
Option "DRI" "3"
|
|||
|
EndSection
|
|||
|
EOF'
|
|||
|
;;
|
|||
|
|
|||
|
##################################################################################
|
|||
|
22) echo "************ Install Intel-GPU **********************";
|
|||
|
##################################################################################
|
|||
|
sudo bash -c 'cat << EOF > /etc/X11/xorg.conf.d/20-intel.conf
|
|||
|
Section "Device"
|
|||
|
Identifier "Intel Graphics"
|
|||
|
Driver "intel"
|
|||
|
Option "TearFree" "true"
|
|||
|
Option "AccelMethod" "uxa"
|
|||
|
Option "TripleBuffer" "true"
|
|||
|
EndSection
|
|||
|
EOF'
|
|||
|
;;
|
|||
|
|
|||
|
##################################################################################
|
|||
|
23) echo "************ Install Nvidia-GPU **********************";
|
|||
|
##################################################################################
|
|||
|
;;
|
|||
|
|
|||
|
##################################################################################
|
|||
|
24) echo "************ Setup Home **********************";
|
|||
|
##################################################################################
|
|||
|
# Setup compose-cache
|
|||
|
mkdir /home/$USER/.compose-cache/ && ln -sfv /run/user/$UID/ /home/$USER/.compose-cache
|
|||
|
|
|||
|
# Setup Dirs
|
|||
|
rm -R /home/$USER/Dokumente
|
|||
|
#rm -R /home/$USER/Musik
|
|||
|
#rm -R /home/$USER/Videos
|
|||
|
#rm -R /home/$USER/Öffentlich
|
|||
|
mkdir -p /home/$USER/bin
|
|||
|
mkdir -p /home/$USER/Backup
|
|||
|
mkdir -p /home/$USER/Backup/rotate
|
|||
|
mkdir -p /home/$USER/GIT
|
|||
|
mkdir -p /home/$USER/Sync
|
|||
|
mkdir -p /home/$USER/Share
|
|||
|
mkdir -p /home/$USER/MyStuff
|
|||
|
mkdir -p /home/$USER/MyStuff/Dokumente
|
|||
|
mkdir -p /home/$USER/MyStuff/Script
|
|||
|
|
|||
|
ln -sf /home/$USER/MyStuff/Dokumente ~/Dokumente
|
|||
|
ln -sf /home/$USER/MyStuff/Script ~/Script
|
|||
|
|
|||
|
## Hide the plank icon from plank:
|
|||
|
gsettings set net.launchpad.plank.dock.settings:/net/launchpad/plank/docks/dock1/ show-dock-item false
|
|||
|
|
|||
|
## Papierkorb automatisch leeren, wenn Inhalt älter als 3 Tage:
|
|||
|
gsettings set org.gnome.desktop.privacy old-files-age "3"
|
|||
|
gsettings set org.gnome.desktop.privacy remove-old-trash-files true
|
|||
|
|
|||
|
## Maximales Alter der Daten im Thumbnail-Cache in Tagen:
|
|||
|
gsettings set org.gnome.desktop.thumbnail-cache maximum-age 14
|
|||
|
|
|||
|
## Maximale Größe des Thumbnail-Caches in MB:
|
|||
|
gsettings set org.gnome.desktop.thumbnail-cache maximum-size 256
|
|||
|
|
|||
|
# Setup ~/.fonts.conf
|
|||
|
# This will enable subpixel-hinting and font-smoothing.
|
|||
|
# Now just restart X.org (log out, then back in again).
|
|||
|
# Read more here:
|
|||
|
# https://wiki.debian.org/Fonts
|
|||
|
|
|||
|
cat > /home/$USER/.fonts.conf <<"EOF"
|
|||
|
<?xml version='1.0'?>
|
|||
|
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
|
|||
|
<fontconfig>
|
|||
|
<match target="font">
|
|||
|
<edit mode="assign" name="rgba">
|
|||
|
<const>rgb</const>
|
|||
|
</edit>
|
|||
|
</match>
|
|||
|
<match target="font">
|
|||
|
<edit mode="assign" name="hinting">
|
|||
|
<bool>true</bool>
|
|||
|
</edit>
|
|||
|
</match>
|
|||
|
<match target="font">
|
|||
|
<edit mode="assign" name="hintstyle">
|
|||
|
<const>hintslight</const>
|
|||
|
</edit>
|
|||
|
</match>
|
|||
|
<match target="font">
|
|||
|
<edit mode="assign" name="antialias">
|
|||
|
<bool>true</bool>
|
|||
|
</edit>
|
|||
|
</match>
|
|||
|
<match target="font">
|
|||
|
<edit mode="assign" name="lcdfilter">
|
|||
|
<const>lcddefault</const>
|
|||
|
</edit>
|
|||
|
</match>
|
|||
|
</fontconfig>
|
|||
|
EOF
|
|||
|
;;
|
|||
|
|
|||
|
##################################################################################
|
|||
|
25) echo "************ Disable ipv6 **********************";
|
|||
|
##################################################################################
|
|||
|
sudo bash -c 'cat << EOF > /etc/sysctl.d/70-disable-ipv6.conf
|
|||
|
net.ipv6.conf.all.disable_ipv6 = 1
|
|||
|
EOF'
|
|||
|
|
|||
|
sudo sysctl -p -f /etc/sysctl.d/70-disable-ipv6.conf
|
|||
|
|
|||
|
#Remove IPv6 hosts:
|
|||
|
sudo sed -i '/::/s%^%#%g' /etc/hosts
|
|||
|
;;
|
|||
|
|
|||
|
##################################################################################
|
|||
|
26) echo "************ Cleanup System **********************";
|
|||
|
##################################################################################
|
|||
|
# du -sh /var/cache/apt/archives
|
|||
|
sudo apt clean && sudo apt autoremove && sudo apt autoremove --purge
|
|||
|
|
|||
|
# Check the size of your system’s thumbnail before deleting them using the command:
|
|||
|
#du -sh ~/.cache/thumbnails
|
|||
|
sudo rm -rf ~/.cache/thumbnails/*
|
|||
|
|
|||
|
sudo rm -rf ~/.local/share/Trash/*
|
|||
|
# sudo rm -rf /root/.local/share/Trash/*
|
|||
|
|
|||
|
# Paketlisten aufräumen:
|
|||
|
# Im Laufe der Zeit kann es passieren, dass sich in /var/lib/apt/lists/ eine Menge an Listen ansammelt. Nicht alle davon werden benötigt.
|
|||
|
sudo rm -rf /var/lib/apt/lists/* && sudo apt update
|
|||
|
;;
|
|||
|
|
|||
|
|
|||
|
x) echo "";
|
|||
|
exit 1;;
|
|||
|
*) echo " Press [enter] key to continue. . .";
|
|||
|
read enterKey;;
|
|||
|
esac
|
|||
|
done
|