127 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/bin/bash
 | |
| 
 | |
| 
 | |
| for group in $(groups)
 | |
| do
 | |
|     if [ "${group}" == "wheel" ] || [ "${group}" == "root" ]; then
 | |
|         echo "The user ${USER} is a member of the group ${group}"
 | |
|         break
 | |
|     else
 | |
|         echo "The user '${USER}' does not have permission to run this program."
 | |
|         echo "The user '${USER}' is not a member of the wheel or root group."
 | |
|         echo ""
 | |
|         echo -e "Add the user '${USER}' to the wheel group - COPY AND PASTE in new konsole:\n
 | |
|                  su -c \"usermod -a -G wheel ${USER}\"; qdbus org.kde.LogoutPrompt /LogoutPrompt promptLogout; exit"
 | |
|         echo ""
 | |
|         echo "Or otherwise escalate privileges and run the program \"${HOME}/.config/autostart/$(basename ${0}).desktop\" again."
 | |
|         echo ""
 | |
|         echo -e "Help: https://wiki.archlinux.org/title/Sudo \nhttps://wiki.archlinux.org/title/Users_and_groups"
 | |
|         echo ""
 | |
|         echo "The program path is the ${HOME}/.local/bin/$(basename ${0})"
 | |
|         echo "The shortcut path is the ${HOME}/.config/autostart/$(basename ${0}).desktop"
 | |
|         echo ""
 | |
|         echo "Waiting new konsole windows..."
 | |
| 
 | |
|         sleep 5
 | |
| 
 | |
|         /usr/bin/konsole
 | |
|         exit
 | |
|     fi
 | |
| done
 | |
| 
 | |
| 
 | |
| if [[ "$UID" != 0 ]]; then
 | |
|     echo "USER NOT ROOT"
 | |
|     sudo "$0"
 | |
|     exit
 | |
| else
 | |
|     echo "USER IS ROOT"
 | |
| fi
 | |
| 
 | |
| ping -c 1 1.1.1.1 > /dev/null
 | |
| have_internet="$?"
 | |
| 
 | |
| # sleep 1
 | |
| 
 | |
| cd "/root"
 | |
| 
 | |
| rm  -rf /var/lib/pacman/sync/*
 | |
| rm -rf /etc/pacman.d/gnupg/*
 | |
| 
 | |
| mkdir -p /root/.gnupg 2>/dev/null
 | |
| chmod 700 /root/.gnupg
 | |
| 
 | |
| haveged -w 1024
 | |
| pacman-key --init
 | |
| pkill haveged
 | |
| 
 | |
| pacman-key --add /usr/share/pacman/keyrings/melawy-linux.gpg
 | |
| pacman-key --lsign-key BC8B600E8DDA1F4CB77B10D2BA803A261A5EE6B8
 | |
| pacman-key --lsign-key B175815513971572FE7B1557CEC07AC8FF64DA4B
 | |
| 
 | |
| if [ "$have_internet" -eq 0 ]; then
 | |
|     pacman-key --keyserver hkps://keys.openpgp.org --recv-keys BC8B600E8DDA1F4CB77B10D2BA803A261A5EE6B8
 | |
|     pacman-key --keyserver hkps://keyserver.ubuntu.com --recv-keys BC8B600E8DDA1F4CB77B10D2BA803A261A5EE6B8
 | |
|     pacman-key --lsign-key BC8B600E8DDA1F4CB77B10D2BA803A261A5EE6B8
 | |
| 
 | |
|     pacman-key --keyserver hkps://keys.openpgp.org --recv-keys B175815513971572FE7B1557CEC07AC8FF64DA4B
 | |
|     pacman-key --keyserver hkps://keyserver.ubuntu.com --recv-keys B175815513971572FE7B1557CEC07AC8FF64DA4B
 | |
|     pacman-key --lsign-key B175815513971572FE7B1557CEC07AC8FF64DA4B
 | |
| fi
 | |
| 
 | |
| pacman-key --lsign-key melawy-linux
 | |
| 
 | |
| pacman-key --add /usr/share/pacman/keyrings/manjaro.gpg
 | |
| pacman-key --lsign-key manjaro
 | |
| pacman-key --add /usr/share/pacman/keyrings/cachyos.gpg
 | |
| pacman-key --lsign-key cachyos
 | |
| pacman-key --add /usr/share/pacman/keyrings/arcolinux.gpg
 | |
| pacman-key --lsign-key arcolinux
 | |
| pacman-key --add /usr/share/pacman/keyrings/chaotic.gpg
 | |
| pacman-key --lsign-key chaotic
 | |
| pacman-key --add /usr/share/pacman/keyrings/endeavouros.gpg
 | |
| pacman-key --lsign-key endeavouros
 | |
| 
 | |
| pacman-key --populate
 | |
| 
 | |
| echo "
 | |
| keyserver hkp://keyserver.ubuntu.com:80" | sudo tee --append /etc/pacman.d/gnupg/gpg.conf
 | |
| 
 | |
| pacman-key --updatedb
 | |
| 
 | |
| if [ "$have_internet" -eq 0 ]; then
 | |
|     pacman -Sy
 | |
| fi
 | |
| 
 | |
| title="Successed!"
 | |
| msg="$(date '+%Y.%m.%d %H:%M:%S')"
 | |
| 
 | |
| users=$(/usr/bin/users | sed 's| |\n|g' | sort | uniq)
 | |
| for user in $users
 | |
| do
 | |
|     userid=$(/usr/bin/id -u "$user")
 | |
| 
 | |
|     cmd=(
 | |
|         DISPLAY=:0
 | |
|         DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/"$userid"/bus
 | |
|         /usr/bin/notify-send
 | |
|         --icon=info
 | |
|         --urgency=low
 | |
|         -t 5000
 | |
|         -a "'Keys sign'"
 | |
|         "'$title'"
 | |
|         "'$msg'"
 | |
|     )
 | |
| 
 | |
|     /usr/bin/su "$user" -c "${cmd[*]}"
 | |
| 
 | |
|    if [ "$user" != "liveuser" ]; then
 | |
|        rm /home/"$user"/.config/autostart/key-sign.sh.desktop
 | |
| #        rm /home/"$user"/.local/bin/key-sign.sh
 | |
|    fi
 | |
| done
 | |
| 
 | |
| echo "This window will close in 5 seconds"
 | |
| sleep 5
 | |
| 
 |