linux下ssh普通用户后自动切换root

#!/bin/bash


i=`echo $1 | awk -F. '{print $3}'`

j=`echo $1 | awk -F. '{print $2}'`


case $j in

 18)

 cat > /tmp/qt.expect << EOF

#!/usr/bin/expect

set ip [lindex \$argv 0]

spawn ssh  taomee@\$ip

expect "*password:*" { send "pass_word\r" }

expect "*\$*" { send "su -\r" }

expect "*Password:*" { send "pass_word\r" }

expect "*#*" { send "clear\r" }

interact

EOF

 chmod +x /tmp/qt.expect

 /tmp/qt.expect $1

 rm -rf /tmp/qt.expect

 ;;

 168)

   case $i in

   20)

   cat > /tmp/tj.expect << EOF

#!/usr/bin/expect

set ip [lindex \$argv 0]

spawn ssh  taomee@\$ip

expect "*password:*" { send "pass_word\r" }

expect "*\$*" { send "su -\r" }

expect "*Password:*" { send "pass_word\r" }

expect "*#*" { send "clear\r" }

interact

EOF

   chmod +x /tmp/tj.expect

   /tmp/tj.expect $1

   rm -rf /tmp/tj.expect

   ;;

   *)

   echo "I don't kown its password"

   ;;

   esac

   ;;

 *)

 echo "I don't kown its password"

 ;;

esac


PS:shell加密方法,编译二进制~~~

   wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.6.tgz

# tar xzvf shc-3.8.6.tgz

# cd shc-3.8.6

# mkdir -p /usr/local/man/man1

这步是必须的,不然安装过程中会报错,shc将安装命令到/usr/local/bin/目录下;将帮助文档存放在/usr/local/man/man1/目录下,如果系统中无此目录,安装时会报错,可创建此目录后再执行安装:

# make install

这是要回答yes或者y,不能直接回车,否则会报错

使用方法:shc -f script-name

“-f”选项指定需要加密的程序,若要将shell程序script.s加密,执行:

# shc -f script.s

如果要查看执行过程中详细信息,可以添加选项“-v”。执行完成后将产生两个文件:“script.s.x.c”和“script.s.x”,命令shc首先通过shell程序生成其C语言的源代码“script.s.x.c”,然后对它进行编译生成加密后的可执行的二进制文件“script.s.x”,运行“script.s.x”可以看到此程序执行结果:

另shc还提供了一种设定有效执行期限的方法,可以首先使用shc将shell程序转化为二进制,并加上过期时间,如:

# shc -e 18/10/2006 -m " It’s too late to run this script " -f script.s

你可能感兴趣的:(linux,expect,spawn,interact)