برنامه نویسی

خودکارسازی مدیریت کاربر و گروه با Bash: راهنمای جامع

معرفی

مدیریت حساب‌های کاربری و گروه‌ها برای مهندسان SysOps، به ویژه در محیطی با بسیاری از توسعه‌دهندگان جدید، یک وظیفه حیاتی است. این مقاله یک اسکریپت Bash را معرفی می‌کند که برای خودکارسازی این وظایف، تضمین کارایی، ثبات و امنیت طراحی شده است. اسکریپت از یک فایل متنی خوانده می‌شود، کاربران و گروه‌هایی را که مشخص شده است ایجاد می‌کند، دایرکتوری‌های خانگی را راه‌اندازی می‌کند، رمزهای عبور تصادفی تولید می‌کند، فعالیت‌ها را ثبت می‌کند و رمزهای عبور را به صورت ایمن ذخیره می‌کند.

چرا مدیریت کاربر و گروه را خودکار کنیم؟

اتوماسیون در مدیریت کاربر چندین مزیت دارد:

  • بهره وری: زمان صرف شده برای کارهای تکراری را کاهش می دهد.
  • ثبات: یکنواختی را در تنظیمات کاربر در سراسر سازمان تضمین می کند.
  • امنیت: به طور خودکار رمزهای عبور امن تولید می کند و مجوزهای مناسب را تنظیم می کند.
  • قابلیت حسابرسی: گزارش دقیقی از اقدامات برای پاسخگویی را حفظ می کند.

اسکریپت Bash: create_users.sh

در اینجا به تفکیک گام به گام اسکریپت آمده است:

#!/bin/bash

# Check if the input file exists
if [ ! -f "$1" ]; then
    echo "Error: Input file not found."
    exit 1
fi

# Define log and password file locations
LOG_FILE="/var/log/user_management.log"
PASSWORD_FILE="/var/secure/user_passwords.csv"

# Initialize log file if it doesn't exist
if [ ! -f "$LOG_FILE" ]; then
    sudo touch "$LOG_FILE"
    sudo chown root:root "$LOG_FILE"
    sudo chmod 600 "$LOG_FILE"
fi

# Initialize password file if it doesn't exist
if [ ! -f "$PASSWORD_FILE" ]; then
    sudo mkdir -p /var/secure
    sudo touch "$PASSWORD_FILE"
    sudo chown root:root "$PASSWORD_FILE"
    sudo chmod 600 "$PASSWORD_FILE"
fi

# Redirect stdout and stderr to the log file
exec > >(sudo tee -a "$LOG_FILE") 2>&1

# Function to check if a user exists
user_exists() {
    id "$1" &>/dev/null
}

# Read each line from the input file
while IFS=';' read -r username groups; do
    # Trim whitespace
    username=$(echo "$username" | tr -d '[:space:]')
    groups=$(echo "$groups" | tr -d '[:space:]')

    # Check if the user already exists
    if user_exists "$username"; then
        echo "User $username already exists."
        continue
    fi

    # Create user
    sudo useradd -m "$username"

    # Create personal group (same as username)
    sudo groupadd "$username"

    # Add user to personal group
    sudo usermod -aG "$username" "$username"

    # Create home directory
    sudo mkdir -p "/home/$username"
    sudo chown "$username:$username" "/home/$username"

    # Generate random password
    password=$(openssl rand -base64 12)

    # Set password for user
    echo "$username:$password" | sudo chpasswd

    # Log actions
    echo "User $username created. Password: $password"

    # Store passwords securely
    echo "$username,$password" | sudo tee -a "$PASSWORD_FILE"

    # Add user to specified groups
    if [ -n "$groups" ]; then
        IFS=',' read -ra group_list  "$groups"
        for group in "${group_list[@]}"; do
            sudo usermod -aG "$group" "$username"
            echo "Added $username to group $group"
        done
    fi

done "$1"
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نحوه استفاده از اسکریپت

  1. فایل ورودی را آماده کنید:
    یک فایل متنی ایجاد کنید که در آن هر خط از فرمت پیروی کند user;groups، با نام های کاربری که با یک نقطه ویرگول از گروه های خود و گروه ها با کاما جدا شده اند.

مثال:

   light; sudo,dev,www-data
   idimma; sudo
   mayowa; dev,www-data
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  1. اسکریپت را اجرا کنید:
    اسکریپت را با فایل ورودی به عنوان آرگومان اجرا کنید:
   bash create_users.sh 
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  1. بررسی خروجی:

    • ورود به سیستم فایل: بررسی /var/log/user_management.log برای گزارش دقیق اقدامات انجام شده
    • فایل رمز عبور: رمزهای عبور به طور ایمن در آن ذخیره می شوند /var/secure/user_passwords.csv.

مزایای اسکریپت

  • اتوماسیون: با ایجاد خودکار کاربر باعث صرفه جویی در زمان و کاهش خطای انسانی می شود.
  • امنیت: رمزهای عبور امن تولید می کند و مجوزهای مناسب را تنظیم می کند.
  • ورود به سیستم: گزارش دقیقی برای ممیزی و عیب یابی ارائه می دهد.

با کارآموزی HNG بیشتر بیاموزید

علاقه مند به تقویت مهارت های خود و کار بر روی پروژه های دنیای واقعی هستید؟ برنامه کارآموزی HNG را بررسی کنید تا از کارشناسان صنعت یاد بگیرید و تجربه ارزشمندی کسب کنید. همچنین می‌توانید فرصت‌هایی را برای استخدام استعدادهای برتر از جامعه HNG کشف کنید.

نتیجه

مدیریت خودکار کاربر با اسکریپت Bash می تواند کارایی و امنیت عملیات IT شما را به میزان قابل توجهی بهبود بخشد. این اسکریپت راه‌حلی قوی برای مدیریت حساب‌های کاربری ارائه می‌کند و از راه‌اندازی سازگار و ایمن برای توسعه‌دهندگان جدید اطمینان می‌دهد. با استفاده از اتوماسیون، می‌توانید بر روی وظایف استراتژیک‌تر تمرکز کنید، مطمئن باشید که توسعه‌دهندگان جدید به‌طور کارآمد و ایمن نصب می‌شوند.

برای اسکریپت کامل و جزئیات بیشتر، از مخزن GitHub دیدن کنید.

با خیال راحت نظرات یا سوالات خود را در زیر بنویسید و از خودکارسازی خوشحال شوید!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا