把ssh-key加到遠端電腦
chenpc November 16th, 2009
ssh-copy-id -i .ssh/id_rsa.pub root@remotehost
chenpc November 16th, 2009
ssh-copy-id -i .ssh/id_rsa.pub root@remotehost
chenpc October 20th, 2009
常常阿,在上班,但是想打個BBS,上個plurk,開個msn聊聊天。但是卻擔心網管監控你的一舉一動。於是可以透過ssh tunnel來把自己的連線加密,這樣就不會被看光光啦。
範例1:
在公司,透過外面的電腦當proxy,連到外面。
這時候,瀏覽器和msn在socks 5 proxy設定的欄位填上localhost:8888 。
連出去的連驗就是加密,並且是穿過remot_ip的連線。
範例2:
在公司,透過外面的電腦連BBS。
telnet localhost 2323 就可以連到巴哈,而且是加密的。
也可用PCManx連localhost 2323也是一樣的意思。
範例3:
有時候假日,想要連回公司加個班。
但是公司是NAT,所以沒辦法這樣作。
可以運用TCP雙向傳輸的特性來辦到這件事。
這時候,只要跑到remote_ip的機器上面
ssh localhost -p 2222
就會跑到在NAT後面,公司的機器。
簡單說就是開後門啦!
chenpc May 19th, 2009
=====bashrc=======
if [[ $- != *i* ]] ; then
# Shell is non-interactive. Be done now!
return
fi
PATH=”/usr/pkg/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${ROOTPATH}”
LANG=en_US.UTF-8
PS1=’\[\033[01;34m\](\033[01;32m\]\h\[\033[01;00m\]:\033[01;34m\]\w)\[\033[01;32m\] \u%\[\033[00m\] ‘
INPUTRC=~/.inputrc
export PATH LANG PS1 INPUTRC
if [[ $OSTYPE == 'netbsd' ]];
then
alias ls=’gls –color’
fi
=====inputrc=======
set meta-flag on
set input-meta on
set convert-meta off
set output-meta on
“\e[1~”: beginning-of-line
“\e[4~”: end-of-line
“\e[5~”: beginning-of-history
“\e[6~”: end-of-history
“\e[3~”: delete-char
“\e[2~”: quoted-insert
“\e[5C”: forward-word
“\e[5D”: backward-word
chenpc May 13th, 2009
原理大致上是利用/dev/shm把portage放到記憶體裡面去。
而portage的特性是容量沒有很大,但是小檔案很多。
而小檔案在硬碟上面操作速度很慢,不管是sync或者是search。
我想要做的是寫一個boot up script,可以在開機的時候把portage tar開。
關機的時候把portage打包起來。
所以情況是
start: HD(portage.tar.gz)->RAM(/dev/shm/portage)
stop: RAM(/dev/shm/portage) -> HD(portage.tar.gz)
不管start or stop都不會讓硬碟作大量的小檔案存取。
作法:
mv /usr/portage /usr/portage.bak
mkdir /dev/shm/portage
ln -sf /dev/shm/portage /usr/portage
emerge --sync
這樣你的portage就在ram裡面了。
在/etc/conf.d/portage裡面,指定你要備份的目錄。
記得/usr/portage/distfiles 和packages 要移出來。
這部份可以在/etc/make.conf裡面用:
在make.conf指定,或是用link把他link進去。
http://dsppc16.cs.nctu.edu.tw/~chenpc/portage
這裡是一個run script,放到/etc/init.d下面。
執行
即可
程式已經有稍微防呆,只要portage裡面有檔案他就不會tar 開。
裡面要是沒有檔案,他也不會打包。
目前我還沒遇到問題,但是使用前最好還是確定自己有備份。
效能:
df -h顯示shm吃了大約500MB,但是top看到只加了130MB左右,不知道怎麼回事。
RAM很多的話,可以玩看看。
start的速度大概是5秒。stop的速度也差不多5秒。
而emerge search速度非常快。
我的機器是:E8400,4G RAM,WD6400AACS。
chenpc May 8th, 2009
簡介:libconfig是一個config file 的parser,非常小只有38k,適合用在容量受限制的系統。
用法:
gcc -lconfig
=程式範例=
#include <libconfig.h>
config_t conf;
const char *hostname;
config_init(&conf);
hostname=(char*)config_lookup_string(&conf,”host”);
=設定檔範例=
host=”10.1.0.1″;
chenpc April 3rd, 2009
首先,我們常常會遇到的問題是,當很多人一起用一台機器的時候,UNIX自己有一套管理使用者權限的辦法。但是在處理www的服務時,卻是公用一個www 的帳號來處理使用者的網頁目錄。比方說,使用useridr時,我的家目錄 “/home/chenpc/public_html” 必須是www可以讀取的。這樣www才有辦法讀到我的網頁。如果我要在我家目錄上架一個blog or forum,勢必有關於mysql密碼的設定檔。wordpress為例,wp-config.php裡面放著access資料庫的密碼。由於使用者沒辦 法把這個檔案設定成只有www可以read,所以他的權限必須是”other can read”。這樣一來,同樣在這台機器上的使用者可以用cat wp-config.php讀取你的密碼。這樣一來問題非常嚴重。另一個問題是,當你要使用上傳檔案功能的時候,必須有一個目錄是777,因為必須 讓”other can write”。所以suphp可以用來解決這個問題。
安裝和設定方法參考http://www.suphp.org/Home.html。
使用suphp之後,寫一個php內容為:
<?php
system("id")
?>這樣他會顯示出你的id,也就是說,他是依照檔案owner的權限去改變執行權限。也就是說,你自己的檔案會用你自己的權限去跑。wp- config.php可以使用700這種自己才讀得到得權限。當你機器很多人在使用的時候,可以考慮用這種方法才保護每個人的檔案安全性。
chenpc April 3rd, 2009
一般virtual host必須把設定方法寫在httpd.conf裡面,這種方法缺點就是一旦更新檔案,apache就必須手動reload。既然vhost類似rewrite,謂何不用rewrite rule去取代?
在vhost.conf裡面加上:
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/www/vhost/vhost.map
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1
vhost.map這個檔案格式如下:
“domainname” “document root”
chenpc.csie.in /home/chenpc/public_html
這樣只要更變vhost這格檔案,不需要重新啟動apache就可以作virtual host。甚至可以寫一個很簡單的php去access vhsot.map這個檔案就可以拿動態的更變virtual hsot。這樣可以讓每個使用者自己更變virtual host的名稱跟目錄,不用每次都麻煩管理者去處理。配合suphp使用,還可以加強使用者的安全性。
chenpc February 17th, 2009
echo “xkeymap.nokeycodeMap = true” >> ~/.vmware/config
chenpc December 13th, 2008
Set normal partition to RAID1
Boot into Live! CD
fdisk /dev/sdb ; partition sdb3 as partition type ‘fd’
mount /dev/sda3 /mnt/gentoo
mdadm -C /dev/md0 -l 1 -n 2 missing /dev/sdb3
mkdir /mnt/raid
mount /dev/md0 /mnt/raid
rsync -avH –progress /mnt/gentoo /mnt/raid
fdisk /dev/sda ; partition sda3 as partition type ‘fd’
madm /dev/md0 -a /dev/sda3
edit fstab /mnt/raid/etc/fstab to new root partition ‘/dev/md0′
reboot and set mdadm daemon as well.