{"id":68213,"date":"2024-07-05T08:49:11","date_gmt":"2024-07-05T05:19:11","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/creating-and-managing-users-and-groups-on-linux-with-bash-scripts-an-efficient-guide-2pog\/"},"modified":"2024-07-05T08:49:11","modified_gmt":"2024-07-05T05:19:11","slug":"creating-and-managing-users-and-groups-on-linux-with-bash-scripts-an-efficient-guide-2pog","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/creating-and-managing-users-and-groups-on-linux-with-bash-scripts-an-efficient-guide-2pog\/","title":{"rendered":"\u0627\u06cc\u062c\u0627\u062f \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0648 \u06af\u0631\u0648\u0647 \u0647\u0627 \u062f\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633 \u0628\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0647\u0627\u06cc Bash: \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06a9\u0627\u0631\u0622\u0645\u062f \ud83d\ude80\ud83d\udc27"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang<br \/>\n            \u0628\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0631\u0628\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633 \u062e\u0648\u0634 \u0622\u0645\u062f\u06cc\u062f!  \u062f\u0631 \u06cc\u06a9 \u0633\u0627\u0632\u0645\u0627\u0646 \u062f\u0631 \u062d\u0627\u0644 \u0631\u0634\u062f\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0633\u062a\u06cc \u062d\u0633\u0627\u0628 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u06af\u0631\u0648\u0647 \u0647\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0633\u0631\u0639\u062a \u062e\u0633\u062a\u0647 \u06a9\u0646\u0646\u062f\u0647 \u0648 \u0645\u0633\u062a\u0639\u062f \u062e\u0637\u0627 \u0634\u0648\u062f.  \u0628\u0631\u0627\u06cc \u0633\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0627\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f \u0648 \u062d\u0641\u0638 \u0627\u0645\u0646\u06cc\u062a \u0648 \u0628\u0647\u0631\u0647\u200c\u0648\u0631\u06cc\u060c \u0627\u062a\u0648\u0645\u0627\u0633\u06cc\u0648\u0646 \u06a9\u0644\u06cc\u062f\u06cc \u0627\u0633\u062a.  \ud83d\udee0\ufe0f\ud83d\udcaa<\/p>\n<p>\u0628\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a Bash\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u06a9\u0627\u0631\u0647\u0627\u06cc \u062a\u06a9\u0631\u0627\u0631\u06cc \u0627\u06cc\u062c\u0627\u062f \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0648 \u06af\u0631\u0648\u0647\u200c\u0647\u0627 \u0631\u0627 \u062e\u0648\u062f\u06a9\u0627\u0631 \u06a9\u0646\u06cc\u062f\u060c \u0627\u0632 \u062b\u0628\u0627\u062a \u0648 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u0648 \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u062f\u0631 \u0633\u0627\u0639\u0627\u062a \u0628\u06cc\u200c\u0634\u0645\u0627\u0631\u06cc \u0635\u0631\u0641\u0647\u200c\u062c\u0648\u06cc\u06cc \u06a9\u0646\u06cc\u062f \u0648 \u062e\u0637\u0631 \u062e\u0637\u0627 \u0631\u0627 \u06a9\u0627\u0647\u0634 \u062f\u0647\u06cc\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0645\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0646\u0634\u0627\u0646 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u06cc\u06a9 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0631\u0627\u06cc \u062e\u0648\u062f\u06a9\u0627\u0631\u0633\u0627\u0632\u06cc \u0641\u0631\u0622\u06cc\u0646\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0627\u0631\u0628\u0631 \u0648 \u06af\u0631\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f &#8211; \u06cc\u06a9 \u06a9\u0627\u0631 \u0631\u0627\u06cc\u062c \u0628\u0631\u0627\u06cc \u0647\u0631 \u0645\u0647\u0646\u062f\u0633 SysOps.  \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u0645 \u0648 \u06af\u0631\u062f\u0634 \u06a9\u0627\u0631 \u0634\u0645\u0627 \u0631\u0627 \u0633\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645!  \ud83c\udf1f<\/p>\n<p>  \u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627<\/p>\n<p>\u0644\u06cc\u0646\u0648\u06a9\u0633 \u06cc\u0627 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u062f\u0631 VM (\u062c\u0639\u0628\u0647 \u0645\u062c\u0627\u0632\u06cc)\u060c Docker\u060c AWS Ec2.<br \/>\n\u062f\u0627\u0646\u0634 \u0627\u0648\u0644\u06cc\u0647 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0644\u06cc\u0646\u0648\u06a9\u0633 \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc Bash.<br \/>\n\u0627\u0645\u062a\u06cc\u0627\u0632\u0627\u062a \u0631\u06cc\u0634\u0647 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a.<br \/>\n\u062f\u0631\u06a9 \u0627\u0648\u0644\u06cc\u0647 \u0627\u0632 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0646\u0648\u06cc\u0633\u06cc \u067e\u0648\u0633\u062a\u0647 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0631\u0628\u0631 \u062f\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633<\/p>\n<p>\u0645\u0631\u062d\u0644\u0647 1: \u0627\u06cc\u062c\u0627\u062f \u0641\u0627\u06cc\u0644 \u06a9\u0627\u0631\u0628\u0631\u06cc \u06cc\u06a9 \u0641\u0627\u06cc\u0644 txt. \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0634\u0645\u0627 \u0644\u06cc\u0633\u062a \u0634\u0648\u0646\u062f \u0648 \u06af\u0631\u0648\u0647 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0622\u0646\u0647\u0627 \u0627\u0636\u0627\u0641\u0647 \u0634\u0648\u0646\u062f.  \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0633\u0627\u062f\u0647 \u0648 \u0622\u0633\u0627\u0646 \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc \u0634\u0648\u062f.  \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0646\u0645\u0648\u0646\u0647 user.txt \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0627\u0633\u062a \u0648 \u0628\u0647 \u0635\u0648\u0631\u062a user;groups \u0642\u0627\u0644\u0628 \u0628\u0646\u062f\u06cc \u0645\u06cc \u0634\u0648\u062f<\/p>\n<p>\u0645\u062b\u0627\u0644<\/p>\n<p>Adeshile;sudo,dev,www-data<br \/>\nMayowa;sudo<br \/>\nKunle;dev,www-data<\/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>\u062e\u0637 \u0627\u0648\u0644 \u062f\u0631 \u0645\u062b\u0627\u0644 \u0628\u0627\u0644\u0627 Adeshile \u06a9\u0627\u0631\u0628\u0631 \u0648 \u06af\u0631\u0648\u0647 \u0647\u0627 \u0647\u0633\u062a\u0646\u062f sudo, dev, www-data.<\/p>\n<p>\u0645\u0631\u062d\u0644\u0647 2: \u0641\u0627\u06cc\u0644 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631 \u06a9\u062f \u062e\u0648\u062f \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f \u0648 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f create_users.sh\u060c \u0627\u06cc\u0646 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062e\u0648\u062f \u0628\u0627 \u0627\u062c\u0631\u0627\u06cc \u0632\u06cc\u0631 \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0631\u06cc\u0634\u0647 \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f:<\/p>\n<p>touch create_users.sh <\/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>\u0646\u06a9\u062a\u0647: \u0641\u0627\u06cc\u0644 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0645\u0646\u0637\u0642 \u06a9\u0627\u0631\u0628\u0631 \u0648 \u06af\u0631\u0648\u0647 \u0631\u0627 \u06a9\u0646\u062a\u0631\u0644 \u0645\u06cc \u06a9\u0646\u062f \u0645\u0631\u062d\u0644\u0647 1<\/p>\n<p>\u0645\u0631\u062d\u0644\u0647 3: \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a\u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u0627\u0645\u062a\u06cc\u0627\u0632 \u0645\u062f\u06cc\u0631\u06cc\u062a\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0627\u0648\u0644\u06cc\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0627\u0631\u0633\u0627\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a: <\/p>\n<p>\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0627 \u06cc\u06a9 \u062e\u0637 shebang \u0648 \u0628\u0631\u0631\u0633\u06cc \u0627\u0645\u062a\u06cc\u0627\u0632\u0627\u062a \u0631\u06cc\u0634\u0647 \u0634\u0631\u0648\u0639 \u0645\u06cc \u0634\u0648\u062f \u062a\u0627 \u0627\u0632 \u0645\u062c\u0648\u0632\u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0631\u0628\u0631 \u0648 \u06af\u0631\u0648\u0647 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u0634\u0648\u062f.<\/p>\n<p> if (( &#8220;$UID != 0&#8221; ))<br \/>\nthen<br \/>\n    echo &#8220;Error: script requires root privilege&#8221;<br \/>\nfi<br \/>\nexit 1<\/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>\u0634\u0628\u0627\u0646\u06af (#!\/bin\/bash): \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0627\u06cc\u062f \u062f\u0631 \u067e\u0648\u0633\u062a\u0647 Bash \u0627\u062c\u0631\u0627 \u0634\u0648\u062f.\u0627\u0645\u062a\u06cc\u0627\u0632\u0627\u062a \u0631\u06cc\u0634\u0647 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f: \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u062a\u0648\u0633\u0637 \u06a9\u0627\u0631\u0628\u0631 root \u0627\u062c\u0631\u0627 \u0634\u062f\u0647 \u0627\u0633\u062a.  \u0627\u06af\u0631 \u0646\u0647\u060c \u062e\u0637\u0627 \u0631\u0627 \u0686\u0627\u067e \u0645\u06cc \u06a9\u0646\u062f \u0648 \u062e\u0627\u0631\u062c \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0633\u067e\u0633\u060c \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0648\u062c\u0648\u062f \u0648 \u0646\u0648\u0639 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u062f (text\/plain) \u062d\u0627\u0648\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631<\/p>\n<p># Save all arguments in an array<br \/>\nARGS=(&#8220;$@&#8221;)<\/p>\n<p># Check whether no arguments are supplied<br \/>\nif [ &#8220;$#&#8221; -eq 0 ]; then<br \/>\n    echo &#8220;No arguments supplied&#8221;<br \/>\n    exit 1<br \/>\nfi<\/p>\n<p># Define a variable for the file<br \/>\nFILE=${ARGS[0]}<\/p>\n<p># Check if the file exists<br \/>\nif [ ! -f &#8220;$FILE&#8221; ]; then<br \/>\n    echo &#8220;Error: File $FILE does not exist.&#8221;<br \/>\n    exit 1<br \/>\nfi<\/p>\n<p># Get the MIME type and check if it is text\/plain<br \/>\nfile_type=$(file -b &#8211;mime-type &#8220;$FILE&#8221;)<br \/>\nif [[ &#8220;$file_type&#8221; != &#8220;text\/plain&#8221; ]]; then<br \/>\n    echo &#8220;Error: required file type is not text\/plain&#8221;<br \/>\n    exit 1<br \/>\nfi<\/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>\u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u0627\u0633\u062a\u062f\u0644\u0627\u0644: \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0647\u0627\u06cc \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0631\u0627 \u0636\u0628\u0637 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0648\u062c\u0648\u062f \u0622\u0646 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u062f.\u0628\u0631\u0631\u0633\u06cc \u0648\u062c\u0648\u062f \u0641\u0627\u06cc\u0644: \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0641\u0627\u06cc\u0644 \u0645\u0634\u062e\u0635 \u0634\u062f\u0647 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f.\u0628\u0631\u0631\u0633\u06cc \u0646\u0648\u0639 MIME: \u0645\u0637\u0645\u0626\u0646 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0641\u0627\u06cc\u0644 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0645\u062a\u0646\u06cc \u0633\u0627\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u062a\u0648\u0627\u0628\u0639 \u062b\u0628\u062a \u0648 \u0646\u0648\u0634\u062a\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627\u0645\u0646 \u0627\u0632 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u062f\u0631 \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0645 \u062a\u0627 \u0628\u0627 \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0646 \u062a\u0645\u0627\u0645 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u06a9\u0627\u0631\u0628\u0631\u060c \u0647\u0645\u0647 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u0645 \/var\/log\/user_management.log<\/p>\n<p># Logging and writing data<br \/>\nlog() {<br \/>\n    sudo printf &#8220;$*\\n&#8221; &gt;&gt; $log_path<br \/>\n}<\/p>\n<p># Function to save user data<br \/>\nuser_data() {<br \/>\n    sudo printf &#8220;$1,$2\\n&#8221; &gt;&gt; $3<br \/>\n}<\/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>\u0627\u06cc\u062c\u0627\u062f \u0631\u0645\u0632\u0647\u0627\u06cc \u0639\u0628\u0648\u0631 \u062a\u0635\u0627\u062f\u0641\u06ccgenpasswd  \u062a\u0627\u0628\u0639 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u062a\u0635\u0627\u062f\u0641\u06cc \u0627\u0645\u0646 \u0628\u0627 \u0637\u0648\u0644 \u0645\u0634\u062e\u0635 (\u067e\u06cc\u0634\u200c\u0641\u0631\u0636 16 \u06a9\u0627\u0631\u0627\u06a9\u062a\u0631) \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>genpasswd() {<br \/>\n    local l=$1<br \/>\n        [ &#8220;$l&#8221; == &#8220;&#8221; ] &amp;&amp; l=16<br \/>\n        tr -dc A-Za-z0-9_ <\/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>\u067e\u0631\u062f\u0627\u0632\u0634 \u0647\u0631 \u062e\u0637 \u062f\u0631 \u0641\u0627\u06cc\u0644 users.txt: \u0628\u0644\u0648\u06a9 \u06a9\u062f \u0632\u06cc\u0631 \u0647\u0631 \u062e\u0637 \u0631\u0627 \u0645\u06cc \u062e\u0648\u0627\u0646\u062f users.txt \u0641\u0627\u06cc\u0644 \u0648 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f username \u0648 user groups.<\/p>\n<p># Create user function<br \/>\ncreate_user() {<br \/>\n    username=&#8221;$1&#8243;<br \/>\n    password=$(genpasswd)<br \/>\n    if ! id -u &#8220;$username&#8221; &gt;\/dev\/null 2&gt;&amp;1; then<br \/>\n        sudo useradd -m -s \/bin\/bash $username<br \/>\n        echo &#8220;$username:$password&#8221; | sudo chpasswd<br \/>\n        msg=&#8221;User &#8216;$username&#8217; created with the password &#8216;$password'&#8221;<br \/>\n        echo $msg<br \/>\n        log $msg<br \/>\n        dir=\/home\/$username\/$user_pass<br \/>\n        create_file_directory $dir<br \/>\n        user_data $username $password $dir<br \/>\n        sudo chgrp $username $dir<br \/>\n        sudo chmod 640 $dir<br \/>\n    fi<br \/>\n}<\/p>\n<p># Create group function<br \/>\ncreate_group() {<br \/>\n    if ! getent group &#8220;$1&#8243; &gt;\/dev\/null; then<br \/>\n        sudo groupadd $1<br \/>\n        msg=&#8221;Group created &#8216;$1&#8242;&#8221;<br \/>\n        echo $msg<br \/>\n        log $msg<br \/>\n    fi<br \/>\n}<\/p>\n<p># Add user to group function<br \/>\nadd_user_to_group() {<br \/>\n    sudo usermod -aG $2 $1<br \/>\n    msg=&#8221;&#8216;$1&#8217; added to &#8216;$2&#8242;&#8221;<br \/>\n    echo $msg<br \/>\n    log $msg<br \/>\n}<\/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>\u0628\u0644\u0648\u06a9 \u06a9\u062f \u0628\u0627\u0644\u0627 \u0634\u0627\u0645\u0644 \u062a\u0648\u0627\u0628\u0639 \u0632\u06cc\u0631 \u0627\u0633\u062a: create_user Function: \u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631 \u0628\u0627 \u0641\u0647\u0631\u0633\u062a \u0627\u0635\u0644\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u062f.create_group Function: \u0627\u06af\u0631 \u06af\u0631\u0648\u0647\u06cc \u0627\u0632 \u0642\u0628\u0644 \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f\u060c \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f.add_user_to_group Function: \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u06af\u0631\u0648\u0647 \u0645\u0634\u062e\u0635 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u06a9\u0627\u0631\u0628\u0631 \u0648 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u0634\u0648\u062f \u0648 \u0633\u067e\u0633 \u062c\u0632\u0626\u06cc\u0627\u062a \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0633\u06cc\u0631 \u0632\u06cc\u0631 \u062f\u0631 \u0641\u0647\u0631\u0633\u062a \u06a9\u0627\u0631\u0628\u0631\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u0634\u0648\u062f: user home directory]\/var\/secure\/user_passwords.txt<\/p>\n<p>\u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0645\u06cc \u062e\u0648\u0627\u0646\u062f \u0648 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0648 \u06af\u0631\u0648\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0622\u0646 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p># Read the FILE<br \/>\nwhile IFS= read -r line || [ -n &#8220;$line&#8221; ]; do<br \/>\n    username=$(printf &#8220;%s&#8221; &#8220;$line&#8221; | cut -d &#8216;;&#8217; -f 1)<br \/>\n    echo &#8220;&#8212;&#8211; Process started for: &#8216;$username&#8217; &#8212;&#8211;&#8221;<br \/>\n    create_user $username<br \/>\n    usergroups=$(printf &#8220;%s&#8221; &#8220;$line&#8221; | cut -d &#8216;;&#8217; -f 2)<br \/>\n    for group in ${usergroups\/\/,\/ } ; do<br \/>\n        create_group $group<br \/>\n        add_user_to_group $username $group<br \/>\n    done<br \/>\n    echo &#8220;&#8212;&#8211; Process Done with &#8216;$username&#8217; &#8212;&#8211;&#8221;<br \/>\ndone <\/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>\u0645\u0631\u062d\u0644\u0647 4: \u0641\u0627\u06cc\u0644 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f<\/p>\n<p>\u0648\u0642\u062a \u0622\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u062e\u0648\u062f \u0631\u0627 \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u0645 \u06a9\u062f \u0645\u0627 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f .txt \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u062f\u0631 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062e\u0648\u062f \u0641\u0627\u06cc\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>bash create_users.sh users.txt<\/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>\u0646\u062a\u06cc\u062c\u0647 \u0632\u06cc\u0631 \u0628\u0627\u06cc\u062f \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0634\u0648\u062f:<\/p>\n<p>root@32cb601ed360:~# bash create_users.sh users.txt<br \/>\nFile and path created: \/var\/log\/user_management.log<br \/>\n&#8212;&#8211; Process started for: &#8216;Adeshile&#8217; &#8212;&#8211;<br \/>\n&#8216;Adeshile&#8217; added to &#8216;sudo&#8217;<br \/>\n&#8216;Adeshile&#8217; added to &#8216;dev&#8217;<br \/>\n&#8216;Adeshile&#8217; added to &#8216;www-data&#8217;<br \/>\n&#8212;&#8211; Process Done with &#8216;Adeshile&#8217; &#8212;&#8211;<br \/>\n&#8212;&#8211; Process started for: &#8216;Mayowa&#8217; &#8212;&#8211;<br \/>\n&#8216;Mayowa&#8217; added to &#8216;sudo&#8217;<br \/>\n&#8212;&#8211; Process Done with &#8216;Mayowa&#8217; &#8212;&#8211;<br \/>\n&#8212;&#8211; Process started for: &#8216;Kunle&#8217; &#8212;&#8211;<br \/>\n&#8216;Kunle&#8217; added to &#8216;dev&#8217;<br \/>\n&#8216;Kunle&#8217; added to &#8216;www-data&#8217;<br \/>\n&#8212;&#8211; Process Done with &#8216;Kunle&#8217; &#8212;&#8211;<\/p>\n<p>User &#8216;Adeshile&#8217; created with the password &#8216;mx8XszQDRbm1Rqp5&#8217;<br \/>\n&#8216;Adeshile&#8217; added to &#8216;sudo&#8217;<br \/>\n&#8216;Adeshile&#8217; added to &#8216;dev&#8217;<br \/>\n&#8216;Adeshile&#8217; added to &#8216;www-data&#8217;<br \/>\nUser &#8216;Mayowa&#8217; created with the password &#8216;ucBhqg4j0B69byEn&#8217;<br \/>\n&#8216;Mayowa&#8217; added to &#8216;sudo&#8217;<br \/>\nUser &#8216;Kunle&#8217; created with the password &#8216;YSM99v3iRQb6dFwh&#8217;<br \/>\n&#8216;Kunle&#8217; added to &#8216;dev&#8217;<br \/>\n&#8216;Kunle&#8217; added to &#8216;www-data&#8217;<br \/>\n&#8216;Adeshile&#8217; added to &#8216;sudo&#8217;<br \/>\n&#8216;Adeshile&#8217; added to &#8216;dev&#8217;<br \/>\n&#8216;Adeshile&#8217; added to &#8216;www-data<\/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>\u0628\u0631\u0627\u06cc \u062f\u06cc\u062f\u0646 \u0647\u0645\u0647 \u06af\u0631\u0648\u0647 \u0647\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<p>sudo cat \/etc\/group<\/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>\u0628\u0631\u0627\u06cc \u062f\u06cc\u062f\u0646 \u0647\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0648 \u06af\u0631\u0648\u0647 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0647 \u0622\u0646\u0647\u0627 \u062a\u0639\u0644\u0642 \u062f\u0627\u0631\u0646\u062f \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<p>sudo cat \/etc\/passwd <\/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>\u0627\u062c\u0631\u0627\u06cc \u06a9\u0627\u0645\u0644 \u06a9\u062f \u0645\u0646 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u062f\u0631 Github: Creating and Managing Users \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f<\/p>\n<p>\u06a9\u0627\u0631\u0622\u0645\u0648\u0632\u06cc HNG\u0628\u0631\u0627\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u06cc\u0634\u062a\u0631 \u062f\u0631 \u0645\u0648\u0631\u062f \u06a9\u0627\u0631\u0622\u0645\u0648\u0632\u06cc HNG\u060c \u0628\u0647[HNGInternship(https:\/\/hngtech\/internship)\u0645\u0631\u0627\u062c\u0639\u0647\u06a9\u0646\u06cc\u062f\u0648\u0627\u06af\u0631\u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f\u0641\u0631\u06cc\u0644\u0646\u0633\u0631\u0647\u0627\u0648\u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646\u06a9\u0644\u0627\u0633\u062c\u0647\u0627\u0646\u06cc\u0631\u0627\u0627\u0633\u062a\u062e\u062f\u0627\u0645\u06a9\u0646\u06cc\u062f\u060cHNGHire\u0631\u0627\u0628\u0631\u0631\u0633\u06cc\u06a9\u0646\u06cc\u062f[HNGInternship(https:\/\/hngtech\/internship)andifyouwanttohireworldclassfreelancersanddeveloperscheck:HNGHire<\/p>\n<p>\u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0645\u0637\u0627\u0644\u0639\u0647 \u06a9\u0631\u062f\u06cc\u062f \u0645\u062a\u0634\u06a9\u0631\u06cc\u0645\u060c \u0644\u0637\u0641\u0627\u064b \u062d\u062a\u0645\u0627\u064b \u0628\u0627\u0632\u062e\u0648\u0631\u062f \u0628\u06af\u0630\u0627\u0631\u06cc\u062f \u062a\u0627 \u062f\u0631 \u062e\u062f\u0645\u062a \u062e\u0648\u0627\u0646\u0646\u062f\u0647 \u0645\u0646 \u0628\u0627\u0634\u0645<\/p>\n<p>\u0646\u062a\u06cc\u062c\u0647\u0627\u06cc\u0646 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a Bash \u0641\u0631\u0622\u06cc\u0646\u062f \u0627\u06cc\u062c\u0627\u062f \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0648 \u06af\u0631\u0648\u0647\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0633\u06cc\u0633\u062a\u0645 \u0644\u06cc\u0646\u0648\u06a9\u0633 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u062d\u0641\u0638 \u062b\u0628\u0627\u062a \u0648 \u0627\u0645\u0646\u06cc\u062a \u062f\u0631 \u0633\u0631\u0627\u0633\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0634\u0645\u0627 \u0631\u0627 \u0622\u0633\u0627\u0646\u200c\u062a\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f.  \u0628\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0631\u062f\u0646 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062d\u0633\u0627\u0628\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u0639\u0636\u0648\u06cc\u062a\u200c\u0647\u0627\u06cc \u06af\u0631\u0648\u0647\u06cc \u0631\u0627 \u0628\u0627 \u062d\u062f\u0627\u0642\u0644 \u062a\u0644\u0627\u0634 \u062f\u0633\u062a\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f.<\/p>\n<div data-article-id=\"1912176\" id=\"article-body\">\n<p>\u0628\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0631\u0628\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633 \u062e\u0648\u0634 \u0622\u0645\u062f\u06cc\u062f!  \u062f\u0631 \u06cc\u06a9 \u0633\u0627\u0632\u0645\u0627\u0646 \u062f\u0631 \u062d\u0627\u0644 \u0631\u0634\u062f\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0633\u062a\u06cc \u062d\u0633\u0627\u0628 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u06af\u0631\u0648\u0647 \u0647\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0633\u0631\u0639\u062a \u062e\u0633\u062a\u0647 \u06a9\u0646\u0646\u062f\u0647 \u0648 \u0645\u0633\u062a\u0639\u062f \u062e\u0637\u0627 \u0634\u0648\u062f.  \u0628\u0631\u0627\u06cc \u0633\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0627\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f \u0648 \u062d\u0641\u0638 \u0627\u0645\u0646\u06cc\u062a \u0648 \u0628\u0647\u0631\u0647\u200c\u0648\u0631\u06cc\u060c \u0627\u062a\u0648\u0645\u0627\u0633\u06cc\u0648\u0646 \u06a9\u0644\u06cc\u062f\u06cc \u0627\u0633\u062a.  \ud83d\udee0\ufe0f\ud83d\udcaa<\/p>\n<p>\u0628\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a Bash\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u06a9\u0627\u0631\u0647\u0627\u06cc \u062a\u06a9\u0631\u0627\u0631\u06cc \u0627\u06cc\u062c\u0627\u062f \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0648 \u06af\u0631\u0648\u0647\u200c\u0647\u0627 \u0631\u0627 \u062e\u0648\u062f\u06a9\u0627\u0631 \u06a9\u0646\u06cc\u062f\u060c \u0627\u0632 \u062b\u0628\u0627\u062a \u0648 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u0648 \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u062f\u0631 \u0633\u0627\u0639\u0627\u062a \u0628\u06cc\u200c\u0634\u0645\u0627\u0631\u06cc \u0635\u0631\u0641\u0647\u200c\u062c\u0648\u06cc\u06cc \u06a9\u0646\u06cc\u062f \u0648 \u062e\u0637\u0631 \u062e\u0637\u0627 \u0631\u0627 \u06a9\u0627\u0647\u0634 \u062f\u0647\u06cc\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0645\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0646\u0634\u0627\u0646 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u06cc\u06a9 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0631\u0627\u06cc \u062e\u0648\u062f\u06a9\u0627\u0631\u0633\u0627\u0632\u06cc \u0641\u0631\u0622\u06cc\u0646\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0627\u0631\u0628\u0631 \u0648 \u06af\u0631\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f &#8211; \u06cc\u06a9 \u06a9\u0627\u0631 \u0631\u0627\u06cc\u062c \u0628\u0631\u0627\u06cc \u0647\u0631 \u0645\u0647\u0646\u062f\u0633 SysOps.  \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u0645 \u0648 \u06af\u0631\u062f\u0634 \u06a9\u0627\u0631 \u0634\u0645\u0627 \u0631\u0627 \u0633\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645!  \ud83c\udf1f<\/p>\n<h2>\n<p>  <strong>\u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627<\/strong><br \/>\n<\/h2>\n<ol>\n<li>\u0644\u06cc\u0646\u0648\u06a9\u0633 \u06cc\u0627 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u062f\u0631 VM (\u062c\u0639\u0628\u0647 \u0645\u062c\u0627\u0632\u06cc)\u060c Docker\u060c AWS Ec2.<\/li>\n<li>\u062f\u0627\u0646\u0634 \u0627\u0648\u0644\u06cc\u0647 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0644\u06cc\u0646\u0648\u06a9\u0633 \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc Bash.<\/li>\n<li>\u0627\u0645\u062a\u06cc\u0627\u0632\u0627\u062a \u0631\u06cc\u0634\u0647 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a.<\/li>\n<li>\u062f\u0631\u06a9 \u0627\u0648\u0644\u06cc\u0647 \u0627\u0632 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0646\u0648\u06cc\u0633\u06cc \u067e\u0648\u0633\u062a\u0647 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0631\u0628\u0631 \u062f\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633<\/li>\n<\/ol>\n<p><strong>\u0645\u0631\u062d\u0644\u0647 1: \u0627\u06cc\u062c\u0627\u062f \u0641\u0627\u06cc\u0644 \u06a9\u0627\u0631\u0628\u0631\u06cc<\/strong> <br \/>\u06cc\u06a9 \u0641\u0627\u06cc\u0644 txt. \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0634\u0645\u0627 \u0644\u06cc\u0633\u062a \u0634\u0648\u0646\u062f \u0648 \u06af\u0631\u0648\u0647 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0622\u0646\u0647\u0627 \u0627\u0636\u0627\u0641\u0647 \u0634\u0648\u0646\u062f.  \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0633\u0627\u062f\u0647 \u0648 \u0622\u0633\u0627\u0646 \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc \u0634\u0648\u062f.  \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0646\u0645\u0648\u0646\u0647 user.txt \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0627\u0633\u062a \u0648 \u0628\u0647 \u0635\u0648\u0631\u062a user;groups \u0642\u0627\u0644\u0628 \u0628\u0646\u062f\u06cc \u0645\u06cc \u0634\u0648\u062f<\/p>\n<p>\u0645\u062b\u0627\u0644<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>Adeshile;sudo,dev,www-data\nMayowa;sudo\nKunle;dev,www-data\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<p>\u062e\u0637 \u0627\u0648\u0644 \u062f\u0631 \u0645\u062b\u0627\u0644 \u0628\u0627\u0644\u0627 <code>Adeshile<\/code> \u06a9\u0627\u0631\u0628\u0631 \u0648 \u06af\u0631\u0648\u0647 \u0647\u0627 \u0647\u0633\u062a\u0646\u062f <code>sudo, dev, www-data<\/code>.<\/p>\n<p><strong>\u0645\u0631\u062d\u0644\u0647 2: \u0641\u0627\u06cc\u0644 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/strong> <br \/>\u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631 \u06a9\u062f \u062e\u0648\u062f \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f \u0648 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f <code>create_users.sh<\/code>\u060c \u0627\u06cc\u0646 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062e\u0648\u062f \u0628\u0627 \u0627\u062c\u0631\u0627\u06cc \u0632\u06cc\u0631 \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0631\u06cc\u0634\u0647 \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>touch create_users.sh \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<p><em>\u0646\u06a9\u062a\u0647: \u0641\u0627\u06cc\u0644 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0645\u0646\u0637\u0642 \u06a9\u0627\u0631\u0628\u0631 \u0648 \u06af\u0631\u0648\u0647 \u0631\u0627 \u06a9\u0646\u062a\u0631\u0644 \u0645\u06cc \u06a9\u0646\u062f<\/em> <strong>\u0645\u0631\u062d\u0644\u0647 1<\/strong><\/p>\n<p><strong>\u0645\u0631\u062d\u0644\u0647 3: \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a<\/strong><br \/>\u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u0627\u0645\u062a\u06cc\u0627\u0632 \u0645\u062f\u06cc\u0631\u06cc\u062a\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0627\u0648\u0644\u06cc\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0627\u0631\u0633\u0627\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a: <\/p>\n<ul>\n<li>\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0627 \u06cc\u06a9 \u062e\u0637 shebang \u0648 \u0628\u0631\u0631\u0633\u06cc \u0627\u0645\u062a\u06cc\u0627\u0632\u0627\u062a \u0631\u06cc\u0634\u0647 \u0634\u0631\u0648\u0639 \u0645\u06cc \u0634\u0648\u062f \u062a\u0627 \u0627\u0632 \u0645\u062c\u0648\u0632\u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0631\u0628\u0631 \u0648 \u06af\u0631\u0648\u0647 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u0634\u0648\u062f.\n<\/li>\n<\/ul>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code> if (( \"$UID != 0\" ))\nthen\n    echo \"Error: script requires root privilege\"\nfi\nexit 1\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<p><strong>\u0634\u0628\u0627\u0646\u06af (#!\/bin\/bash)<\/strong>: \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0627\u06cc\u062f \u062f\u0631 \u067e\u0648\u0633\u062a\u0647 Bash \u0627\u062c\u0631\u0627 \u0634\u0648\u062f.<br \/><strong>\u0627\u0645\u062a\u06cc\u0627\u0632\u0627\u062a \u0631\u06cc\u0634\u0647 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f<\/strong>: \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u062a\u0648\u0633\u0637 \u06a9\u0627\u0631\u0628\u0631 root \u0627\u062c\u0631\u0627 \u0634\u062f\u0647 \u0627\u0633\u062a.  \u0627\u06af\u0631 \u0646\u0647\u060c \u062e\u0637\u0627 \u0631\u0627 \u0686\u0627\u067e \u0645\u06cc \u06a9\u0646\u062f \u0648 \u062e\u0627\u0631\u062c \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0633\u067e\u0633\u060c \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0648\u062c\u0648\u062f \u0648 \u0646\u0648\u0639 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u062f <code>(text\/plain)<\/code> \u062d\u0627\u0648\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code># Save all arguments in an array\nARGS=(\"$@\")\n\n# Check whether no arguments are supplied\nif [ \"$#\" -eq 0 ]; then\n    echo \"No arguments supplied\"\n    exit 1\nfi\n\n# Define a variable for the file\nFILE=${ARGS[0]}\n\n# Check if the file exists\nif [ ! -f \"$FILE\" ]; then\n    echo \"Error: File $FILE does not exist.\"\n    exit 1\nfi\n\n# Get the MIME type and check if it is text\/plain\nfile_type=$(file -b --mime-type \"$FILE\")\nif [[ \"$file_type\" != \"text\/plain\" ]]; then\n    echo \"Error: required file type is not text\/plain\"\n    exit 1 \nfi\n\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<p><strong>\u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u0627\u0633\u062a\u062f\u0644\u0627\u0644<\/strong>: \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0647\u0627\u06cc \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0631\u0627 \u0636\u0628\u0637 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0648\u062c\u0648\u062f \u0622\u0646 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u062f.<br \/><strong>\u0628\u0631\u0631\u0633\u06cc \u0648\u062c\u0648\u062f \u0641\u0627\u06cc\u0644<\/strong>: \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0641\u0627\u06cc\u0644 \u0645\u0634\u062e\u0635 \u0634\u062f\u0647 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f.<br \/><strong>\u0628\u0631\u0631\u0633\u06cc \u0646\u0648\u0639 MIME<\/strong>: \u0645\u0637\u0645\u0626\u0646 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0641\u0627\u06cc\u0644 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0645\u062a\u0646\u06cc \u0633\u0627\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p><strong>\u062a\u0648\u0627\u0628\u0639 \u062b\u0628\u062a \u0648 \u0646\u0648\u0634\u062a\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627<\/strong><br \/>\u0645\u0646 \u0627\u0632 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u062f\u0631 \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0645 \u062a\u0627 \u0628\u0627 \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0646 \u062a\u0645\u0627\u0645 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u06a9\u0627\u0631\u0628\u0631\u060c \u0647\u0645\u0647 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u0645 <code>\/var\/log\/user_management.log<\/code><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code># Logging and writing data\nlog() {\n    sudo printf \"$*\\n\" &gt;&gt; $log_path\n}\n\n# Function to save user data\nuser_data() {\n    sudo printf \"$1,$2\\n\" &gt;&gt; $3\n}\n\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<p><strong>\u0627\u06cc\u062c\u0627\u062f \u0631\u0645\u0632\u0647\u0627\u06cc \u0639\u0628\u0648\u0631 \u062a\u0635\u0627\u062f\u0641\u06cc<\/strong><br \/><code>genpasswd<\/code>  \u062a\u0627\u0628\u0639 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u062a\u0635\u0627\u062f\u0641\u06cc \u0627\u0645\u0646 \u0628\u0627 \u0637\u0648\u0644 \u0645\u0634\u062e\u0635 (\u067e\u06cc\u0634\u200c\u0641\u0631\u0636 16 \u06a9\u0627\u0631\u0627\u06a9\u062a\u0631) \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>genpasswd() { \n    local l=$1\n        [ \"$l\" == \"\" ] &amp;&amp; l=16\n        tr -dc A-Za-z0-9_ <\/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<p><strong>\u067e\u0631\u062f\u0627\u0632\u0634 \u0647\u0631 \u062e\u0637 \u062f\u0631 \u0641\u0627\u06cc\u0644 users.txt:<\/strong> <br \/>\u0628\u0644\u0648\u06a9 \u06a9\u062f \u0632\u06cc\u0631 \u0647\u0631 \u062e\u0637 \u0631\u0627 \u0645\u06cc \u062e\u0648\u0627\u0646\u062f <code>users.txt<\/code> \u0641\u0627\u06cc\u0644 \u0648 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f <code>username<\/code> \u0648 <code>user groups<\/code>.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code># Create user function\ncreate_user() {\n    username=\"$1\"\n    password=$(genpasswd)\n    if ! id -u \"$username\" &gt;\/dev\/null 2&gt;&amp;1; then\n        sudo useradd -m -s \/bin\/bash $username\n        echo \"$username:$password\" | sudo chpasswd\n        msg=\"User '$username' created with the password '$password'\"\n        echo $msg\n        log $msg\n        dir=\/home\/$username\/$user_pass\n        create_file_directory $dir\n        user_data $username $password $dir\n        sudo chgrp $username $dir\n        sudo chmod 640 $dir\n    fi\n}\n\n# Create group function\ncreate_group() {\n    if ! getent group \"$1\" &gt;\/dev\/null; then\n        sudo groupadd $1\n        msg=\"Group created '$1'\"\n        echo $msg\n        log $msg\n    fi\n}\n\n# Add user to group function\nadd_user_to_group() {\n    sudo usermod -aG $2 $1\n    msg=\"'$1' added to '$2'\"\n    echo $msg\n    log $msg\n}\n\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<p>\u0628\u0644\u0648\u06a9 \u06a9\u062f \u0628\u0627\u0644\u0627 \u0634\u0627\u0645\u0644 \u062a\u0648\u0627\u0628\u0639 \u0632\u06cc\u0631 \u0627\u0633\u062a: <br \/><code>create_user Function<\/code>: \u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631 \u0628\u0627 \u0641\u0647\u0631\u0633\u062a \u0627\u0635\u0644\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u062f.<br \/><code>create_group Function<\/code>: \u0627\u06af\u0631 \u06af\u0631\u0648\u0647\u06cc \u0627\u0632 \u0642\u0628\u0644 \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f\u060c \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f.<br \/><code>add_user_to_group Function<\/code>: \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u06af\u0631\u0648\u0647 \u0645\u0634\u062e\u0635 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u06a9\u0627\u0631\u0628\u0631 \u0648 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u0634\u0648\u062f \u0648 \u0633\u067e\u0633 \u062c\u0632\u0626\u06cc\u0627\u062a \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0633\u06cc\u0631 \u0632\u06cc\u0631 \u062f\u0631 \u0641\u0647\u0631\u0633\u062a \u06a9\u0627\u0631\u0628\u0631\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u0634\u0648\u062f: <br \/><code>user home directory]\/var\/secure\/user_passwords.txt<\/code><\/p>\n<p>\u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0645\u06cc \u062e\u0648\u0627\u0646\u062f \u0648 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0648 \u06af\u0631\u0648\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0622\u0646 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code># Read the FILE\nwhile IFS= read -r line || [ -n \"$line\" ]; do\n    username=$(printf \"%s\" \"$line\" | cut -d ';' -f 1)\n    echo \"----- Process started for: '$username' -----\"\n    create_user $username\n    usergroups=$(printf \"%s\" \"$line\" | cut -d ';' -f 2)\n    for group in ${usergroups\/\/,\/ } ; do \n        create_group $group\n        add_user_to_group $username $group\n    done\n    echo \"----- Process Done with '$username' -----\"\ndone <\/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<p><strong>\u0645\u0631\u062d\u0644\u0647 4: \u0641\u0627\u06cc\u0644 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f<\/strong><\/p>\n<p>\u0648\u0642\u062a \u0622\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u062e\u0648\u062f \u0631\u0627 \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u0645 \u06a9\u062f \u0645\u0627 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f <code>.txt<\/code> \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u062f\u0631 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062e\u0648\u062f \u0641\u0627\u06cc\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>bash create_users.sh users.txt\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<p>\u0646\u062a\u06cc\u062c\u0647 \u0632\u06cc\u0631 \u0628\u0627\u06cc\u062f \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0634\u0648\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>root@32cb601ed360:~# bash create_users.sh users.txt\nFile and path created: \/var\/log\/user_management.log\n----- Process started for: 'Adeshile' -----\n'Adeshile' added to 'sudo'\n'Adeshile' added to 'dev'\n'Adeshile' added to 'www-data'\n----- Process Done with 'Adeshile' -----\n----- Process started for: 'Mayowa' -----\n'Mayowa' added to 'sudo'\n----- Process Done with 'Mayowa' -----\n----- Process started for: 'Kunle' -----\n'Kunle' added to 'dev'\n'Kunle' added to 'www-data'\n----- Process Done with 'Kunle' -----\n\nUser 'Adeshile' created with the password 'mx8XszQDRbm1Rqp5'\n'Adeshile' added to 'sudo'\n'Adeshile' added to 'dev'\n'Adeshile' added to 'www-data'\nUser 'Mayowa' created with the password 'ucBhqg4j0B69byEn'\n'Mayowa' added to 'sudo'\nUser 'Kunle' created with the password 'YSM99v3iRQb6dFwh'\n'Kunle' added to 'dev'\n'Kunle' added to 'www-data'\n'Adeshile' added to 'sudo'\n'Adeshile' added to 'dev'\n'Adeshile' added to 'www-data\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<p><strong>\u0628\u0631\u0627\u06cc \u062f\u06cc\u062f\u0646 \u0647\u0645\u0647 \u06af\u0631\u0648\u0647 \u0647\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/strong><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>sudo cat \/etc\/group\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<p><strong>\u0628\u0631\u0627\u06cc \u062f\u06cc\u062f\u0646 \u0647\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0648 \u06af\u0631\u0648\u0647 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0647 \u0622\u0646\u0647\u0627 \u062a\u0639\u0644\u0642 \u062f\u0627\u0631\u0646\u062f \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/strong><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>sudo cat \/etc\/passwd \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<p>\u0627\u062c\u0631\u0627\u06cc \u06a9\u0627\u0645\u0644 \u06a9\u062f \u0645\u0646 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u062f\u0631 Github: Creating and Managing Users \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f<\/p>\n<p><strong>\u06a9\u0627\u0631\u0622\u0645\u0648\u0632\u06cc HNG<\/strong><br \/>\u0628\u0631\u0627\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u06cc\u0634\u062a\u0631 \u062f\u0631 \u0645\u0648\u0631\u062f \u06a9\u0627\u0631\u0622\u0645\u0648\u0632\u06cc HNG\u060c \u0628\u0647[HNGInternship(https:\/\/hngtech\/internship)\u0645\u0631\u0627\u062c\u0639\u0647\u06a9\u0646\u06cc\u062f\u0648\u0627\u06af\u0631\u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f\u0641\u0631\u06cc\u0644\u0646\u0633\u0631\u0647\u0627\u0648\u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646\u06a9\u0644\u0627\u0633\u062c\u0647\u0627\u0646\u06cc\u0631\u0627\u0627\u0633\u062a\u062e\u062f\u0627\u0645\u06a9\u0646\u06cc\u062f\u060cHNGHire\u0631\u0627\u0628\u0631\u0631\u0633\u06cc\u06a9\u0646\u06cc\u062f[HNGInternship(https:\/\/hngtech\/internship)andifyouwanttohireworldclassfreelancersanddeveloperscheck:HNGHire<\/p>\n<p>\u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0645\u0637\u0627\u0644\u0639\u0647 \u06a9\u0631\u062f\u06cc\u062f \u0645\u062a\u0634\u06a9\u0631\u06cc\u0645\u060c \u0644\u0637\u0641\u0627\u064b \u062d\u062a\u0645\u0627\u064b \u0628\u0627\u0632\u062e\u0648\u0631\u062f \u0628\u06af\u0630\u0627\u0631\u06cc\u062f \u062a\u0627 \u062f\u0631 \u062e\u062f\u0645\u062a \u062e\u0648\u0627\u0646\u0646\u062f\u0647 \u0645\u0646 \u0628\u0627\u0634\u0645<\/p>\n<p><strong>\u0646\u062a\u06cc\u062c\u0647<\/strong><br \/>\u0627\u06cc\u0646 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a Bash \u0641\u0631\u0622\u06cc\u0646\u062f \u0627\u06cc\u062c\u0627\u062f \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0648 \u06af\u0631\u0648\u0647\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0633\u06cc\u0633\u062a\u0645 \u0644\u06cc\u0646\u0648\u06a9\u0633 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u062d\u0641\u0638 \u062b\u0628\u0627\u062a \u0648 \u0627\u0645\u0646\u06cc\u062a \u062f\u0631 \u0633\u0631\u0627\u0633\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0634\u0645\u0627 \u0631\u0627 \u0622\u0633\u0627\u0646\u200c\u062a\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f.  \u0628\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0631\u062f\u0646 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062d\u0633\u0627\u0628\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u0639\u0636\u0648\u06cc\u062a\u200c\u0647\u0627\u06cc \u06af\u0631\u0648\u0647\u06cc \u0631\u0627 \u0628\u0627 \u062d\u062f\u0627\u0642\u0644 \u062a\u0644\u0627\u0634 \u062f\u0633\u062a\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u0628\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0631\u0628\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633 \u062e\u0648\u0634 \u0622\u0645\u062f\u06cc\u062f! \u062f\u0631 \u06cc\u06a9 \u0633\u0627\u0632\u0645\u0627\u0646 \u062f\u0631 \u062d\u0627\u0644 \u0631\u0634\u062f\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0633\u062a\u06cc \u062d\u0633\u0627\u0628 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u06af\u0631\u0648\u0647 \u0647\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0633\u0631\u0639\u062a \u062e\u0633\u062a\u0647 \u06a9\u0646\u0646\u062f\u0647 \u0648 \u0645\u0633\u062a\u0639\u062f \u062e\u0637\u0627 \u0634\u0648\u062f. \u0628\u0631\u0627\u06cc \u0633\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0627\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f \u0648 \u062d\u0641\u0638 \u0627\u0645\u0646\u06cc\u062a \u0648 \u0628\u0647\u0631\u0647\u200c\u0648\u0631\u06cc\u060c \u0627\u062a\u0648\u0645\u0627\u0633\u06cc\u0648\u0646 \u06a9\u0644\u06cc\u062f\u06cc \u0627\u0633\u062a. \ud83d\udee0\ufe0f\ud83d\udcaa \u0628\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a Bash\u060c &hellip;<\/p>\n","protected":false},"author":2,"featured_media":68214,"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-68213","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\/68213","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=68213"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/68213\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/68214"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=68213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=68213"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=68213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}