Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Freeradius_settings_resync() reverting users file to original

    Captive Portal
    2
    3
    732
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      Sh4ttel2
      last edited by

      when i try edit users file [/usr/pbi/freeradius-amd64/local/etc/raddb/users] by custom web page
      function freeradius_settings_resync reverting users file to original becuase original data store in this

      $config['installedpackages']['freeradius']['config']
      

      script read array

      
      require_once("config.inc");
      $array = $config['installedpackages']['freeradius']['config'];
      print_r(array_values($array));
      
      ?>
      

      Array store my original password

      users file before function start
      ![](http://i.imgur.com/2Na4uUs.png[img]<br /><br /><br />[b][u]Edit[/u][/b] result array store my original data [u]123456 is original password[u]<br />[img]http://i.imgur.com/hVEYQdR.png[/img]<br />then function freeradius_settings_resync start and reverting users file to original password :-<br /><br /><br />[b]users file after function freeradius_settings_resync() start [/b]<br />[img]http://i.imgur.com/6XUM1Uh.png[/img]<br /><br />how to edit data in this array before function sync start.<br />i think if edit this data success my users file must change follow this array.<br /><br />Thanks <br /><br />Steve.  :)[/u][/u][/img])

      1 Reply Last reply Reply Quote 0
      • D
        doktornotor Banned
        last edited by

        The image is totally unreadable, and your unknown "custom web page" apparently broken. Beyond that, with the amount of information available here, try a crystal ball.

        1 Reply Last reply Reply Quote 0
        • S
          Sh4ttel2
          last edited by

          change_password.php

          
          <form action="captiveportal-cmd.php" method="post" name="frm_data" class="login">
          
          Captivportal Change Password.
          
          **cmd.php**
          
          

          if(!isset($_POST['auth_user']) ||
          ($_POST['auth_user'])==null ||
          ($_POST['auth_pass'])==null||
          ($_POST['new_pass'])==null||
          ($_POST['conf_pass'])==null

          ){
          exit();
            }

          $user = $_POST['auth_user'];
          $old_pwd = $_POST['auth_pass'];
          $new_pwd = $_POST['new_pass'];
          $conf_pwd = $_POST['conf_pass'];

          echo '

          if($_POST['from']=="first_login"){
          echo shell_exec("sh captiveportal-first_login.sh '$user' '$old_pwd' '$new_pwd'");
          }
          else{
          echo shell_exec("sh captiveportal-password.sh '$user' '$old_pwd' '$new_pwd'");
          }
          echo '
            ';
          ?>

          
          **password.sh**
          

          #!/bin/bash

          base_users="/usr/pbi/freeradius-amd64/local/etc/raddb/users"
          username=$1
          next_changepassword=date -v +90d +%Y-%m-%d
          input=$1" "$2
          oldpassmd5=md5 -s $2 | awk -F ' ' '{print $4}'
          newpassmd5=md5 -s $3 | awk -F ' ' '{print $4}'
          #newpassword=$3
          result=$(grep -i '"'$1'" Cleartext-Password := "'$2'"' $base_users | awk -F '"' '{print $2" "$4}')
          size=${#result}

          #echo "Input : $input"

          if [ "$size" == "0" ]

          then

          echo ''

          else

          if [ "$result" == "$input" ]
                  then

          	## Check Old Password
          	check_allpwd=`cat /home/log/pwd.log | grep -w $1| wc -l | awk -F ' ' '{print $1}'`
          	first_oldpwd=`grep -w $1 /home/log/pwd.log | tail -1`
          	check_oldpwd=`cat /home/log/pwd.log | grep -w $1:$newpassmd5 | wc -l | awk -F ' ' '{print $1}'`
          
          	if [ "$check_oldpwd" != "0" ]
          
          		then
          
          		 echo ''
          		else
          
          	sed -i ''  s'/"'$1'" Cleartext-Password := "'$2'"/"'$1'" Cleartext-Password := "'$3'"/g' $base_users
          	echo $1:$newpassmd5 >> /home/log/pwd.log
          
          	grep -wiv $username /home/log/log_changepassword > /home/log/tmp ; mv /home/log/tmp /home/log/log_changepassword
          	echo $1:$next_changepassword >> /home/log/log_changepassword
          
          	#delete first_oldpwd
          
          		if [ "$check_allpwd" -lt 5 ]
          
          			then
          
          			sh captiveportal-av.sh > /dev/null
          
          			else
          
          			sed -i"$1" '1d' /home/log/pwd.log
          			rm /home/log/pwd.log$1
          
          			sh av.sh > /dev/null
          
          			fi
          
          	#echo `date` User [ $1 ] Change password from [ $2 ] ==\> [ $3 ] with no error. >> /home/log/success.log
          

          echo '
          ';
          fi

          else

          echo `date` User [ $1 ] Change password from [ $2 ] ==\> [ $3 ] with error. >> /home/log/error.log
          echo ''
          

          fi

          fi

          
          **av.sh **```
          #!/bin/sh
          
          	readStatus(){
          			x=$(cat /home/log/Status)
          }
          readStatus
          
          	while [ $x != "Ready" ]
          		do
          			sleep 2
          			readStatus
          		done
          
          		echo Busy > /home/log/Status
          		sh /usr/local/etc/rc.d/radiusd.sh restart > /dev/null
          		sleep 1.5
          
          	echo Ready > /home/log/Status		
          ```****</form>
          
          
          1 Reply Last reply Reply Quote 0
          • First post
            Last post
          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.