ایجاد حساب کاربری با استفاده از BASH
![ایجاد حساب کاربری با استفاده از BASH 1 ایجاد حساب کاربری با استفاده از BASH](https://nabfollower.com/blog/wp-content/uploads/2024/07/ایجاد-حساب-کاربری-با-استفاده-از-BASH-780x470.jpg)
Summarize this content to 400 words in Persian Lang
به عنوان یک مهندس SysOps، مدیریت کارآمد حسابهای کاربری و گروهها برای حفظ امنیت سیستم و کنترل دسترسی بسیار مهم است. در این مقاله، نحوه ایجاد یک اسکریپت Bash به نام create_users.sh را بررسی خواهیم کرد که ورودی یک فایل متنی را میخواند، کاربران و گروهها را ایجاد میکند، دایرکتوریهای خانگی را راهاندازی میکند، رمزهای عبور تصادفی ایجاد میکند، اقدامات را ثبت میکند و رمزهای عبور را به صورت ایمن ذخیره میکند.
پیش نیازهاقبل از اینکه به اسکریپت بپردازیم، مطمئن شوید که موارد زیر را دارید:
یک سیستم لینوکس (به عنوان مثال، اوبونتو، CentOS) با Bash نصب شده است.
دانش اولیه برنامه نویسی Bash.
اسکریپت create_users.sh
#!/bin/bash
# automating user account creation
# Input file (usernames and groups)
input_file=”$1″
# Log file
log_file=”/var/log/user_management.log”
# Secure password storage file
password_file=”/var/secure/user_passwords.txt”
# create secure directory
sudo mkdir -p /var/secure
# Function to generate a random password
generate_password() {
# using ‘openssl rand -base64 12’ to generate a 12-character password
openssl rand -base64 12
}
# Read input file line by line
while IFS=’;’ read -r username groups; do
# Create groups if they don’t exist
for group in $(echo “$groups” | tr ‘,’ ‘ ‘); do
groupadd “$group” 2>/dev/null || echo “Group $group already exists”
done
# Create user
useradd -m “$username” -G “$groups” 2>/dev/null || echo “User $username already exists”
# Set password
password=$(generate_password)
echo “$username:$password” | chpasswd
# Log actions
echo “$(date ‘+%Y-%m-%d %H:%M:%S’) – Created user $username with groups: $groups” >> “$log_file”
# Store password securely
echo “$username:$password” >> “$password_file”
done “$input_file”
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
توضیح:
فایل ورودی ($input_file): اسکریپت انتظار دارد یک فایل ورودی حاوی خطوط با نام کاربری فرمت باشد. گروه ها. هر کاربر می تواند به چندین گروه (با کاما جدا شده) تعلق داشته باشد.
ایجاد دایرکتوری: برای در دسترس قرار دادن مکان تعریف شده در بالا لازم است. اگر این در دسترس نباشد، کد همچنان اجرا میشود، اما گذرواژهها در صورت نیاز ثبت نمیشوند. این مرحله باید با امتیازات بالا انجام شود، بنابراین sudo.
ایجاد گروه:اسکریپت فایل ورودی را میخواند و با استفاده از groupadd گروههایی (اگر وجود ندارند) ایجاد میکند. گروه های موجود نادیده گرفته می شوند و پیامی ثبت می شود.
ایجاد کاربر:کاربران با استفاده از useradd با گروه های مشخص شده ایجاد می شوند. کاربران موجود نادیده گرفته می شوند و پیامی ثبت می شود.
تولید رمز عبور:تابعgene_password پسوردهای تصادفی تولید می کند (در صورت نیاز سفارشی کنید). رمز عبور با استفاده از chpasswd تنظیم می شود.
ورود به سیستم:اقدامات (ایجاد کاربر، ایجاد گروه) با مُهر زمانی در $log_file ثبت میشوند.
ذخیره سازی امن رمز عبور:نام های کاربری و رمز عبور به طور ایمن در $password_file ذخیره می شوند.
– استفاده
اسکریپت را قابل اجرا کنید: chmod +x create_users.sh
اسکریپت را با فایل ورودی اجرا کنید: ./create_users.sh input.txt
این یک وظیفه DevOps مرحله 1 در HNG بود. میتوانید نقشهای موجود در HNG را در اینجا بررسی کنید
کل این کد در https://github.com/Uduakobong-Udombat/user_account_automation_with_bash موجود است
به عنوان یک مهندس SysOps، مدیریت کارآمد حسابهای کاربری و گروهها برای حفظ امنیت سیستم و کنترل دسترسی بسیار مهم است. در این مقاله، نحوه ایجاد یک اسکریپت Bash به نام create_users.sh را بررسی خواهیم کرد که ورودی یک فایل متنی را میخواند، کاربران و گروهها را ایجاد میکند، دایرکتوریهای خانگی را راهاندازی میکند، رمزهای عبور تصادفی ایجاد میکند، اقدامات را ثبت میکند و رمزهای عبور را به صورت ایمن ذخیره میکند.
پیش نیازها
قبل از اینکه به اسکریپت بپردازیم، مطمئن شوید که موارد زیر را دارید:
- یک سیستم لینوکس (به عنوان مثال، اوبونتو، CentOS) با Bash نصب شده است.
- دانش اولیه برنامه نویسی Bash.
- اسکریپت create_users.sh
#!/bin/bash
# automating user account creation
# Input file (usernames and groups)
input_file="$1"
# Log file
log_file="/var/log/user_management.log"
# Secure password storage file
password_file="/var/secure/user_passwords.txt"
# create secure directory
sudo mkdir -p /var/secure
# Function to generate a random password
generate_password() {
# using 'openssl rand -base64 12’ to generate a 12-character password
openssl rand -base64 12
}
# Read input file line by line
while IFS=';' read -r username groups; do
# Create groups if they don't exist
for group in $(echo "$groups" | tr ',' ' '); do
groupadd "$group" 2>/dev/null || echo "Group $group already exists"
done
# Create user
useradd -m "$username" -G "$groups" 2>/dev/null || echo "User $username already exists"
# Set password
password=$(generate_password)
echo "$username:$password" | chpasswd
# Log actions
echo "$(date '+%Y-%m-%d %H:%M:%S') - Created user $username with groups: $groups" >> "$log_file"
# Store password securely
echo "$username:$password" >> "$password_file"
done "$input_file"
توضیح:
فایل ورودی ($input_file): اسکریپت انتظار دارد یک فایل ورودی حاوی خطوط با نام کاربری فرمت باشد. گروه ها. هر کاربر می تواند به چندین گروه (با کاما جدا شده) تعلق داشته باشد.
ایجاد دایرکتوری: برای در دسترس قرار دادن مکان تعریف شده در بالا لازم است. اگر این در دسترس نباشد، کد همچنان اجرا میشود، اما گذرواژهها در صورت نیاز ثبت نمیشوند. این مرحله باید با امتیازات بالا انجام شود، بنابراین sudo.
ایجاد گروه:
اسکریپت فایل ورودی را میخواند و با استفاده از groupadd گروههایی (اگر وجود ندارند) ایجاد میکند. گروه های موجود نادیده گرفته می شوند و پیامی ثبت می شود.ایجاد کاربر:
کاربران با استفاده از useradd با گروه های مشخص شده ایجاد می شوند. کاربران موجود نادیده گرفته می شوند و پیامی ثبت می شود.تولید رمز عبور:
تابعgene_password پسوردهای تصادفی تولید می کند (در صورت نیاز سفارشی کنید). رمز عبور با استفاده از chpasswd تنظیم می شود.ورود به سیستم:
اقدامات (ایجاد کاربر، ایجاد گروه) با مُهر زمانی در $log_file ثبت میشوند.ذخیره سازی امن رمز عبور:
نام های کاربری و رمز عبور به طور ایمن در $password_file ذخیره می شوند.
– استفاده
- اسکریپت را قابل اجرا کنید: chmod +x create_users.sh
- اسکریپت را با فایل ورودی اجرا کنید: ./create_users.sh input.txt
این یک وظیفه DevOps مرحله 1 در HNG بود. میتوانید نقشهای موجود در HNG را در اینجا بررسی کنید
کل این کد در https://github.com/Uduakobong-Udombat/user_account_automation_with_bash موجود است