2010年1月7日 星期四

自動登入tty

#!/bin/sh
if [ $# -lt 2 ] ; then
        echo "Usage $0 tty[1~6] Username" && exit 1

# 用兩個參數表示要在哪個tty用哪個帳號登入
fi
echo "#!/bin/sh\n/bin/login -f $2" > /usr/local/sbin/autologin_$2

# 先寫一支script負責該帳號登入,主要利用login –f 參數
chmod 755 /usr/local/sbin/autologin_$2
sed -i -e 's/exec/#\t exec/g' /etc/event.d/$1

# 把舊的ttyX設定裡執行槓掉
echo "exec /sbin/getty -n -l /usr/local/sbin/autologin_$2 38400 $2" >> /etc/event.d/$1

# 將新的登入方式放進去最後一行
cat  /etc/event.d/$1

# show一下設定檔有沒有錯,

2010年1月5日 星期二

UNR Ubuntu Netbook Remix

Ubuntu Netbook Remix (UNR) 是一個特化的”官方”版本

可以看得出來操作桌面介面經過設計。安裝方法除了直接下載UNR版本,或是製作UNR的開機USB碟之外,還可以從8.04之後正式版本直接升級。這裡就摘錄如何從8.04”升級”。

將下面兩行加入source.list

deb http://ppa.launchpad.net/netbook-remix-team/ppa/ubuntu hardy main 
deb-src http://ppa.launchpad.net/netbook-remix-team/ppa/ubuntu hardy main 


然後把gpg key加入

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key

$key可以從PPA的網頁上找到,現在是B796B6FE

然後更新後安裝套件

apt-get install desktop-switcher go-home-applet human-netbook-theme maximus ume-launcher window-picker-applet metacity



好,裝完了。

參考資料: https://wiki.ubuntu.com/UNR

2010年1月1日 星期五

Tux2live Project

https://tux.nchc.org.tw/trac/tux2live/wiki

Tux2live是一套適合使用者建立自己所屬的 Linux Live system(Live CD, Live usb ,...)的工具,擁有易使用且客製化的打包架構,無論是個人使用環境或客製化功能服務主機,只要硬碟中已經建立好 Linux 環境,便能一五一十的打包成可攜帶的 live 環境。

Tux2live is a toolkit to package your Linux live environment from what you installed in hard disk. And it's easy to customize and configure your own live system.

https://tux.nchc.org.tw/trac/tux2live/

2009年12月28日 星期一

SSHFS

一行廢文

sudo sshfs $remoteuser@$remote:$remotedir /mnt/$remotedir -o sshfs_sync -o default_permissions,allow_other,kernel_cache,hard_remove

2009年12月11日 星期五

用sed解決SSH Key指紋不合

如果機器有換過,通常ssh fingerprint會不合,這時候系統就會強制不給連線。解決方式就是修改自己的.ssh/known_hosts裡面的內容,不過要打開檔案來找那一行來刪,眼花撩亂。
用sed來偷懶,直接編輯刪掉那一行,比如說訊息說找到的fingerprint與第5行紀錄相衝
sed -i -e '5d' .ssh/known_hosts
這樣就搞定了。

2009年11月10日 星期二

Virtual Hosting With vsftpd And MySQL On Ubuntu server Koala

參考資料:

Virtual Hosting With vsftpd And MySQL On Debian Etch

簡單的說,拜PAM認證模組的福,所以可以把vsftp的帳號認證模組抽換給mysql資料庫處理。好處是,這樣不用在主機多開實體帳號才能使用ftp功能,畢竟每多一個實體帳號,就多一分風險。至於虛擬的帳號再怎麼胡搞,出事了就把對應的實體帳號封殺再善後,也多一份簡潔。ok,不廢話,第一步驟,把該裝得裝好

apt-get install vsftpd libpam-mysql mysql-server mysql-client

安裝到mysql-server就會叫你設定mysql root密碼,不知道這是啥,謝謝,再聯絡。

使用netstat –tl | grep mysql 檢查是否mysql已經上線。Howto建議把網域連線方式也先設定密碼

mysqladmin -h $server1.example.com -u root password $yourrootsqlpassword

我個人是打算用防火牆方式阻斷實體存取。

接下來順序我稍微跟Howto有點差異,先建構完vsftpd設定,再設定PAM,最後搞定SQL DB。

首先製造出這位專門替ftp背黑鍋的實體使用者vsftpd

useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd

然後修改/etc/vsftpd.conf

mv /etc/vsftpd.conf /etc/vsftpd.conf_orig
vi /etc/vsftpd.conf  << EOF
i
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
nopriv_user=vsftpd
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
guest_enable=YES
guest_username=vsftpd
local_root=/home/vsftpd/$USER
user_sub_token=$USER
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd_user_conf
^]
ZZ
EOF

重點設定值如上。然後做出針對個別使用者帳號的詳細設定檔存放的目錄

mkdir /etc/vsftpd_user_conf

接下來設定PAM,注意到$ftpdpass是等一下mysql裡存取vsftpd的密碼

mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd_orig
vi /etc/pam.d/vsftpd  << EOF
i
auth required pam_mysql.so user=vsftpd passwd=$ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2
account required pam_mysql.so user=vsftpd passwd=$ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2
^]
ZZ
EOF

回到MySQL 設定,首先登入

mysql -u root -p

輸入完密碼,開始開資料庫內動作,先建立vsftpd

CREATE DATABASE vsftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY '$ftpdpass';

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost.localdomain' IDENTIFIED BY '$ftpdpass';

FLUSH PRIVILEGES;

接下來建立資料表

USE vsftpd;

CREATE TABLE `accounts` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 30 ) NOT NULL ,
`pass` VARCHAR( 50 ) NOT NULL ,
UNIQUE (
`username`
)
) ENGINE = MYISAM ;

然後塞一筆測試帳號看看

INSERT INTO accounts (username, pass) VALUES('testuser', PASSWORD('secret'));
quit;

重新啟動vsftpd

/etc/init.d/vsftpd restart

然後用ftp連線自己看看,測試可以就算ok囉。

2009年10月21日 星期三

保持ssh連線

echo "ServerAliveInterval 5 " >> /etc/ssh/ssh_config