برنامه نویسی

ایجاد کاربر لینوکس- اسکریپت Bash

Summarize this content to 400 words in Persian Lang
در محیط‌های DevOps امروزی، خودکار کردن وظایف معمول مدیریت سیستم برای کارایی و سازگاری ضروری است. یکی از کارهای رایج ایجاد و مدیریت حساب های کاربری در سیستم های لینوکس است. این ساختار مقاله به الزامات فنی مشخص شده در مرحله اول کارآموزی HNG پایبند است.

وظیفه HNG

شرکت شما توسعه دهندگان جدید زیادی را استخدام کرده است. به عنوان یک مهندس SysOps، یک اسکریپت bash به نام بنویسید create_users.sh که یک فایل متنی حاوی نام کاربری و نام گروه کارمند را می خواند که در آن هر خط به صورت فرمت شده است user;groups.

توسعه اسکریپت

اسکریپت Bash برای ایجاد خودکار کاربران بر اساس ورودی از یک فایل متنی طراحی شده است. این اسکریپت نیازمندی‌های خاصی مانند ایجاد کاربران با گروه‌های مناسب، راه‌اندازی دایرکتوری‌های خانگی، تولید رمزهای عبور ایمن و ثبت همه اقدامات برای اهداف ممیزی را برطرف می‌کند. رمزهای عبور باید به طور ایمن در آن ذخیره شوند /var/secure/user_passwords.txt و تمام اقدامات وارد شده به /var/log/user_management.log.

1. راه اندازی و راه اندازیاسکریپت با اطمینان از وجود دایرکتوری ها و فایل های لازم شروع می شود:

#!/bin/bash

# Ensure log and password files are created and secured
mkdir -p /var/log /var/secure
touch /var/log/user_management.log
touch /var/secure/user_passwords.txt
chmod 600 /var/secure/user_passwords.txt

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

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

این دستورات در صورت نبود دایرکتوری های /var/log و /var/secure ایجاد می کنند. همچنین user_management.log و user_passwords.txt را با مجوزهای مناسب برای ثبت اقدامات و ذخیره گذرواژه‌ها به صورت ایمن، مقداردهی اولیه می‌کند.

2. عملکرد ورود به سیستماین اسکریپت از یک تابع log_action() برای ثبت هر عمل انجام شده در حین ایجاد کاربر استفاده می کند:

# Function to log actions with timestamp
log_action() {
echo “$(date) – $1” >> “/var/log/user_management.log”
}

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

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

این تابع برای هر اقدام مهم، یک پیام با مهر زمانی به user_management.log اضافه می‌کند و یک رکورد دقیق از فعالیت‌های مدیریت کاربر ارائه می‌کند.

3. منطق ایجاد کاربرهسته اسکریپت شامل تابع ()create_user است که ایجاد کاربر را بر اساس پارامترهای ورودی کنترل می کند:

# Function to create user and manage groups
create_user() {
local username=”$1″
local groups=”$2″
local password

# Check if user already exists
if id “$username” &>/dev/null; then
log_action “User $username already exists. Skipping.”
return
fi

# Create user’s primary group
groupadd “$username”
log_action “Group $username created.”

# Create additional groups if they don’t exist
IFS=’ ‘ read -ra group_array /dev/null; then
groupadd “$group”
log_action “Group $group created.”
fi
done

# Add user to groups
useradd -m -s /bin/bash -g “$username” “$username”
if [ $? -eq 0 ]; then
log_action “User $username created with primary group: $username”
else
log_action “Failed to create user $username.”
return
fi

for group in “${group_array[@]}”; do
usermod -aG “$group” “$username”
done
log_action “User $username added to groups: ${group_array[*]}”

# Generate random password
password=$(/urandom tr -dc A-Za-z0-9 | head -c 12)
echo “$username:$password” | chpasswd

# Store password securely
echo “$username,$password” >> “/var/secure/user_passwords.txt”
log_action “Password for user $username set and stored securely.”

# Set permissions and ownership
chmod 700 “/home/$username”
chown “$username:$username” “/home/$username”
}

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

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

