mirror of
https://github.com/stornic56/debianito-post-install.git
synced 2026-09-14 06:02:35 +00:00
dual-gpu fix & lspci cache
- Replaced the restrictive Broadcom firmware installation flow with a persistent, step-by-step process in modules/firmware.sh. Now installs dkms, wireless-tools, and linux-headers-amd64 separately, then applies blacklist configuration, updates initramfs, and loads conflicting modules properly. - Fixed conky package name across system.sh and bullseye/extras.sh. Changed from "conky" to "conky-all" with corresponding state variable updates for correct installation via apt. - Corrected broken GRUB sed command in modules/gpu.sh for AMD GCN support. Added grep guard to prevent duplicate parameter insertion and fixed regex pattern for proper cmdline modification. - Added whiptail pre-flight check in debianito.sh. Auto-installs required TUI dependencies if missing before the main menu, preventing runtime failures. - Fixed home directory path resolution bug in modules/sudo_config.sh. Replaced eval echo "~$USER" with getent passwd approach for reliable user home detection across SUDO_USER contexts. - Implemented global lspci output caching across 18+ locations. Single cache population via _init_lspci_cache() before detect_gpu, all subsequent reads use LSPCI_OUTPUT variable to eliminate redundant hardware polling calls. - Added apt update deduplication helper in modules/utils.sh. _ensure_apt_updated() with APT_UPDATED flag bypasses redundant package list refreshes across extras/, gaming/, firmware/, and desktop_display/ modules while preserving transactional rollback paths in repos.sh. - Fixed STATE_REFRESHED logic in debianito.sh main_menu case statement. Added STATE_REFRESHED=true to branches 3, 5, 7, 9, 11, 12, and 13 that mutate system state, ensuring refresh_system_state() triggers correctly after configuration changes. - Removed dead REPOS_CONFIGURED variable from debianito.sh and modules/repos.sh. Variable was written but never read, eliminated to clean up global namespace without affecting repository functionality.
This commit is contained in:
+25
-20
@@ -19,11 +19,11 @@ config_sudo() {
|
||||
clear
|
||||
|
||||
case "$choice" in
|
||||
1) _check_sudo_group ;;
|
||||
2) _configure_nopasswd ;;
|
||||
3) _repair_home_ownership ;;
|
||||
4) _toggle_pwfeedback ;;
|
||||
5) return ;;
|
||||
1) _check_sudo_group ;;
|
||||
2) _configure_nopasswd ;;
|
||||
3) _repair_home_ownership ;;
|
||||
4) _toggle_pwfeedback ;;
|
||||
5) return ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
@@ -68,30 +68,35 @@ Useful for automation but reduces security." 14 70; then
|
||||
local choices
|
||||
choices=$(_checklist "NOPASSWD Commands" \
|
||||
"Select commands to allow without password:" 12 60 3 \
|
||||
"apt" "APT package management" ON \
|
||||
"apt" "APT package management" ON \
|
||||
"systemctl" "Systemd service management" ON \
|
||||
"power" "Shutdown, reboot, halt" ON)
|
||||
"power" "Shutdown, reboot, halt" ON)
|
||||
clear
|
||||
|
||||
[ -z "$choices" ] && { echo "No commands selected."; return; }
|
||||
local cleaned; cleaned=$(echo "$choices" | tr -d '"')
|
||||
[ -z "$choices" ] && {
|
||||
echo "No commands selected."
|
||||
return
|
||||
}
|
||||
local cleaned
|
||||
cleaned=$(echo "$choices" | tr -d '"')
|
||||
|
||||
local content=""
|
||||
for cmd in $cleaned; do
|
||||
case $cmd in
|
||||
apt)
|
||||
content+="${USER} ALL=(root) NOPASSWD: /usr/bin/apt, /usr/bin/apt-get, /bin/apt, /bin/apt-get\n"
|
||||
;;
|
||||
systemctl)
|
||||
content+="${USER} ALL=(root) NOPASSWD: /usr/bin/systemctl, /bin/systemctl\n"
|
||||
;;
|
||||
power)
|
||||
content+="${USER} ALL=(root) NOPASSWD: /usr/sbin/shutdown, /sbin/shutdown, /usr/sbin/reboot, /sbin/reboot, /usr/sbin/halt, /sbin/halt\n"
|
||||
;;
|
||||
apt)
|
||||
content+="${USER} ALL=(root) NOPASSWD: /usr/bin/apt, /usr/bin/apt-get, /bin/apt, /bin/apt-get\n"
|
||||
;;
|
||||
systemctl)
|
||||
content+="${USER} ALL=(root) NOPASSWD: /usr/bin/systemctl, /bin/systemctl\n"
|
||||
;;
|
||||
power)
|
||||
content+="${USER} ALL=(root) NOPASSWD: /usr/sbin/shutdown, /sbin/shutdown, /usr/sbin/reboot, /sbin/reboot, /usr/sbin/halt, /sbin/halt\n"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
local content_str; content_str=$(echo -e "$content")
|
||||
local content_str
|
||||
content_str=$(echo -e "$content")
|
||||
if _validate_sudoers "$content_str" "$nopasswd_file"; then
|
||||
echo -e "${GREEN}Passwordless sudo configured for selected commands.${NC}"
|
||||
else
|
||||
@@ -103,7 +108,7 @@ Useful for automation but reduces security." 14 70; then
|
||||
# ── Option 3: Repair Home Directory Ownership ──
|
||||
_repair_home_ownership() {
|
||||
local home
|
||||
home=$(eval echo "~$USER")
|
||||
home=$(getent passwd "${SUDO_USER:-$USER}" | cut -d: -f6)
|
||||
|
||||
if [ ! -d "$home" ]; then
|
||||
_msg "Home Directory" "Home directory '$home' does not exist." 8 60
|
||||
|
||||
Reference in New Issue
Block a user