initial commit
This commit is contained in:
78
linuxinstall/shell/execCmdBySu.sh
Normal file
78
linuxinstall/shell/execCmdBySu.sh
Normal file
@@ -0,0 +1,78 @@
|
||||
#!/usr/bin/expect
|
||||
|
||||
if {$argc!=4&&$argc!=3} {
|
||||
send_user "usage: execCmdBySu.sh resultFlag command name \[password\]\n"
|
||||
exit 1
|
||||
}
|
||||
# 0<><30>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>ȡ<EEB2A2>ý<EFBFBD><C3BD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>ִ<EFBFBD><D6B4>&<26><>̨<EFBFBD><CCA8><EFBFBD><EFBFBD>
|
||||
set resultFlag [lindex $argv 0]
|
||||
set cmd [lindex $argv 1]
|
||||
set user [lindex $argv 2]
|
||||
set pass [lindex $argv 3]
|
||||
|
||||
set timeout 30
|
||||
set flag 0
|
||||
|
||||
#<23>رտ<D8B1><D5BF><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||
log_user 0
|
||||
|
||||
spawn whoami
|
||||
expect "root" {set flag 1}
|
||||
|
||||
# <20><>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>${cmd}<7D><><EFBFBD><D7B7>"echo $?",Ϊ<><CEAA>ȡcmd<6D><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ʵ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||
if {$resultFlag==0} {
|
||||
spawn su - -c "${cmd};echo $?" ${user}
|
||||
|
||||
#<23><>ǰ<EFBFBD><C7B0>¼<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>root<6F><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if {$flag==0} {
|
||||
expect {
|
||||
"<22><><EFBFBD><EFBFBD>*" {send ${pass}\r}
|
||||
"password*" {send ${pass}\r}
|
||||
default {
|
||||
send_error "error\n"
|
||||
exit 2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#<23><EFBFBD><F2BFAABF><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||
log_user 1
|
||||
|
||||
expect {
|
||||
"* <20><><EFBFBD>벻<EFBFBD><EBB2BB>ȷ*" {exit 1}
|
||||
#----<2D>˴<EFBFBD><CBB4><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ܶ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
eof {exit 0}
|
||||
}
|
||||
|
||||
} else {
|
||||
spawn su - -c "${cmd}" ${user}
|
||||
|
||||
#<23><>ǰ<EFBFBD><C7B0>¼<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>root<6F><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if {$flag==0} {
|
||||
expect {
|
||||
"<22><><EFBFBD><EFBFBD>*" {send ${pass}\r}
|
||||
"password*" {send ${pass}\r}
|
||||
default {
|
||||
send_error "error\n"
|
||||
exit 2
|
||||
}
|
||||
}
|
||||
}
|
||||
expect {
|
||||
"* <20><><EFBFBD>벻<EFBFBD><EBB2BB>ȷ*" {exit 1}
|
||||
#----Ϊ<><CEAA>&<26><>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
eof {
|
||||
send_user "ok\n"
|
||||
exit 0
|
||||
}
|
||||
}
|
||||
}
|
||||
interact
|
||||
exit 0
|
||||
|
||||
|
||||
#overlay chess
|
||||
#overlay program args
|
||||
#disconnect
|
||||
#close -onexec 0 -i ${spawn_id}
|
||||
#remove_nulls 1
|
||||
Reference in New Issue
Block a user