2014年11月24日 星期一

製作SSH專用連線

首先新增使用者,我叫他ralink

root@anita:~# adduser ralink

然後以他身份自己創造ssh-key

2010年6月11日 星期五

Hero其實還挺好用的

因為之前刷ROM,所以這次並不能隨著HTC原廠無線放送時一起榮登android 2.1 的極樂巔峰,不過老實說,我並不是挺在意的,因為那樣我會失去很多Modaco添加進去的功能。

不過最後,我還是想想,算了,人都是會死的,就讓它投胎去吧~於是本來是用Modaco的oven烤出幾版ROM刷來看看,不過刷機很快就出現了不想要得結果->損失掉一切設定與通訊紀錄,雖然這不失為對付女朋友檢查手機的好方法,但我不需要啊@@ 因為沒有女朋友

現在改刷XDA釋出的版本,內有wifi tether。這玩意的神奇地方,就是把手機變成3G無線AP,就可以讓筆電的無線網路改走3G,不是透過usb的分享網路方式。

其實我現在比較欣賞的是它當會議錄音的時候,收音的角度,下巴翹的剛剛好 XD 只是事後要跟人分享要記得轉檔為MP3。

提醒一下,錄音的時候請設定電話轉接到辦公室,然後開飛安模式。

Technorati 的標籤: ,

HTC Hero 惡搞日記 補記1 CyanOgenMod

http://www.cyanogenmod.com/downloads/recovery-image

CyanOgenMod 1.4是很好得備份與刷機開始。

Win 7 自動登入

有時候明明筆電只是你一個人使用,這時候能方便盡量就會給自己方便,所以連都登入驗證都懶惰。

不過為了基本使用者帳號,還是建立一個管理員帳號,然後每次都用它登入。一樣按下執行快速鍵( Win + R )

control userpasswords2

然後,選好帳號後取消一些礙眼的設定,打一下密碼存放,嗯,完成。

Win7誤中WGA 沒關係 試試這帖

KB971033是不能安裝的更新檔,裝了會讓你體會到螢幕瞬間黑掉得感覺,微軟真是偉大啊。

首先到新增移除把這更新移掉,然後按下Win + R的執行快速鍵,打入下面指令

takeown /f “%windir%\System32\Wat\*”

重新開機後,再次叫出執行,打入下面指令

icacls “%windir%\System32\Wat\*” /deny *S-1-1-0

原文

2010年5月12日 星期三

100 days in a row ? easy~

image

連續登入100天,很容易啊

2010年4月27日 星期二

An OpenBox PipeMenu

#!/bin/sh
####################################################################
# Generate a set of expect files to these defined servers ,        #
# Generate a OPENBox menu concludes those expect files.            #
# Auther: IceKimo                                                  #
# Date  : Aprill 27 2010                                           #
####################################################################

主要就是先產生一堆通往各主機的expect檔(這樣連線時節省輸入帳號密碼的時間,但是當然會有洩密問題啦~)再藉由這些expect檔產生出選單,就這麼簡單~

#Envirement Settings
EFF=$HOME/bin/.conn2 # ExecFileFolder
[ -d $EFF ] || ( rm -rf $EFF ; mkdir $EFF )
[ -x /usr/bin/gnome-terminal ] && TERMINAL="/usr/bin/gnome-terminal -x" || TERMINAL="/usr/bin/xterm -e"

基礎重要設定只有存放expect檔案的位置與連線程式,連線種類其實還可以更多去包含kermit的語言,不過,等2012吧~

