{"id":68052,"date":"2024-07-04T00:11:04","date_gmt":"2024-07-03T20:41:04","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/user-account-creation-using-bash-4en\/"},"modified":"2024-07-04T00:11:04","modified_gmt":"2024-07-03T20:41:04","slug":"user-account-creation-using-bash-4en","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/user-account-creation-using-bash-4en\/","title":{"rendered":"\u0627\u06cc\u062c\u0627\u062f \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 BASH"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang<br \/>\n            \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0645\u0647\u0646\u062f\u0633 SysOps\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0631\u0622\u0645\u062f \u062d\u0633\u0627\u0628\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u06af\u0631\u0648\u0647\u200c\u0647\u0627 \u0628\u0631\u0627\u06cc \u062d\u0641\u0638 \u0627\u0645\u0646\u06cc\u062a \u0633\u06cc\u0633\u062a\u0645 \u0648 \u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a.  \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0646\u062d\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a Bash \u0628\u0647 \u0646\u0627\u0645 create_users.sh \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f \u06a9\u0647 \u0648\u0631\u0648\u062f\u06cc \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0645\u062a\u0646\u06cc \u0631\u0627 \u0645\u06cc\u200c\u062e\u0648\u0627\u0646\u062f\u060c \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0648 \u06af\u0631\u0648\u0647\u200c\u0647\u0627 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc\u200c\u0647\u0627\u06cc \u062e\u0627\u0646\u06af\u06cc \u0631\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0631\u0645\u0632\u0647\u0627\u06cc \u0639\u0628\u0648\u0631 \u062a\u0635\u0627\u062f\u0641\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0631\u0627 \u062b\u0628\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0631\u0645\u0632\u0647\u0627\u06cc \u0639\u0628\u0648\u0631 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0627\u06cc\u0645\u0646 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>\u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627\u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0628\u0647 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u067e\u0631\u062f\u0627\u0632\u06cc\u0645\u060c \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0627\u0631\u06cc\u062f:<\/p>\n<p>\u06cc\u06a9 \u0633\u06cc\u0633\u062a\u0645 \u0644\u06cc\u0646\u0648\u06a9\u0633 (\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0627\u0648\u0628\u0648\u0646\u062a\u0648\u060c CentOS) \u0628\u0627 Bash \u0646\u0635\u0628 \u0634\u062f\u0647 \u0627\u0633\u062a.<br \/>\n\u062f\u0627\u0646\u0634 \u0627\u0648\u0644\u06cc\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc Bash.<br \/>\n\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a create_users.sh<\/p>\n<p>#!\/bin\/bash<br \/>\n# automating user account creation<\/p>\n<p># Input file (usernames and groups)<br \/>\ninput_file=&#8221;$1&#8243;<\/p>\n<p># Log file<br \/>\nlog_file=&#8221;\/var\/log\/user_management.log&#8221;<\/p>\n<p># Secure password storage file<br \/>\npassword_file=&#8221;\/var\/secure\/user_passwords.txt&#8221;<\/p>\n<p># create secure directory<\/p>\n<p>sudo mkdir -p \/var\/secure<\/p>\n<p># Function to generate a random password<br \/>\ngenerate_password() {<\/p>\n<p>    # using &#8216;openssl rand -base64 12\u2019 to generate a 12-character password<br \/>\n    openssl rand -base64 12<br \/>\n}<\/p>\n<p># Read input file line by line<br \/>\nwhile IFS=&#8217;;&#8217; read -r username groups; do<br \/>\n    # Create groups if they don&#8217;t exist<br \/>\n    for group in $(echo &#8220;$groups&#8221; | tr &#8216;,&#8217; &#8216; &#8216;); do<br \/>\n      groupadd &#8220;$group&#8221; 2&gt;\/dev\/null || echo &#8220;Group $group already exists&#8221;<br \/>\n    done<\/p>\n<p>    # Create user<br \/>\n    useradd -m &#8220;$username&#8221; -G &#8220;$groups&#8221; 2&gt;\/dev\/null || echo &#8220;User $username already exists&#8221;<\/p>\n<p>    # Set password<br \/>\n    password=$(generate_password)<br \/>\n    echo &#8220;$username:$password&#8221; | chpasswd<\/p>\n<p>    # Log actions<br \/>\n    echo &#8220;$(date &#8216;+%Y-%m-%d %H:%M:%S&#8217;) &#8211; Created user $username with groups: $groups&#8221; &gt;&gt; &#8220;$log_file&#8221;<\/p>\n<p>    # Store password securely<br \/>\n    echo &#8220;$username:$password&#8221; &gt;&gt; &#8220;$password_file&#8221;<br \/>\ndone &#8220;$input_file&#8221;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u062a\u0648\u0636\u06cc\u062d:<\/p>\n<p>\u0641\u0627\u06cc\u0644 \u0648\u0631\u0648\u062f\u06cc ($input_file): \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u0646\u062a\u0638\u0627\u0631 \u062f\u0627\u0631\u062f \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0648\u0631\u0648\u062f\u06cc \u062d\u0627\u0648\u06cc \u062e\u0637\u0648\u0637 \u0628\u0627 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0641\u0631\u0645\u062a \u0628\u0627\u0634\u062f.  \u06af\u0631\u0648\u0647 \u0647\u0627.  \u0647\u0631 \u06a9\u0627\u0631\u0628\u0631 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0686\u0646\u062f\u06cc\u0646 \u06af\u0631\u0648\u0647 (\u0628\u0627 \u06a9\u0627\u0645\u0627 \u062c\u062f\u0627 \u0634\u062f\u0647) \u062a\u0639\u0644\u0642 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.<br \/>\n\u0627\u06cc\u062c\u0627\u062f \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc: \u0628\u0631\u0627\u06cc \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u0645\u06a9\u0627\u0646 \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u062f\u0631 \u0628\u0627\u0644\u0627 \u0644\u0627\u0632\u0645 \u0627\u0633\u062a.  \u0627\u06af\u0631 \u0627\u06cc\u0646 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0646\u0628\u0627\u0634\u062f\u060c \u06a9\u062f \u0647\u0645\u0686\u0646\u0627\u0646 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0627\u0645\u0627 \u06af\u0630\u0631\u0648\u0627\u0698\u0647\u200c\u0647\u0627 \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u062b\u0628\u062a \u0646\u0645\u06cc\u200c\u0634\u0648\u0646\u062f.  \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0628\u0627\u06cc\u062f \u0628\u0627 \u0627\u0645\u062a\u06cc\u0627\u0632\u0627\u062a \u0628\u0627\u0644\u0627 \u0627\u0646\u062c\u0627\u0645 \u0634\u0648\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 sudo.<br \/>\n\u0627\u06cc\u062c\u0627\u062f \u06af\u0631\u0648\u0647:\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0641\u0627\u06cc\u0644 \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u0645\u06cc\u200c\u062e\u0648\u0627\u0646\u062f \u0648 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 groupadd \u06af\u0631\u0648\u0647\u200c\u0647\u0627\u06cc\u06cc (\u0627\u06af\u0631 \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u0646\u062f) \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.  \u06af\u0631\u0648\u0647 \u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f \u0648 \u067e\u06cc\u0627\u0645\u06cc \u062b\u0628\u062a \u0645\u06cc \u0634\u0648\u062f.<br \/>\n\u0627\u06cc\u062c\u0627\u062f \u06a9\u0627\u0631\u0628\u0631:\u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 useradd \u0628\u0627 \u06af\u0631\u0648\u0647 \u0647\u0627\u06cc \u0645\u0634\u062e\u0635 \u0634\u062f\u0647 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u0634\u0648\u0646\u062f.  \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0645\u0648\u062c\u0648\u062f \u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f \u0648 \u067e\u06cc\u0627\u0645\u06cc \u062b\u0628\u062a \u0645\u06cc \u0634\u0648\u062f.<br \/>\n\u062a\u0648\u0644\u06cc\u062f \u0631\u0645\u0632 \u0639\u0628\u0648\u0631:\u062a\u0627\u0628\u0639gene_password \u067e\u0633\u0648\u0631\u062f\u0647\u0627\u06cc \u062a\u0635\u0627\u062f\u0641\u06cc \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc \u06a9\u0646\u062f (\u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0646\u06cc\u062f).  \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 chpasswd \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u0634\u0648\u062f.<br \/>\n\u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645:\u0627\u0642\u062f\u0627\u0645\u0627\u062a (\u0627\u06cc\u062c\u0627\u062f \u06a9\u0627\u0631\u0628\u0631\u060c \u0627\u06cc\u062c\u0627\u062f \u06af\u0631\u0648\u0647) \u0628\u0627 \u0645\u064f\u0647\u0631 \u0632\u0645\u0627\u0646\u06cc \u062f\u0631 $log_file \u062b\u0628\u062a \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<br \/>\n\u0630\u062e\u06cc\u0631\u0647 \u0633\u0627\u0632\u06cc \u0627\u0645\u0646 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631:\u0646\u0627\u0645 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0628\u0647 \u0637\u0648\u0631 \u0627\u06cc\u0645\u0646 \u062f\u0631 $password_file \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f.<\/p>\n<p>&#8211; \u0627\u0633\u062a\u0641\u0627\u062f\u0647<\/p>\n<p>\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0631\u0627 \u0642\u0627\u0628\u0644 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f: chmod +x create_users.sh<br \/>\n\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0631\u0627 \u0628\u0627 \u0641\u0627\u06cc\u0644 \u0648\u0631\u0648\u062f\u06cc \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f: .\/create_users.sh input.txt<\/p>\n<p>\u0627\u06cc\u0646 \u06cc\u06a9 \u0648\u0638\u06cc\u0641\u0647 DevOps \u0645\u0631\u062d\u0644\u0647 1 \u062f\u0631 HNG \u0628\u0648\u062f.  \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0646\u0642\u0634\u200c\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u062f\u0631 HNG \u0631\u0627 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f<\/p>\n<p>\u06a9\u0644 \u0627\u06cc\u0646 \u06a9\u062f \u062f\u0631 https:\/\/github.com\/Uduakobong-Udombat\/user_account_automation_with_bash \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a<\/p>\n<div data-article-id=\"1910624\" id=\"article-body\">\n<p>\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0645\u0647\u0646\u062f\u0633 SysOps\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0631\u0622\u0645\u062f \u062d\u0633\u0627\u0628\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u06af\u0631\u0648\u0647\u200c\u0647\u0627 \u0628\u0631\u0627\u06cc \u062d\u0641\u0638 \u0627\u0645\u0646\u06cc\u062a \u0633\u06cc\u0633\u062a\u0645 \u0648 \u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a.  \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0646\u062d\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a Bash \u0628\u0647 \u0646\u0627\u0645 create_users.sh \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f \u06a9\u0647 \u0648\u0631\u0648\u062f\u06cc \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0645\u062a\u0646\u06cc \u0631\u0627 \u0645\u06cc\u200c\u062e\u0648\u0627\u0646\u062f\u060c \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0648 \u06af\u0631\u0648\u0647\u200c\u0647\u0627 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc\u200c\u0647\u0627\u06cc \u062e\u0627\u0646\u06af\u06cc \u0631\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0631\u0645\u0632\u0647\u0627\u06cc \u0639\u0628\u0648\u0631 \u062a\u0635\u0627\u062f\u0641\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0631\u0627 \u062b\u0628\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0631\u0645\u0632\u0647\u0627\u06cc \u0639\u0628\u0648\u0631 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0627\u06cc\u0645\u0646 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>\u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627<br \/>\u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0628\u0647 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u067e\u0631\u062f\u0627\u0632\u06cc\u0645\u060c \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0627\u0631\u06cc\u062f:<\/p>\n<ul>\n<li>\u06cc\u06a9 \u0633\u06cc\u0633\u062a\u0645 \u0644\u06cc\u0646\u0648\u06a9\u0633 (\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0627\u0648\u0628\u0648\u0646\u062a\u0648\u060c CentOS) \u0628\u0627 Bash \u0646\u0635\u0628 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/li>\n<li>\u062f\u0627\u0646\u0634 \u0627\u0648\u0644\u06cc\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc Bash.<\/li>\n<li>\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a create_users.sh\n<\/li>\n<\/ul>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"c\">#!\/bin\/bash<\/span>\n<span class=\"c\"># automating user account creation<\/span>\n\n<span class=\"c\"># Input file (usernames and groups)<\/span>\n<span class=\"nv\">input_file<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"<\/span><span class=\"nv\">$1<\/span><span class=\"s2\">\"<\/span>\n\n<span class=\"c\"># Log file<\/span>\n<span class=\"nv\">log_file<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"\/var\/log\/user_management.log\"<\/span>\n\n<span class=\"c\"># Secure password storage file<\/span>\n<span class=\"nv\">password_file<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"\/var\/secure\/user_passwords.txt\"<\/span>\n\n<span class=\"c\"># create secure directory<\/span>\n\n<span class=\"nb\">sudo mkdir<\/span> <span class=\"nt\">-p<\/span> \/var\/secure\n\n<span class=\"c\"># Function to generate a random password<\/span>\ngenerate_password<span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n\n    <span class=\"c\"># using 'openssl rand -base64 12\u2019 to generate a 12-character password<\/span>\n    openssl rand <span class=\"nt\">-base64<\/span> 12\n<span class=\"o\">}<\/span>\n\n<span class=\"c\"># Read input file line by line<\/span>\n<span class=\"k\">while <\/span><span class=\"nv\">IFS<\/span><span class=\"o\">=<\/span><span class=\"s1\">';'<\/span> <span class=\"nb\">read<\/span> <span class=\"nt\">-r<\/span> username <span class=\"nb\">groups<\/span><span class=\"p\">;<\/span> <span class=\"k\">do<\/span>\n    <span class=\"c\"># Create groups if they don't exist<\/span>\n    <span class=\"k\">for <\/span>group <span class=\"k\">in<\/span> <span class=\"si\">$(<\/span><span class=\"nb\">echo<\/span> <span class=\"s2\">\"<\/span><span class=\"nv\">$groups<\/span><span class=\"s2\">\"<\/span> | <span class=\"nb\">tr<\/span> <span class=\"s1\">','<\/span> <span class=\"s1\">' '<\/span><span class=\"si\">)<\/span><span class=\"p\">;<\/span> <span class=\"k\">do\n      <\/span>groupadd <span class=\"s2\">\"<\/span><span class=\"nv\">$group<\/span><span class=\"s2\">\"<\/span> 2&gt;\/dev\/null <span class=\"o\">||<\/span> <span class=\"nb\">echo<\/span> <span class=\"s2\">\"Group <\/span><span class=\"nv\">$group<\/span><span class=\"s2\"> already exists\"<\/span>\n    <span class=\"k\">done<\/span>\n\n    <span class=\"c\"># Create user<\/span>\n    useradd <span class=\"nt\">-m<\/span> <span class=\"s2\">\"<\/span><span class=\"nv\">$username<\/span><span class=\"s2\">\"<\/span> <span class=\"nt\">-G<\/span> <span class=\"s2\">\"<\/span><span class=\"nv\">$groups<\/span><span class=\"s2\">\"<\/span> 2&gt;\/dev\/null <span class=\"o\">||<\/span> <span class=\"nb\">echo<\/span> <span class=\"s2\">\"User <\/span><span class=\"nv\">$username<\/span><span class=\"s2\"> already exists\"<\/span>\n\n    <span class=\"c\"># Set password<\/span>\n    <span class=\"nv\">password<\/span><span class=\"o\">=<\/span><span class=\"si\">$(<\/span>generate_password<span class=\"si\">)<\/span>\n    <span class=\"nb\">echo<\/span> <span class=\"s2\">\"<\/span><span class=\"nv\">$username<\/span><span class=\"s2\">:<\/span><span class=\"nv\">$password<\/span><span class=\"s2\">\"<\/span> | chpasswd\n\n    <span class=\"c\"># Log actions<\/span>\n    <span class=\"nb\">echo<\/span> <span class=\"s2\">\"<\/span><span class=\"si\">$(<\/span><span class=\"nb\">date<\/span> <span class=\"s1\">'+%Y-%m-%d %H:%M:%S'<\/span><span class=\"si\">)<\/span><span class=\"s2\"> - Created user <\/span><span class=\"nv\">$username<\/span><span class=\"s2\"> with groups: <\/span><span class=\"nv\">$groups<\/span><span class=\"s2\">\"<\/span> <span class=\"o\">&gt;&gt;<\/span> <span class=\"s2\">\"<\/span><span class=\"nv\">$log_file<\/span><span class=\"s2\">\"<\/span>\n\n    <span class=\"c\"># Store password securely<\/span>\n    <span class=\"nb\">echo<\/span> <span class=\"s2\">\"<\/span><span class=\"nv\">$username<\/span><span class=\"s2\">:<\/span><span class=\"nv\">$password<\/span><span class=\"s2\">\"<\/span> <span class=\"o\">&gt;&gt;<\/span> <span class=\"s2\">\"<\/span><span class=\"nv\">$password_file<\/span><span class=\"s2\">\"<\/span>\n<span class=\"k\">done<\/span> \"<span class=\"nv\">$input_file<\/span><span class=\"s2\">\"<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3>\n<p>  \u062a\u0648\u0636\u06cc\u062d:<br \/>\n<\/h3>\n<ul>\n<li>\n<p><strong>\u0641\u0627\u06cc\u0644 \u0648\u0631\u0648\u062f\u06cc<\/strong> ($input_file): \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u0646\u062a\u0638\u0627\u0631 \u062f\u0627\u0631\u062f \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0648\u0631\u0648\u062f\u06cc \u062d\u0627\u0648\u06cc \u062e\u0637\u0648\u0637 \u0628\u0627 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0641\u0631\u0645\u062a \u0628\u0627\u0634\u062f.  \u06af\u0631\u0648\u0647 \u0647\u0627.  \u0647\u0631 \u06a9\u0627\u0631\u0628\u0631 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0686\u0646\u062f\u06cc\u0646 \u06af\u0631\u0648\u0647 (\u0628\u0627 \u06a9\u0627\u0645\u0627 \u062c\u062f\u0627 \u0634\u062f\u0647) \u062a\u0639\u0644\u0642 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.<\/p>\n<\/li>\n<li>\n<p><strong>\u0627\u06cc\u062c\u0627\u062f \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc<\/strong>: \u0628\u0631\u0627\u06cc \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u0645\u06a9\u0627\u0646 \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u062f\u0631 \u0628\u0627\u0644\u0627 \u0644\u0627\u0632\u0645 \u0627\u0633\u062a.  \u0627\u06af\u0631 \u0627\u06cc\u0646 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0646\u0628\u0627\u0634\u062f\u060c \u06a9\u062f \u0647\u0645\u0686\u0646\u0627\u0646 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0627\u0645\u0627 \u06af\u0630\u0631\u0648\u0627\u0698\u0647\u200c\u0647\u0627 \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u062b\u0628\u062a \u0646\u0645\u06cc\u200c\u0634\u0648\u0646\u062f.  \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0628\u0627\u06cc\u062f \u0628\u0627 \u0627\u0645\u062a\u06cc\u0627\u0632\u0627\u062a \u0628\u0627\u0644\u0627 \u0627\u0646\u062c\u0627\u0645 \u0634\u0648\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 sudo.<\/p>\n<\/li>\n<li>\n<p><strong>\u0627\u06cc\u062c\u0627\u062f \u06af\u0631\u0648\u0647:<\/strong><br \/>\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0641\u0627\u06cc\u0644 \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u0645\u06cc\u200c\u062e\u0648\u0627\u0646\u062f \u0648 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 groupadd \u06af\u0631\u0648\u0647\u200c\u0647\u0627\u06cc\u06cc (\u0627\u06af\u0631 \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u0646\u062f) \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.  \u06af\u0631\u0648\u0647 \u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f \u0648 \u067e\u06cc\u0627\u0645\u06cc \u062b\u0628\u062a \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<\/li>\n<li>\n<p><strong>\u0627\u06cc\u062c\u0627\u062f \u06a9\u0627\u0631\u0628\u0631:<\/strong><br \/>\u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 useradd \u0628\u0627 \u06af\u0631\u0648\u0647 \u0647\u0627\u06cc \u0645\u0634\u062e\u0635 \u0634\u062f\u0647 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u0634\u0648\u0646\u062f.  \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0645\u0648\u062c\u0648\u062f \u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f \u0648 \u067e\u06cc\u0627\u0645\u06cc \u062b\u0628\u062a \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<\/li>\n<li>\n<p><strong>\u062a\u0648\u0644\u06cc\u062f \u0631\u0645\u0632 \u0639\u0628\u0648\u0631:<\/strong><br \/>\u062a\u0627\u0628\u0639gene_password \u067e\u0633\u0648\u0631\u062f\u0647\u0627\u06cc \u062a\u0635\u0627\u062f\u0641\u06cc \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc \u06a9\u0646\u062f (\u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0646\u06cc\u062f).  \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 chpasswd \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<\/li>\n<li>\n<p><strong>\u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645:<\/strong><br \/>\u0627\u0642\u062f\u0627\u0645\u0627\u062a (\u0627\u06cc\u062c\u0627\u062f \u06a9\u0627\u0631\u0628\u0631\u060c \u0627\u06cc\u062c\u0627\u062f \u06af\u0631\u0648\u0647) \u0628\u0627 \u0645\u064f\u0647\u0631 \u0632\u0645\u0627\u0646\u06cc \u062f\u0631 $log_file \u062b\u0628\u062a \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/p>\n<\/li>\n<li>\n<p><strong>\u0630\u062e\u06cc\u0631\u0647 \u0633\u0627\u0632\u06cc \u0627\u0645\u0646 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631:<\/strong><br \/>\u0646\u0627\u0645 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0628\u0647 \u0637\u0648\u0631 \u0627\u06cc\u0645\u0646 \u062f\u0631 $password_file \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f.<\/p>\n<\/li>\n<\/ul>\n<p><strong>&#8211; \u0627\u0633\u062a\u0641\u0627\u062f\u0647<\/strong><\/p>\n<ul>\n<li>\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0631\u0627 \u0642\u0627\u0628\u0644 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f: chmod +x create_users.sh<\/li>\n<li>\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0631\u0627 \u0628\u0627 \u0641\u0627\u06cc\u0644 \u0648\u0631\u0648\u062f\u06cc \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f: .\/create_users.sh input.txt<\/li>\n<\/ul>\n<p>\u0627\u06cc\u0646 \u06cc\u06a9 \u0648\u0638\u06cc\u0641\u0647 DevOps \u0645\u0631\u062d\u0644\u0647 1 \u062f\u0631 HNG \u0628\u0648\u062f.  \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0646\u0642\u0634\u200c\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u062f\u0631 HNG \u0631\u0627 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f<\/p>\n<p>\u06a9\u0644 \u0627\u06cc\u0646 \u06a9\u062f \u062f\u0631 https:\/\/github.com\/Uduakobong-Udombat\/user_account_automation_with_bash \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0645\u0647\u0646\u062f\u0633 SysOps\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0631\u0622\u0645\u062f \u062d\u0633\u0627\u0628\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u06af\u0631\u0648\u0647\u200c\u0647\u0627 \u0628\u0631\u0627\u06cc \u062d\u0641\u0638 \u0627\u0645\u0646\u06cc\u062a \u0633\u06cc\u0633\u062a\u0645 \u0648 \u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0646\u062d\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a Bash \u0628\u0647 \u0646\u0627\u0645 create_users.sh \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f \u06a9\u0647 \u0648\u0631\u0648\u062f\u06cc \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0645\u062a\u0646\u06cc \u0631\u0627 \u0645\u06cc\u200c\u062e\u0648\u0627\u0646\u062f\u060c \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0648 \u06af\u0631\u0648\u0647\u200c\u0647\u0627 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":68053,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-68052","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/68052","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=68052"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/68052\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/68053"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=68052"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=68052"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=68052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}