إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

Bash Script : للتحكم باعدادات كلمات المرور لكل المستخدمين

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • [سكربت] Bash Script : للتحكم باعدادات كلمات المرور لكل المستخدمين

    بسم الله الرحمن الرحيم

    السلام عليكم ورحمة الله وبركاتة

    كنت كتبت من فترة عن فكرة سكريبت خاص بالتحكم في الباسورد الخاصة بالمستخدمين على انظمة اللينوكس ........... المزيد في هذا الموضوع على هذا الرابط



    المهم انا عملت السكريبت عايزكم تجربوة وتقولولي رأيكم لانة لحد ما يتحكم في كل شئ خاص بكلمات المرور للمستخدمين بالاضافة لل TUI (Text User Interface ) السهلة لة كلها عبارة عن قوائم Menus بالاضافة الى اظهار Summary لكل عملية ويمكنك عمل Filter للمستخدمين اللي تريد ان تطبق عليهم الاعدادات او على كل المستخدمين وارسال Email لل Administrator وعمل report في حال وجود اخطاء

    المهم السكريبت انا شايفة مهم جدا ويمكن استخدامة بسهولة جدا , المهم انا عايزكم تقولولي رايكم في السكريبت وياريت لو خبراء البرمجة يفيدوني باي ملاحظة بالنسبة للLogic اللي في الشل

    ودى صورة الMain Menu





    ودي الخاصة بال Summary بعد تحديد ال Arguments والمستخدمين



    ودلوقتي دة الكود

    كود:
    #Pwd_Policy.sh
    #Date :05-04-2008
    #Credits :StrangerInMoscow 
    
    
    #!/bin/bash
    
    
    clear ; sleep 1
    
      
    # Functions Area
    #Main Menu
    
            mmenu() {
            echo "|----------------  [ Main Menu  ]  ------------------|"
       	echo " "
            echo " [1] Display the Current Password Policy for the Users "
            echo " [2] Set the New Password Aging Settings "
            echo " [3] Save and Mail a Log to the System Administrator"
            echo " [4] Quit "
        	echo " "
       	echo "______________________________________________________ "
            echo "    Please Pick a Task From the Menu to Perform  "
        	echo "______________________________________________________ "
            
    	read SELECTION
    
    #Mmenu OPTs 
    
            case $SELECTION in 1)
                   clear &&  displayusers  ;;
                        	    2)         
            		  pwd_options ;;   
               		    3)
            		  mailadmin ;;
                         	    4 | q | Q )
            		 clear ; exit 0 ;;
    			    *) 
    			invalid_choice  ;;
    
            esac
    
            }
    
    #Define a Function to Display the Current Users on the Local system
    #Apply Password Settings to All Users
    
    		chage_pwd_all(){
    
    		for i in $(grep \\$ /etc/shadow | awk -F: '{ print $1 }'| sort)
    		do
    		chage -m $MIN_PWD -M $MAX_PWD -W $WARN_PWD $i
    
        		if [ $? != 0 ]
        		 then    
            	 echo " Operation Failed "
        		fi
    		done
    
    	}
    
    #Apply Password Settings Only to a Specific group of Users
    
    	chage_pwd_usr(){
    
    		chage -m $MIN_PWD -M $MAX_PWD -W $WARN_PWD $USRS
    
        			if [ $? != 0 ]
        			   then    
          			   echo " Operation Failed "
        			fi
     
    
    }
    
    
    
    		displayusers() {
    
    		echo "|------------------------[ Here Comes a List of Current Users on the System ]-----------------|" ; sleep 1 
    
    		for i in $(grep \\$ /etc/shadow | awk -F: '{ print $1 }'| sort)
    		do
    		echo "Current Password Settings for User $i "
    		echo " "
    		chage -l  $i
    		echo " "
    		done
    		echo " "
    		echo " "
    		echo "|--------------------------[ [M]ain Menu ]--[ [F]ilter ]--[ [Q]uit ]-------------------------|"
    
    
    		read  B2MMENU
    
        case $B2MMENU in 	M | m  )
            clear && mmenu ;;
        			f | F ) 
    	echo " " 
        	echo " Please Specify a User to Display his Info "
        	read USR_FLTR
        	clear ; 
        	chage -l $USR_FLTR ; 
        	echo " " 
    	echo  "Press Any Key to Kill the Current Process & Move to the Main Menu"
        	read ACTION
        		
    		case $ACTION in * )
        		clear
        		mmenu
        		esac ;;
    			        Q | q )
           		echo " Bye " ; exit 0 ;;
            			*)
              	invalid_choice ;;
    
        esac
    
    }
    
    
    #Define Function #2##
    #PWD Policy Settings To be Applied
    
    	pwd_options()    {
    	clear
    	echo "|-----------------------------[In This Section you will set your Password Settings]----------------------|"
        	echo " "
        	echo " [1] Set the Minimum , Maximum and Warning Days Arguments"
        	echo " [2] Back To The Main Menu "
    
    	read PWD_OPT
       
       	case $PWD_OPT in 1 )
            echo "Enter the minimum number of days between password changes" ; read MIN_PWD ; sleep 1
    	echo "Enter the maximum number of days between password changes" ; read MAX_PWD ;sleep 1
    	echo "Enter the number of days prior to the password expiring" ; read WARN_PWD ;sleep 1 
    	echo "Saving ...... ";echo  "saved"  ; sleep 2 ; clear 
    	echo " " 
    	echo "***********************************************************************************"
    	echo "!! WARNING !! You are going to Apply the Following Password Settings to Your Users " 
    	echo " "
    	echo "************************************ Summary **************************************"
    	echo " "
    	echo "	Minimum $MIN_PWD"
    	echo "	Maximum $MAX_PWD"
    	echo "	Warning $WARN_PWD" 
    	echo " " 
    	echo "***********************************************************************************"
    	echo " " 
    	echo "Now Tell Me What you want to do Next" 
    	echo " " 
    	echo "[A] Press [A] if You want to Apply the New Settings to All users       "
            echo "[B] Press [B] if You want to Apply the New Settings Only to Specific Users"
    	echo "[C] Press [C] To cancel the Operation"
    	read CNFRM
    		case $CNFRM in a | A )
    			echo " Please Hold On While Applying the Password Policy to All Users  " ; sleep 1
                  		chage_pwd_all    
    	       		clear ; mmenu  ;;	
    				b | B )
    	 echo "Please Specify the Users You want to Apply the New Settings To" 
    	 read USRS
       	 	chage_pwd_usr 
    	 echo " "  
    	 echo "The Password Settings For the User $USRS Has been Updated "
             echo " "
    	 	chage -l $USRS  ;; 
    				 * )
    	  	invalid_choice ;;
    
    		esac ;;
    	    
    			        2)     clear ; mmenu  ;;
    				*)
    				invalid_choice ;;
    
    	
     	esac
    
    }   
    	
    	mailadmin()
    			{
    	echo " Sending Email To the System Admin .... Please Wait " ;sleep 3 
    	echo "`date +%F` : The Password Policy for One or More user has been Modified " | mail -s "Password Policy script has been executed " root 2 >> /var/log/pwd_chage.errors.log 
    	if [ $? !=  0 ]
    	then 	
    	echo "Operation Failed .... Error Logs have been saved " 
    	sleep 3 ; mmenu 
    	else 
    	echo "Email with Logs has been Sent to the system Administrator" 
    	sleep 3 ; clear ; mmenu ;
    	fi
    			}
    
    	invalid_choice() {
    	echo " Please Enter a Valid Value " ; sleep 1 
    		echo " " 
    		echo " Redirecting to the Main Menu " 	;sleep 3 ; clear ;  mmenu 
    	
    			}
    
    #Calling the  Main Menu Function
    
    mmenu
    
    #END

    لتحميل ال Script من هنا

    كود:
    http://www.4shared.com/file/43129154/53140336/pwd_policy.html

  • #2
    شيء جميل ورائع

    تعليق


    • #3
      الله يعطيك العافية أخي الكريم ...
      ما شاء الله السكربت واضح إنك تعبت فيه ... سيتم التجربة إن شاء الله ...
      نريد المزيد والمزيد ﻻ تبخل علينا بإبداعاتك يا طيب
      إِنَّمَـا الأُمَـمُ الأَخْـلاقُ مَا بَقِيَـتْ ... فَـإِنْ هُمُ ذَهَبَـتْ أَخْـلاقُهُمْ ذَهَبُـوا

      إذا المرء لا يرعاك إلا تكلفاً ... فدعه ولا تكثر عليه التأسفا
      ففي الناس أبدال وفي الترك راحة ... وفي القلب صبر للحبيب ولو جفا
      فما كل من تهواه يهواك قلبه ... ولا كل من صافيته لك قد صفا
      إذا لم يكن صفو الوداد طبيعة ... فلا خير في خل يجيء تكلفا
      ولا خير في خل يخون خليله ... ويلقاه من بعد المودة بالجفا
      وينكر عيشاً قد تقادم عهده ... ويظهر سراً كان بالأمس في خفا

      [ مواقع مفيدة: أروع موقع القرآن الكريم |مدونتي |Twitter |نظام طارق ]

      تعليق


      • #4
        alsadi

        مشكور اخي مؤيد على ردك الجميل المشجع واحنا تلامذتك

        B!n@ry
        شكرا ليك اخي B!n@ry على مرورك الطيب وردك اسعدني فعلا وان شاء الله اطور السكريبت اكثر من كدة لانة فعلا يمكن استخدامة في اي بيئة عمل ويوفر وقت كبير جدا جدا على اي Administrator

        ولو لديكم اي اقتراحات او تعليقات اساتذتي اكون شاكر لو تخبروني بها

        StrangerInMoscow

        تعليق


        • #5
          ان شاء الله نري المزيد منـك معنـا اخي ,
          والي المزيد من الابداع

          تعليق


          • #6
            مشكور اخي Mutati0N على مرورك وربنا يقدرنا ونوصل حتى لنسبة بسيطة من مجهوداتكم في المجتمع

            تعليق


            • #7
              تسلم ايديك ياريس ما شاء الله هحمل الاسكربت واجربه دلوقتى
              SЄČURiTY TЄΛM
              MyBlog

              تعليق


              • #8
                ما شاء الله سكربت جميل
                بإذن الله لى رجعه بعد التحميل و التجربة

                تعليق


                • #9
                  هذه أول ملاحظاتى على الأسكربت بعد تجربة سريعة
                  عند ادخال الإختيار ماذا لو كان الإختيار لا يوجد فى القائمة أو لم يختار أى شىء فمثلا عند الإختيار لا بد من أن يتأكد من صحته
                  و أيضا إن لم يكن المستخدم root فسيعطى

                  كود:
                  grep: /etc/shadow: Permission denied
                  فلا بد من التأكد من أنه root و بإذن الله سوف آتى مرة أخرى بعد تجربة دقيقة
                  شكراً لك

                  تعليق


                  • #10
                    ĐΓ.ĐΣΓMλNN مشكور لمرورك اخي الحبيب ومنتظر ملاحظاتك

                    abom اولا احب اشكرك على ملاحظاتك وبالرغم من اني كان يمكنني بمنتهى البساطة اضافة Condition لل Root user ولكن المنطق بيقول ان دة سكريبت لن يشغل الا بواسطة الadmin في الغالب لان انت فاهم ان ال users password دي Mission Critical مش اي حد لية صلاحيات تغيرها

                    النقطة التانية الخاصة في حالة الخيار الخاطي هتلاحظ اني مستخدم مع case الخيار *) بس انا مسحتة بالخطأ من القائمة الرئيسية لانها كان فيها عناصر اكتر من كدة بس انا مسحت بعضهم لتنزيلهم مع النسخة الجديدة من السكريبت لاني كنت مستعجل على رفعة النهاردة

                    على العموم انا منتظر باقي ملاحظاتك وعايزك تقولي كمان لو فية اي جزئيات كنت ممكن اخلي اوامرها ااقل لاني انا جديد في حوار الshell

                    تعليق


                    • #11
                      تم اضافة Function اسمها invalid_choice تظهر رسالة خطا وتعمل redirection لل main menu وذلك لان احد اهدافي من السكريبت تصغير عدد اوامرة بدون التاثير على عملة

                      منتظر باقي الملاحظات

                      تعليق


                      • #12
                        سلام عليكم ..

                        صباح الخييير ..

                        شي جميل ومرتب .. وواضح ان شغلك تمام .. لي عوده بعد التجربه

                        اشكرك بعنف ( StrangerInMoscow ) .. اشوفك فى سكربتات اخرى
                        =========

                        bad3r
                        :argeeleh:
                        Twitter
                        : @Linux4SA

                        تعليق


                        • #13
                          مشكور اخي بدر وارجو ان شاء الله السكريبت يعجبك وان شاء الله لو فية وقت اطورة اكثر خصوصا الجزئية الخاصة بعمل الLogs وارسال email لل Admin

                          في رعاية الله

                          تعليق


                          • #14
                            تمام يا باشا
                            Linux is a great system 4 only great user

                            تعليق

                            يعمل...
                            X
                            😀
                            🥰
                            🤢
                            😎
                            😡
                            👍
                            👎