این تابع:

بررسی می کند که آیا کاربر از قبل وجود دارد یا خیر.گروه اصلی کاربر را ایجاد می کند.گروه های مشخص شده اضافی را بررسی و ایجاد می کند.حساب کاربری را با فهرست اصلی و پوسته bash ایجاد می کند.رمز عبور را ایمن تنظیم می کند.ایجاد گذرواژه و تنظیم مجوزهای کاربر.

4. اجرا و اعتبار سنجی ورودیاسکریپت ورودی را تایید می کند و هر خط را از فایل لیست کاربر مشخص شده پردازش می کند:

# Check for input file argument
if [ $# -ne 1 ]; then
echo “Usage: $0 ”
exit 1
fi

filename=”$1″

# Verify input file existence
if [ ! -f “$filename” ]; then
echo “Users list file $filename not found.”
exit 1
fi

# Read user list file and create users
while IFS=’;’ read -r username groups; do
username=$(echo “$username” | xargs)
groups=$(echo “$groups” | xargs | tr -d ‘ ‘)
groups=$(echo “$groups” | tr ‘,’ ‘ ‘)
create_user “$username” “$groups”
done

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

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

برنامه نویسی Bash ایجاد و مدیریت کاربر در سیستم های لینوکس را خودکار می کند و وظایف مدیریت سیستم را آسان تر و کارآمدتر می کند. اسکریپت (create_users.sh) ساخته شده در این مقاله با پیروی از بهترین شیوه ها در امنیت، ثبت و مدیریت خطا، کارایی خود را در مدیریت کارآمد و ایمن حساب های کاربری نشان می دهد. این استراتژی نه تنها کارایی عملیاتی را افزایش می دهد، بلکه ثبات و پایبندی به الزامات امنیتی سازمانی را نیز تضمین می کند.

منابع:

درباره کارآموزی HNG بیشتر بدانید: برنامه کارآموزی HNGفرصت های بیشتر را با HNG کاوش کنید: HNG Hire

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

وظیفه HNG

شرکت شما توسعه دهندگان جدید زیادی را استخدام کرده است. به عنوان یک مهندس SysOps، یک اسکریپت bash به نام بنویسید create_users.sh که یک فایل متنی حاوی نام کاربری و نام گروه کارمند را می خواند که در آن هر خط به صورت فرمت شده است user;groups.

توسعه اسکریپت

اسکریپت Bash برای ایجاد خودکار کاربران بر اساس ورودی از یک فایل متنی طراحی شده است. این اسکریپت نیازمندی‌های خاصی مانند ایجاد کاربران با گروه‌های مناسب، راه‌اندازی دایرکتوری‌های خانگی، تولید رمزهای عبور ایمن و ثبت همه اقدامات برای اهداف ممیزی را برطرف می‌کند. رمزهای عبور باید به طور ایمن در آن ذخیره شوند /var/secure/user_passwords.txt و تمام اقدامات وارد شده به /var/log/user_management.log.

1. راه اندازی و راه اندازی
اسکریپت با اطمینان از وجود دایرکتوری ها و فایل های لازم شروع می شود:

#!/bin/bash

# Ensure log and password files are created and secured
mkdir -p /var/log /var/secure
touch /var/log/user_management.log
touch /var/secure/user_passwords.txt
chmod 600 /var/secure/user_passwords.txt
وارد حالت تمام صفحه شوید

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

این دستورات در صورت نبود دایرکتوری های /var/log و /var/secure ایجاد می کنند. همچنین user_management.log و user_passwords.txt را با مجوزهای مناسب برای ثبت اقدامات و ذخیره گذرواژه‌ها به صورت ایمن، مقداردهی اولیه می‌کند.

2. عملکرد ورود به سیستم
این اسکریپت از یک تابع log_action() برای ثبت هر عمل انجام شده در حین ایجاد کاربر استفاده می کند:

# Function to log actions with timestamp
log_action() {
    echo "$(date) - $1" >> "/var/log/user_management.log"
}
وارد حالت تمام صفحه شوید

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

این تابع برای هر اقدام مهم، یک پیام با مهر زمانی به user_management.log اضافه می‌کند و یک رکورد دقیق از فعالیت‌های مدیریت کاربر ارائه می‌کند.

3. منطق ایجاد کاربر
هسته اسکریپت شامل تابع ()create_user است که ایجاد کاربر را بر اساس پارامترهای ورودی کنترل می کند:

# Function to create user and manage groups
create_user() {
    local username="$1"
    local groups="$2"
    local password

    # Check if user already exists
    if id "$username" &>/dev/null; then
        log_action "User $username already exists. Skipping."
        return
    fi

    # Create user's primary group
    groupadd "$username"
    log_action "Group $username created."

    # Create additional groups if they don't exist
    IFS=' ' read -ra group_array /dev/null; then
            groupadd "$group"
            log_action "Group $group created."
        fi
    done

    # Add user to groups
    useradd -m -s /bin/bash -g "$username" "$username"
    if [ $? -eq 0 ]; then
        log_action "User $username created with primary group: $username"
    else
        log_action "Failed to create user $username."
        return
    fi

    for group in "${group_array[@]}"; do
        usermod -aG "$group" "$username"
    done
    log_action "User $username added to groups: ${group_array[*]}"

    # Generate random password
    password=$(/urandom tr -dc A-Za-z0-9 | head -c 12)
    echo "$username:$password" | chpasswd

    # Store password securely
    echo "$username,$password" >> "/var/secure/user_passwords.txt"
    log_action "Password for user $username set and stored securely."

    # Set permissions and ownership
    chmod 700 "/home/$username"
    chown "$username:$username" "/home/$username"
}
وارد حالت تمام صفحه شوید

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

این تابع:

بررسی می کند که آیا کاربر از قبل وجود دارد یا خیر.
گروه اصلی کاربر را ایجاد می کند.
گروه های مشخص شده اضافی را بررسی و ایجاد می کند.
حساب کاربری را با فهرست اصلی و پوسته bash ایجاد می کند.
رمز عبور را ایمن تنظیم می کند.
ایجاد گذرواژه و تنظیم مجوزهای کاربر.

4. اجرا و اعتبار سنجی ورودی
اسکریپت ورودی را تایید می کند و هر خط را از فایل لیست کاربر مشخص شده پردازش می کند:

# Check for input file argument
if [ $# -ne 1 ]; then
    echo "Usage: $0 "
    exit 1
fi

filename="$1"

# Verify input file existence
if [ ! -f "$filename" ]; then
    echo "Users list file $filename not found."
    exit 1
fi

# Read user list file and create users
while IFS=';' read -r username groups; do
    username=$(echo "$username" | xargs)
    groups=$(echo "$groups" | xargs | tr -d ' ')
    groups=$(echo "$groups" | tr ',' ' ')
    create_user "$username" "$groups"
done 
وارد حالت تمام صفحه شوید

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

برنامه نویسی Bash ایجاد و مدیریت کاربر در سیستم های لینوکس را خودکار می کند و وظایف مدیریت سیستم را آسان تر و کارآمدتر می کند. اسکریپت (create_users.sh) ساخته شده در این مقاله با پیروی از بهترین شیوه ها در امنیت، ثبت و مدیریت خطا، کارایی خود را در مدیریت کارآمد و ایمن حساب های کاربری نشان می دهد. این استراتژی نه تنها کارایی عملیاتی را افزایش می دهد، بلکه ثبات و پایبندی به الزامات امنیتی سازمانی را نیز تضمین می کند.

منابع:

درباره کارآموزی HNG بیشتر بدانید: برنامه کارآموزی HNG
فرصت های بیشتر را با HNG کاوش کنید: HNG Hire

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

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

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

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