خودکارسازی مدیریت حساب کاربری در لینوکس با اسکریپت Bash
![خودکارسازی مدیریت حساب کاربری در لینوکس با اسکریپت Bash 1 خودکارسازی مدیریت حساب کاربری در لینوکس با اسکریپت Bash](https://nabfollower.com/blog/wp-content/uploads/2024/07/خودکارسازی-مدیریت-حساب-کاربری-در-لینوکس-با-اسکریپت-Bash-780x470.png)
مدیریت کاربر بخشی جدایی ناپذیر از Sys Ops Engineer است، زیرا در فعالیت های روزمره مفید است. این معمولاً هنگام ورود اعضای جدید کارکنان مورد نیاز است. در این قسمت مراحل ایجاد و تخصیص کاربران جدید را طی می کنیم.
این بخشی از الزامات کارآموزی HNG است. با کلیک بر روی لینک زیر می توانید در مورد HNG اطلاعات بیشتری کسب کنید.
کارآموزی HNG
فرضیه
مدیریت دستی حساب های کاربری می تواند خسته کننده باشد و اغلب منجر به اشتباه می شود. برای آسانتر و قابل اعتمادتر کردن کارها، باید این فرآیند را خودکار کنیم. ما یک اسکریپت به نام “create_users.sh” ایجاد خواهیم کرد که لیستی از نامهای کاربری و گروهها را از یک فایل متنی مشخص میخواند، کاربران و گروهها را ایجاد میکند، فهرستهای اصلی آنها را راهاندازی میکند، رمزهای عبور تصادفی ایجاد میکند و همه چیز را به یک مدیریت ثبت میکند. ورود به سیستم فایل. این باعث صرفه جویی در زمان، کاهش خطاها و ثابت نگه داشتن کارها می شود.
پیش نیازها
موارد زیر الزامات مورد نیاز برای ایجاد و اجرای اسکریپت است
- آشنایی اولیه با دستور لینوکس
- امتیاز مدیریت
- ویرایشگر متن مانند Vim، Nano، TextEdit و غیره
بررسی اجمالی
انتظار می رود اسکریپت وظایف زیر را انجام دهد
- فهرستی از کاربران و گروهها را از هر فایل متنی میخواند.
- کاربران را ایجاد می کند و آنها را به گروه های مشخص اختصاص می دهد.
- دایرکتوری های خانگی را با مجوزهای مناسب تنظیم کنید.
- رمزهای عبور تصادفی را برای کاربران ایجاد می کند.
- همه اقدامات را ثبت می کند
/var/log/user_management.log.
- رمزهای عبور ایجاد شده را به صورت ایمن در آن ذخیره می کند
/var/secure/user_passwords.csv
.
روش
- متغیری را برای پذیرش فایل ورودی، فایل لاگ و فایل رمز عبور تعریف کنید
INPUT_FILE="$1"
USER_INPUT_FILE="/var/log/user_management.log"
PASSWORD_FILE="/var/secure/user_passwords.csv"
- ایجاد توابع برای انجام وظایف
# Function to log messages
log_message() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | sudo tee -a $USER_INPUT_FILE > /dev/null
}
# Function to generate random password
random_password() {
- دایرکتوری ها و فایل ها را ایجاد کنید و اجازه دهید
# Create neccessary directories if they do not exist
sudo mkdir -p /var/log
sudo mkdir -p /var/secure
# create log file if it does not exist, and set the neccessary permission
sudo touch $USER_INPUT_FILE
sudo chmod 600 $USER_INPUT_FILE
# create password file if it does not exist, and set the neccessary permission
sudo touch $PASSWORD_FILE
sudo chmod 600 $PASSWORD_FILE
- کد زیر فایل را خط به خط می خواند، کاربر را ایجاد می کند، به گروه اضافه می کند و رمز عبور را تنظیم می کند
# Read the input file line by line
while IFS=';' read -r username groups; do
# Remove whitespace from username and group
username=$(echo $username | xargs)
groups=$(echo $groups | xargs)
# Create the new user
if id -u "$username" >/dev/null 2>&1; then
log_message "User $username already exists. Creation skipped."
else
sudo useradd -m -s /bin/bash "$username"
if [ $? -eq 0 ]; then
log_message "New user: $username created successfully."
else
log_message "Unable to create user: $username."
continue
fi
fi
# Create the new user personal group
if ! getent group "$username" >/dev/null 2>&1; then
sudo groupadd "$username"
log_message "Personal group $username created successfully"
fi
# Add user to group
sudo usermod -aG "$username" "$username"
# Add the user to other groups
IFS=',' read -ra group_array /dev/null 2>&1; then
sudo groupadd "$group"
log_message "Group $group created."
fi
sudo usermod -aG "$group" "$username"
log_message "User $username added to group: $group."
done
# Generate a random password and set it for the created user
password=$(random_password)
echo "$username:$password" | sudo chpasswd
echo "$username,$password" | sudo tee -a $PASSWORD_FILE > /dev/null
log_message "Password set for user $username."
done
- پیام ورود به سیستم برای نمایش وضعیت پس از اجرا
log_message "User creation script completed."
echo "User creation process is complete. Check $USER_INPUT_FILE for details"
نتیجه
استفاده از اسکریپت bash برای خودکارسازی مدیریت حساب کاربری میتواند فرآیند ورود به سیستم را برای کارمندان، کاربران یا حسابهای جدید بسیار ساده کند. با دنبال کردن مراحل ذکر شده در این مقاله، میتوانید یک اسکریپت مؤثر ایجاد کنید که اطمینان حاصل کند کاربران ایجاد شده، به گروهها اضافه میشوند و رمزهای عبور امن ارائه میشوند، همگی در حین ثبت اقدامات برای اهداف شفافیت و ممیزی.
این آموزش توسط HNG امکان پذیر شده است.
می توانید کد bash را https://github.com/hollyphat/Hng11-Stage-1 پیدا کنید.