#       Functions to create every expect files connect to server.
#       SSH and Telnet are different expect template.
#       The expect files can be edited after Generated.
create_expect() {
file_exp="$EFF/$3@$2.exp"
        echo "#!/usr/bin/expect" > $file_exp
        echo "set tiomeout 30" >> $file_exp
  if [ X${1:0:3} = "Xssh" ] ; then
# Depend on the password field , empty this by SSH PubkeyAuthentication
        if [ -n "$4" ] ; then
cat << EndOfSSHExpect >> $file_exp
        spawn $1 -l $3 $2
        expect "*assword:" {send "$4\r"}
EndOfSSHExpect

因為SSH連線可以使用鑰匙認證而不需要密碼,因此可以密碼留空白,其實這整個程式裡面大量使用HERE Document的轉向技巧產生各個檔案

        else
cat << EndOfSSHExpect2 >> $file_exp
        spawn $1 -l $3 $2
EndOfSSHExpect2
        fi
  else
# The TELNET PROTOCOL
cat << EndOfExpect >> $file_exp
spawn $1 $2
expect "ogin:"
send "$3\r"
expect "assword:"
send "$4\r"
EndOfExpect
  fi

希望可以個別放一些特殊expect語法的話,比如說登入後修改啥環境變數之類,把檔名寫好在$5欄

  if [-n "$5" ] ; then
        cat $5 >> $file_exp

  fi
  echo "interact" >> $file_exp
  chmod 510 $file_exp
}
# Configure file was embeded in this Script, Now I change it
# To edit config on a .config file, keep your password secret
ConfigFile=$EFF/.config

原本我是把設定值直接就跟程式寫在一起,不過這樣似乎太快樂了,還是拆出來一個檔好了

if [ !–x $ConfigFile ] ; then
cat << EndOfConfig > $ConfigFile
# Field up like the follow sample ; seperate by :
# PROTCOL:REMOTE_HOST:REMOTE_USER_ID:PASSWORD:OPITIONAL_EXPECT_FILE
telnet:ptt.cc:guest::
EndOfConfig
fi

echo "Choose an editor program you like to use, default is vi : " && read editor
which $editor
[ $?=0 ] && editor=`which $editor` || editor=`which vi`
$editor $ConfigFile

grep -v ^# $ConfigFile > $ConfigFile.tmp

exec 6< $ConfigFile.tmp
  OIFS=$IFS ; IFS=":"
while read pro host id passwd extfile <&6
do
        create_expect $pro $host $id $passwd $extfile
done

上面的作為是製造出設定檔,然後更改系統分隔字元,把設定檔餵進while read組合的迴圈,就會自動一行一行塞去做出expect檔案。exec <6 與<&6是指使用FD 6來作為串接的檔案代碼(File Descriptor),效果就是,嗯簡單的講,在UNIX觀念裡,所有東西都是檔案,FD 0通常就是標準輸入(鍵盤),所以這樣看FD 6就有如找個鍵盤來敲這檔案裡的字進程式。


  IFS=$OIFS ; unset OIFS ; rm $ConfigFile.tmp
###########Create the pipe menu for openbox ###############
pipe_menu=$HOME/.config/openbox/conn2.sh
echo '#/bin/sh' > $pipe_menu
cat << EndOfPipeMenu >> $pipe_menu
gen_menu() {
        # Generate Menu Item for Openbox
  echo "<item label=\""\$1"\">"
  echo -n '<action name="Execute"><execute>'
  echo $TERMINAL $EFF/\$1.exp
  echo "</execute></action>"
  echo "</item>"
}

這邊整段就沒啥,就是把PIPEMENU(另一支其實可以獨立的ShellScript)整個包起來用HERE Document產生出來後,最後作個提示如何修改openbox設定檔

echo '<openbox_pipe_menu>'
echo '<separator label="CONN2" />'

  echo "</item>"
}

echo '<openbox_pipe_menu>'
echo '<separator label="CONN2" />'
hosts=\$( ls $EFF/*.exp )
    for host in \$hosts
        do
          host=\$( basename \$host )
          host=\${host%.exp}
          gen_menu \$host
#         echo "<separator />"
        done
echo '</openbox_pipe_menu>'
EndOfPipeMenu
chmod +x $pipe_menu
cat << POST
Insert a line in your OPENBOX Menu $HOME/.config/openbox/menu.xml as example

<menu id="sshmenu" label="TERMINAL CONN2" execute="$HOME/.config/openbox/con
n.sh" />

POST