slogan3

Ontwikkel een Bash- of PowerShell-script voor servergebruikersbeheer en toegangscontrole

description

Met deze prompt kan de gebruiker een script maken dat het beheer van gebruikersaccounts en toegangsrechten automatiseert, waardoor handmatige fouten verminderen en de beveiliging verbeteren. Het is specifiek toegespitst op toegangscontrole, een essentieel onderdeel dat nog niet in bestaande prompts is behandeld, en ondersteunt maatwerk voor verschillende servertypes en beveiligingsregels.

prompt

Help me een Bash- of PowerShell-script te ontwikkelen dat gebruikersaccounts op mijn server beheert met functies zoals aanmaken, verwijderen, en aanpassen van gebruikers, inclusief het instellen van toegangsrechten en wachtwoordbeleid. Servertype: <vo ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Hier is een voorbeeld van een Bash-script dat gebruikers op een Ubuntu 20.04 server beheert. Het script ondersteunt het aanmaken, verwijderen en aanpassen van gebruikers, inclusief het toewijzen van groepslidmaatschappen zoals sudo en developers, en het instellen van wachtwoordbeleid. **Let op:** Voer dit script uit als root of met sudo. ```bash #!/bin/bash # Script voor gebruikersbeheer op Ubuntu 20.04 # Functies create_user() { read -p "Voer gebruikersnaam in: " username if id "$username" &>/dev/null; then echo "Gebruiker bestaat al." else sudo adduser --gecos "" "$username" echo "Gebruiker $username aangemaakt." fi } delete_user() { read -p "Voer gebruikersnaam in om te verwijderen: " username if id "$username" &>/dev/null; then sudo deluser --remove-home "$username" echo "Gebruiker $username verwijderd." else echo "Gebruiker bestaat niet." fi } modify_user() { read -p "Voer gebruikersnaam in om te wijzigen: " username if id "$username" &>/dev/null; then echo "Wat wil je aanpassen?" echo "1. Wachtwoord wijzigen" echo "2. Groepslidmaatschappen aanpassen" read -p "Kies optie [1-2]: " keuze case $keuze in 1) sudo passwd "$username" ;; 2) manage_groups "$username" ;; *) echo "Ongeldige keuze." ;; esac else echo "Gebruiker bestaat niet." fi } manage_groups() { read -p "Welke groepen wil je toevoegen of verwijderen? (bijv. sudo, developers): " groups_input IFS=',' read -ra group_array <<< "$groups_input" for group in "${group_array[@]}"; do group=$(echo "$group" | xargs) # verwijder spaties # Check of groep bestaat, zo niet, maak aan if ! getent group "$group" >/dev/null; then sudo groupadd "$group" echo "Groep $group aangemaakt." fi # Voeg gebruiker toe aan groep sudo usermod -aG "$group" "$username" echo "Gebruiker $username toegevoegd aan groep $group." done } set_sudo_rights() { read -p "Voer gebruikersnaam in voor sudo-toegang: " username if id "$username" &>/dev/null; then sudo usermod -aG sudo "$username" echo "$username heeft nu sudo-rechten." else echo "Gebruiker bestaat niet." fi } set_developer_group() { read -p "Voer gebruikersnaam in voor developers groep: " username if id "$username" &>/dev/null; then # Maak de groep indien nodig if ! getent group developers >/dev/null; then sudo groupadd developers echo "Groep developers aangemaakt." fi sudo usermod -aG developers "$username" echo "$username toegevoegd aan de groep developers." else echo "Gebruiker bestaat niet." fi } # Wachtwoordbeleid instellen (bijvoorbeeld wachtwoordduur, complexiteit) set_password_policy() { # Voor Ubuntu gebruiken we pam_pwquality.conf sudo sed -i 's/^# minlen = 8/minlen = 12/' /etc/security/pwquality.conf sudo sed -i 's/^# dcredit = 0/dcredit = -1/' /etc/security/pwquality.conf sudo sed -i 's/^# ucredit = 0/ucredit = -1/' /etc/security/pwquality.conf sudo sed -i 's/^# ocredit = 0/ocredit = -1/' /etc/security/pwquality.conf sudo sed -i 's/^# lcredit = 0/lcredit = -1/' /etc/security/pwquality.conf echo "Wachtwoordbeleid ingesteld." } # Hoofdmenu while true; do echo "----------------------------------------" echo "Gebruikersbeheer Script" echo "1. Gebruiker aanmaken" echo "2. Gebruiker verwijderen" echo "3. Gebruiker aanpassen" echo "4. Sudo-toegang toewijzen" echo "5. Developer groep toewijzen" echo "6. Wachtwoordbeleid instellen" echo "7. Afsluiten" read -p "Maak een keuze [1-7]: " keuze case $keuze in 1) create_user ;; 2) delete_user ;; 3) modify_user ;; 4) set_sudo_rights ;; 5) set_developer_group ;; 6) set_password_policy ;; 7) echo "Afsluiten..." break ;; *) echo "Ongeldige keuze." ;; esac done ``` **Gebruikstips:** - Sla het script op bijvoorbeeld als `gebruikersbeheer.sh` - Maak het uitvoerbaar: `chmod +x gebruikersbeheer.sh` - Voer het uit met rootrechten of via sudo: `sudo ./gebruikersbeheer.sh` **Aanpassingen:** - Je kunt het script verder uitbreiden met extra functies of beveiligingsmaatregelen. - Pas wachtwoordbeleid aan op basis van jouw eisen door de instellingen in `set_password_policy()` te wijzigen. Veel succes met het beheren van je gebruikers!
provider: deepseek
model: deepseek-chat
Hier is een Bash-script voor Ubuntu 20.04 dat gebruikers kan aanmaken en toewijzen aan de `sudo` en `developers` groepen: ```bash #!/bin/bash # Configuratie WACHTWOORD_BELEID_MIN_DAGEN=7 WACHTWOORD_BELEID_MAX_DAGEN=90 WACHTWOORD_BELEID_WAARSCHUWING=14 # Kleuren voor output ROOD='\033[0;31m' GROEN='\033[0;32m' GEEL='\033[1;33m' BLAUW='\033[0;34m' RESET='\033[0m' # Functie om te controleren of script als root wordt uitgevoerd check_root() { if [[ $EUID -ne 0 ]]; then echo -e "${ROOD}Dit script moet als root worden uitgevoerd. Gebruik sudo.${RESET}" exit 1 fi } # Functie om developers groep aan te maken indien niet bestaat create_developers_group() { if ! getent group developers >/dev/null; then groupadd developers echo -e "${GROEN}Developers groep aangemaakt.${RESET}" fi } # Functie om wachtwoordbeleid in te stellen set_password_policy() { sed -i "s/^PASS_MAX_DAYS.*/PASS_MAX_DAYS $WACHTWOORD_BELEID_MAX_DAGEN/" /etc/login.defs sed -i "s/^PASS_MIN_DAYS.*/PASS_MIN_DAYS $WACHTWOORD_BELEID_MIN_DAGEN/" /etc/login.defs sed -i "s/^PASS_WARN_AGE.*/PASS_WARN_AGE $WACHTWOORD_BELEID_WAARSCHUWING/" /etc/login.defs echo -e "${GROEN}Wachtwoordbeleid ingesteld.${RESET}" } # Functie om gebruiker aan te maken create_user() { local username=$1 local add_to_sudo=$2 local add_to_developers=$3 # Controleren of gebruiker al bestaat if id "$username" &>/dev/null; then echo -e "${GEEL}Gebruiker $username bestaat al.${RESET}" return 1 fi # Gebruiker aanmaken useradd -m -s /bin/bash "$username" # Wachtwoord instellen echo -e "${BLAUW}Stel wachtwoord in voor gebruiker $username:${RESET}" passwd "$username" # Toevoegen aan groepen if [[ "$add_to_sudo" == "ja" ]]; then usermod -aG sudo "$username" echo -e "${GROEN}Gebruiker $username toegevoegd aan sudo groep.${RESET}" fi if [[ "$add_to_developers" == "ja" ]]; then usermod -aG developers "$username" echo -e "${GROEN}Gebruiker $username toegevoegd aan developers groep.${RESET}" fi echo -e "${GROEN}Gebruiker $username succesvol aangemaakt.${RESET}" } # Functie om gebruiker te verwijderen delete_user() { local username=$1 local delete_home=$2 if ! id "$username" &>/dev/null; then echo -e "${ROOD}Gebruiker $username bestaat niet.${RESET}" return 1 fi if [[ "$delete_home" == "ja" ]]; then userdel -r "$username" echo -e "${GROEN}Gebruiker $username en home directory verwijderd.${RESET}" else userdel "$username" echo -e "${GROEN}Gebruiker $username verwijderd (home directory behouden).${RESET}" fi } # Functie om gebruiker aan te passen modify_user() { local username=$1 if ! id "$username" &>/dev/null; then echo -e "${ROOD}Gebruiker $username bestaat niet.${RESET}" return 1 fi echo -e "${BLAUW}Aanpassen van gebruiker: $username${RESET}" echo "1) Wachtwoord wijzigen" echo "2) Toevoegen aan sudo groep" echo "3) Verwijderen uit sudo groep" echo "4) Toevoegen aan developers groep" echo "5) Verwijderen uit developers groep" echo "6) Shell wijzigen" read -p "Kies een optie (1-6): " choice case $choice in 1) passwd "$username" ;; 2) usermod -aG sudo "$username" echo -e "${GROEN}Toegevoegd aan sudo groep.${RESET}" ;; 3) gpasswd -d "$username" sudo echo -e "${GROEN}Verwijderd uit sudo groep.${RESET}" ;; 4) usermod -aG developers "$username" echo -e "${GROEN}Toegevoegd aan developers groep.${RESET}" ;; 5) gpasswd -d "$username" developers echo -e "${GROEN}Verwijderd uit developers groep.${RESET}" ;; 6) read -p "Nieuwe shell (bijv. /bin/bash): " new_shell usermod -s "$new_shell" "$username" ;; *) echo -e "${ROOD}Ongeldige keuze.${RESET}" ;; esac } # Hoofdmenu main_menu() { echo -e "${BLAUW}=== Gebruikersbeheer Script ===${RESET}" echo "1) Nieuwe gebruiker aanmaken" echo "2) Gebruiker verwijderen" echo "3) Gebruiker aanpassen" echo "4) Wachtwoordbeleid instellen" echo "5) Developers groep aanmaken" echo "6) Afsluiten" read -p "Kies een optie (1-6): " main_choice case $main_choice in 1) read -p "Gebruikersnaam: " username read -p "Toevoegen aan sudo groep? (ja/nee): " sudo_choice read -p "Toevoegen aan developers groep? (ja/nee): " dev_choice create_user "$username" "$sudo_choice" "$dev_choice" ;; 2) read -p "Gebruikersnaam: " username read -p "Home directory verwijderen? (ja/nee): " del_home delete_user "$username" "$del_home" ;; 3) read -p "Gebruikersnaam: " username modify_user "$username" ;; 4) set_password_policy ;; 5) create_developers_group ;; 6) echo -e "${GROEN}Afsluiten...${RESET}" exit 0 ;; *) echo -e "${ROOD}Ongeldige keuze.${RESET}" ;; esac } # Script uitvoering check_root while true; do main_menu echo read -p "Druk op Enter om door te gaan..." clear done ``` ## Gebruiksaanwijzing: 1. **Script opslaan** als `gebruikersbeheer.sh` 2. **Uitvoerbaar maken**: ```bash chmod +x gebruikersbeheer.sh ``` 3. **Uitvoeren als root**: ```bash sudo ./gebruikersbeheer.sh ``` ## Functies van het script: - ✅ **Gebruiker aanmaken** met home directory en bash shell - ✅ **Toewijzen aan groepen**: sudo en developers - ✅ **Wachtwoordbeleid** instellen (min/max dagen, waarschuwing) - ✅ **Developers groep** automatisch aanmaken indien niet bestaat - ✅ **Interactief menu** voor eenvoudig gebruik - ✅ **Foutafhandeling** en gebruikersvriendelijke meldingen - ✅ **Kleurcodering** voor betere leesbaarheid ## Belangrijke opmerkingen: - Het script moet als **root** worden uitgevoerd - De `developers` groep wordt automatisch aangemaakt - Wachtwoordbeleid wordt toegepast op systeemniveau - Gebruikers krijgen standaard `/bin/bash` als shell Het script biedt een veilige en gecontroleerde manier om gebruikers te beheren op uw Ubuntu 20.04 server.
error: Generation failed [deepseek] prompt_id=4818 locale=zh err=DeepSeek connection/timeout