ÔÚʹÓÃSybaseÊý¾Ý¿âµÄ¹ý³ÌÖУ¬ÎÒÃǾ³£»áÓöµ½SybaseÊý¾Ý¿âϵͳÉÏËøµÄÇé¿ö£¬¶ø¶àÊýÇé¿öÏ£¬Óû§±ØÐëͨ¹ý³¬¼¶Óû§Éí·ÝµÇ¼ϵͳ£¬ÒÔ´¦Àí¸Ã½ø³Ì¡£Í¨³£ÎªÁ˱£ÕÏSybaseÊý¾Ý¿âϵͳµÄ°²È«ÐÔ£¬³¬¼¶Óû§¿ÚÁîÍùÍùÕÆÎÕÔÚÊý¾Ý¿â¹ÜÀíÔ±µÄÊÖÖС£
µ±ÉÏÊöÇé¿ö·¢Éúʱ£¬Èç¹ûÊý¾Ý¿â¹ÜÀíÔ±²»ÔÚÏÖ³¡»òÎÞ·¨Í¨¹ýÆäËû·½Ê½½øÐд¦Àíʱ£¬¿ÚÍ·¸æÖªÃÜÂëËäÈ»¿ÉÒÔ½â¾öһʱµÄȼü֮¼±£¬µ«Êý¾Ý¿âϵͳµÄ°²È«ÎÞÒÉ»áÊܵ½ÑÏÖØµÄÍþв;¶øÖØÐÂÆô¶¯SybaseÊý¾Ý¿âϵͳҲÊÇÒ»ÖÖ½â¾öµÄ·½·¨£¬²»¹ýÕâÖÖ×÷·¨ºÜÓпÉÄÜÔì³ÉÊý¾Ý¿âÖÐÊý¾ÝµÄ¶ªÊ§£¬ÉõÖÁµ¼ÖÂÓû§Êý¾Ý¿âµÄ±ÀÀ££¬²»µ½Íò²»µÃÒÑ£¬Ç벻ҪʹÓô˷½·¨¡£
Èç¹ûÄܹ»¶ÔÓû§È¨ÏÞ¼ÓÒÔÉèÖã¬Ê¹ÆÕͨÓû§Ò²Äܹ»½øÐнø³ÌµÄ´¦Àí£¬¶øÓÖ²»ÓÃÖªÏþ SybaseÊý¾Ý¿âϵͳµÄ³¬¼¶Óû§ÃÜÂ룬ÎÞÒÉÊÇ´¦ÀíÉÏÊöÎÊÌâµÄ×î¼Ñ½â¾ö·½·¨¡£ÏÖÔÚ£¬±ÊÕ߾ͰÑÕë¶ÔÉÏÊöÇé¿öµÄÕû¸ö´¦Àí¹ý³ÌÏêϸ½éÉܸø´ó¼Ò£¬ÒÔ¹©²Î¿¼¡£µ±È»£¬Äú¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÐèÒªÉèÖÃÆÕͨÓû§ÃÜÂ룬Ҳ¿ÉÒÔÏÞÖÆ¸ü¶àµÄÄÚÈÝÀ´´¦ÀíÊý¾Ý¿âϵͳÖеĽø³Ì¡£¾ßÌåµÄ´¦Àí¹ý³ÌÈçÏÂÎÄËùʾ¡£
1£®Ê¹ÓÃCÓïÑÔ±àдһ¸ö³ÌÐòÈçÏ¡£
#include < stdlib.h>
#include < string.h>
#include < fcntl.h>
#include < time.h>
#include < sys/types.h>
char *passwd() /*ÆÕͨÓû§ÐèÒªµÄÃÜÂë: ¼òµ¥¼ÓÃܺó×Ö·û´®*/
{
struct tm *tp;
long secs;
char *buff;
buff=(char *)malloc(30);
secs=time((long *)0);
tp=localtime(&secs);
sprintf(buff,"%02d%02d%d",tp->tm_mon+1+9,tp->tm_mday+2,8);
return(buff);
}
main()
{
char str1[80],str2[80];
int i;
printf("passwd:");
system("stty -echo"); /* ²»ÏÔʾ*/
gets(str1);
system("stty echo");
for(i=3;i< 9;i++)str2[i-3]=str1[i]; /*½ØÈ¡ÊäÈë6¸ö×Ö·û*/
str2[6]='\0';
if (strcmp(str2,passwd() ) ){
printf("passwd error!\n");
exit(1);
}
setuid(0);
system("/sybase/atuo/sybase_kill");
printf("\n");
} |
È»ºó½øÐбàÒë¡£
#cc c.c -o kill-spid
2£®¶Ô²úÉúµÄÄ¿±êÎļþÉèÖÃÓû§µÄ¡°s¡±È¨ÏÞ¡£
#chmod u+s obj-name
3£®½«Ä¿±êÎļþ·ÅÖÃÔÚÖ´ÐÐÓû§µÄÈÎÒâĿ¼Ï£¬ÀýÈ磬tmpĿ¼¡£
4£®Ö´ÐÐÎļþ¡°sybase-kill¡±Ó¦¸Ã´æ·ÅÔÚ½ö¿ÉÒÔÔÊÐí·ÃÎʸÃÎļþµÄĿ¼Ï£¬²¢ÉèÖÃÆäȨÏÞ¡£ÀýÈ磬ֻÔÊÐíSybaseÓû§¿ÉÒÔ½øÐжÁд¡£
# mkdir /sybase/auto
#chmod 700 /sybase/atuo
#chmod g+t /sybase/atuo
#chown sybase:sybase /sybase/atuo
#cd /sybase/atuo |
5£®sybase-killÎļþÄÚÈÝ£¬¾ßÌåÈçÏ¡£
trap '' 1 2 3 9 15 #ÉèÖÃÆÁ±ÎÐźţ¬Ä¿µÄÊDz»ÔÊÐíÖжϲúÉú¡£
for pid in ` echo "set nocount on \n
select distinct blocked from master..sysprocesses
where blocked>0 \ngo"|isql -Uaaa -Paaaaaa -w200 -SFEBS|sed "1,2d" `
do
echo "Kill "$pid
isql -Usa -w200 -Sserv_name < < EOF
password123321
kill $pid
go
EOF
done
echo "ok" |
ÉÏÊöÄÚÈݻᴦÀíËùÓÐ×èÈûµÄ½ø³Ì£¬²»¹ÜÊÇ·ñ×îÖÕÊÇÓÉËüÒýÆðµÄ¡£µ±È»£¬ÄúÒ²¿ÉÒÔÕÒ³öÊÇËÒýÆðµÄ×èÈû£¬È»ºóÔÙ´¦Àí¸Ã½ø³Ì£¬½ö½öͨ¹ýÐÞ¸ÄÆä¡°sybase-kill¡±ÎļþÄÚÈݼ´¿ÉÍê³É¡£