Avtomatik İstifadəçi Yaratma

Bir fayldan istifadəçi siyahısı oxuyaraq avtomatik olaraq birdən çox istifadəçi hesabı yaradan script. Hər istifadəçi üçün home qovluğu və şifrə təyin edir.

Yayımlanma: 20.01.2024 Yenilənmə: 15.11.2024

Kod

#!/bin/bash

# Automated User Creation Script

if [ "$EUID" -ne 0 ]; then 
    echo "Error: This script must be run as root or with sudo"
    echo "Usage: sudo $0"
    exit 1
fi

USER_FILE="users.txt"

if [ ! -f "$USER_FILE" ]; then
    echo "Error: User file $USER_FILE not found!"
    echo ""
    echo "Please create a file named \"users.txt\" with the following format:"
    echo "username:password:Full Name"
    echo ""
    echo "Example:"
    echo "john:SecurePass123:John Doe"
    echo "jane:SecurePass456:Jane Smith"
    exit 1
fi

echo "======================================"
echo "   AUTOMATED USER CREATION"
echo "======================================"
echo "Reading users from: $USER_FILE"
echo ""

while IFS=: read -r username password fullname; do
    [[ -z "$username" || "$username" =~ ^#.*$ ]] && continue
    
    if id "$username" &>/dev/null; then
        echo "⚠️  User \"$username\" already exists. Skipping..."
        continue
    fi
    
    useradd -m -c "$fullname" -s /bin/bash "$username"
    
    if [ $? -eq 0 ]; then
        echo "✓ User \"$username\" created successfully"
        echo "$username:$password" | chpasswd
        
        if [ $? -eq 0 ]; then
            echo "  ✓ Password set for \"$username\""
        else
            echo "  ✗ Failed to set password for \"$username\""
        fi
        
        chage -d 0 "$username"
        echo "  ✓ Password change required on first login"
        echo ""
    else
        echo "✗ Failed to create user \"$username\""
        echo ""
    fi
done < "$USER_FILE"

echo "======================================"
echo "User creation process completed!"
echo ""
echo "Summary - Recent users:"
echo "----------------------"
getent passwd | grep -E "/home/" | tail -n 10

İstifadə

# Create user list (users.txt)
# Format: username:password:fullname
echo "john:Passw0rd123:John Doe" > users.txt
echo "jane:Passw0rd456:Jane Smith" >> users.txt

sudo chmod +x create_users.sh
sudo ./create_users.sh

Teqlər

user creation bulk operation user management useradd