zoukankan      html  css  js  c++  java
  • Linux 普通用户自动修改密码

         在大量服务器运维中,维护服务器账号就让人头痛,对账号密码策略要求,现写了一个shell脚本来完成账号密码的修改,当然这个不是最好的方法,只是在没有其它辅助服务时使用,最好还是使用账户统一管理服务来维护.

     1 #!/bin/bash
     2 #
     3 #change passwd
     4 #function passwd user
     5 function remote_spawn()
     6 {
     7 /usr/bin/expect << EOF
     8 set timeout 3
     9 spawn ssh  -o "StrictHostKeyChecking no" $USER_NAME@$IP "passwd"
    10 expect "*UNIX password:"
    11 send "$PATROL
    "
    12 set timout 10
    13 expect {
    14     "*$" {send "exit 1
    "}
    15     "New password:" {send "$PASSWD
    ";expect "Retype new password"; send "$PASSWD
    ";expect eof}
    16 }
    17 EOF
    18 }
    19 
    20 function local_spawn()
    21 {
    22 /usr/bin/expect << EOF
    23 set timeout 3
    24 spawn passwd
    25 expect "*UNIX password:"
    26 send "$PATROL
    "
    27 set timout 10
    28 expect {
    29     "*$" {send "exit 1
    "}
    30     "New password:" {send "$PASSWD
    ";expect "Retype new password"; send "$PASSWD
    ";expect eof}
    31 }
    32 EOF
    33 }
    34 
    35 PATROL="U2WNxrnxGsg="
    36 USER_NAME='dongjia'
    37 IP='127.0.0.1'
    38 SIZE=`cat /etc/pam.d/system-auth |grep -v ^[[:space:]]*# |grep -o remember=[0-9]* |grep -o -m1 [0-9]*`
    39 LEN=`expr $SIZE + 1`
    40 echo "remeber is $SIZE"
    41 #change patrol passwd 
    42 
    43 #system version 
    44 if [ `uname -r` == '3.10.0-123.el7.x86_64' ] 
    45 then
    46     echo "----------system version redhat server 7----------"
    47 else
    48     echo "----------system version no redhat server 7-------"
    49     exit 1
    50 fi
    51 
    52 if [ $LEN -eq 1 ];then
    53     LEN=`expr $LEN + 1` 
    54 fi
    55 #user passwd change count
    56 for i in $(seq 1 $LEN)
    57 do
    58     if [ $i -eq $LEN ]
    59     then
    60         echo "----------------------------------------------"
    61         echo "passwd restore acton"
    62         PASSWD="U2WNxrnxGsg="
    63         local_spawn > passwd.log
    64         grep "Authentication token manipulation error" passwd.log
    65                 SULT=$?
    66                 if [ $SULT -eq 0 ]
    67                 then
    68                         echo "passwd change error log"
    69                         exit 1
    70         fi
    71     else
    72         echo "----------------------------------------------"
    73         echo $i
    74         PASSWD=`openssl rand -base64 8`
    75         echo $PASSWD
    76         local_spawn > passwd.log
    77         grep "Authentication token manipulation error" passwd.log
    78         SULT=$?
    79         if [ $SULT -eq 0 ]
    80         then
    81             echo "passwd change error log"
    82             exit 1
    83         fi
    84     fi
    85     PATROL=$PASSWD
    86 done
  • 相关阅读:
    机器学习问题之屌丝的女神专属
    【读点paper】irgan
    回老园子
    【Linux】常用命令收集
    【Matlab】基本语法
    【Ubuntu】log
    【Java 学习笔记】 Hadoop学习笔记
    【Algorithm】 字符串算法
    【WordPress】小卡的土豆园开张
    【Log】Self-Check Log
  • 原文地址:https://www.cnblogs.com/mrice/p/10273829.html
Copyright © 2011-2022 走看看