本站內容為本人所有,禁止未經同意恣意未具名轉載或修改原作內容轉發!
顯示具有 linux-ubuntu Server 標籤的文章。 顯示所有文章
顯示具有 linux-ubuntu Server 標籤的文章。 顯示所有文章

2008年10月26日 星期日

Ubuntu8.04 wubi-無痛安裝/移除 Ubuntu



說到這個東西,



讓我非常地驚喜,



原來Ubuntu還有這種東西,



讓你不用擔心煩擾硬碟規畫問題,



直接能在目錄上建立一個Ubuntu,



且效能也不會受任何影響,



這真的是太棒了XD~~



我一直很想將Ubuntu與XP並行,



又擔心XP有天掛點後,



造成重灌後分區問題,



現在解決方案終於出現了!!



就是這個,



Wubi,



他能讓你安裝Ubuntu完全不需要另外再分割出一個分區,



直接就可以安裝,



而且當你不想使用時,



還可以把他直接在windows的新增移除程式移除,



並且不會影響到XP,



更重要的事,



這對新手來說完全不需要任何技術,



因為安裝過程就像是在安裝Windows上的軟體一樣那麼簡單!!



這是不是很棒呢?XD



趕緊來試試看唄~XD



詳情請至 http://wubi-installer.org/

2008年10月12日 星期日

Ubuntu8.04 Server-解決MYSQL亂碼問題

不知道為什麼,



在Ubuntu用apt-get安裝的mysql會常常出現偶發性亂碼問題,



這也是一直讓我很傷腦筋的,= =



明明每個網頁都有加mysql_query("SET CHARACTER SET 'utf8'");,



可是卻常常會有偶發性插入資料庫亂碼情況,



更詭異的是,= =



在Windows XP + Appserv就完全沒有這種問題,



所以最近就看了一些資料似乎發現了問題所在了,



似乎在mysql的設定內沒有加註編碼模式,



所以才會造成偶發性亂碼問題。



如果有跟我一樣的問題的人,



就試試看吧!^^



#vim /etc/mysql/my.cnf



編輯my.cnf 並加入以下設定值

---------------------------------------------

#避免出現亂碼問題

[mysqld]

default-character-set=utf8



[client]

default-character-set=utf8

init_connect='SET NAMES utf8'

---------------------------------------------



最後請記得重新啟動apache2

2008年10月10日 星期五

Ubuntu8.04 Server-利用shell撰寫script大量建置linux帳號

這是我自己撰寫的一個大量建置帳號的shell script,



相信對大家在管理Server上會有很大的幫助^.^



----------------------------------------------------

#!/bin/sh

#用途:大量建置系統帳號

#作者:國立嘉義大學 99資管三甲 王志瑋

#課程加分:OS

#注意事項:在使用此shell之前請先執行以下指令sudo dpkg-reconfigure dash 並按下no

#才能正常執行,因為Ubuntu為了加速開機速度,所以才使用dash,不過他卻會造成部分語

#法不能使用的情況。所以唯一的解決辦法就是將dash改回成bash。

echo "請輸入開頭編號(ex:s):"

read hid

echo "請輸入級次(ex:0954):"

read sclass

echo "請輸入起始值(ex:160):"

read idfors

echo "請輸入要建立的帳號個數:"

read maxnum

echo "請輸入群組名稱:"

read grp

groupadd $grp

for((n=0; n<=maxnum; n++))

do

useradd $hid$sclass$idfors -m -g $grp -s /bin/bash

echo $hid$sclass$idfors:$idfors | chpasswd

chmod 700 /home/$hid$sclass$idfors

let idfors=idfors+1

done

echo "建置完成!密碼皆為帳號的後三碼!"

2008年10月5日 星期日

Ubuntu8.04 Server-Freeradius+files+Mysql+PEAP tls

歷經千辛萬苦,


重灌再重灌...


重灌再重灌...


重灌再重灌...


終於皇天不負苦心人...QQ


終於讓我成功架成Freeradius+files+Mysql+PEAP tls拉,


我想很多人都跟我一樣,


因為網路上資料支離破碎,


找相關文件就像是無頭蒼蠅一樣,


都是東試試西試試,


時時碰壁,


試到都快抓狂了~= =


不過,


今天終於有一份完整的資料要呈現在大家面前拉~


希望對大家會有所幫助^^


首先呢,


我先跟大家說一下為什麼會卡關的原因,


其實原因都來自於Ubuntu與Freeradius EAP模組的授權問題,


所以在Ubuntu apt-get內並沒有將EAP設為預設模組,


而造成無法啟動模組的問題,


其實解決辦法很簡單,


就是...自己Complie,


接下來我就要教大家如何做拉~^^


首先我們先做好環境設定,


(以下的動作都必須要在root權限下執行 可參考此篇文章)


#apt-get update; apt-get upgrade -y;apt-get dist-upgrade -y  //此行是用來更新系統的安全性


#apt-get install vim -y   //安裝新版vim(非必要)


#vim /etc/vim/vimrc //修改vimrc內的systax on前的"拿掉,即可以讓vim語法顏色變(非必要)


#apt-get install build-essential -y //安裝Complie所需的Library


(以下的設定是防火牆設定,非必要)


#mkdir -p /usr/local/virus/iptables  //建立目錄


#cd /usr/local/virus/iptables //移至目錄下


#vim iptables.rule //建立iptables.rule並將以下的shell script加入 以下shell script來自鳥哥的私房菜


--------------------------------------------------------------------------------------------------------------------

#!/bin/bash

# 請先輸入您的相關參數,不要輸入錯誤了!

EXTIF="eth0" # 這個是可以連上 Public IP 的網路介面

INIF="" # 內部 LAN 的連接介面;若無請填 ""

INNET="" # 內部 LAN 的網域,若沒有內部 LAN 請設定為 ""

export EXTIF INIF INNET

# 第一部份,針對本機的防火牆設定!###########################

# 1. 先設定好核心的網路功能:

echo "1" # /proc/sys/net/ipv4/tcp_syncookies

echo "1" # /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

for i in /proc/sys/net/ipv4/conf/*/rp_filter; do

echo "1" # $i

done

for i in /proc/sys/net/ipv4/conf/*/log_martians; do

echo "1" # $i

done

for i in /proc/sys/net/ipv4/conf/*/accept_source_route; do

echo "0" # $i

done

for i in /proc/sys/net/ipv4/conf/*/accept_redirects; do

echo "0" # $i

done

for i in /proc/sys/net/ipv4/conf/*/send_redirects; do

echo "0" # $i

done

# 2. 清除規則、設定預設政策及開放 lo 與相關的設定值

PATH=/sbin:/usr/sbin:/bin:/usr/bin; export PATH

iptables -F

iptables -X

iptables -Z

iptables -P INPUT DROP

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -m state --state RELATED -j ACCEPT



# 3. 啟動額外的防火牆 script 模組

if [ -f /usr/local/virus/iptables/iptables.deny ]; then

sh /usr/local/virus/iptables/iptables.deny

fi

if [ -f /usr/local/virus/iptables/iptables.allow ]; then

sh /usr/local/virus/iptables/iptables.allow

fi

if [ -f /usr/local/virus/httpd-err/iptables.http ]; then

sh /usr/local/virus/httpd-err/iptables.http

fi

iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT



# 4. 允許某些類型的 ICMP 封包進入

AICMP="0 3 3/4 4 11 12 14 16 18"

for tyicmp in $AICMP

do

iptables -A INPUT -i $EXTIF -p icmp --icmp-type $tyicmp -j ACCEPT

done



# 5. 允許某些服務的進入,請依照您自己的環境開啟

iptables -A INPUT -p TCP -i $EXTIF --dport 22 -j ACCEPT # SSH

# iptables -A INPUT -p TCP -i $EXTIF --dport 25 -j ACCEPT # SMTP

# iptables -A INPUT -p UDP -i $EXTIF --sport 53 -j ACCEPT # DNS

# iptables -A INPUT -p TCP -i $EXTIF --sport 53 -j ACCEPT # DNS

# iptables -A INPUT -p TCP -i $EXTIF --dport 80 -j ACCEPT # WWW

# iptables -A INPUT -p TCP -i $EXTIF --dport 110 -j ACCEPT # POP3

# iptables -A INPUT -p TCP -i $EXTIF --dport 443 -j ACCEPT # HTTPS

iptables -A INPUT -p TCP -i $EXTIF --dport 1812 -j ACCEPT # freeradius

--------------------------------------------------------------------------------------------------------------------


#vim /etc/rc.local  //為了讓防火牆腳本檔可以在開機時候自動執行,加入以下的script加入其內

--------------------------------------------------------------------------------------------------------------------

# 1. Firewall 防火牆

sh /usr/local/virus/iptables/iptables.rule

--------------------------------------------------------------------------------------------------------------------


#apt-get -y install mysql-server mysql-client //安裝Mysql Server & Client


#apt-get install libssl-dev libpq-dev -y //安裝Freeradius所需的library


#apt-get install apt-src -y //安裝apt-src指令


#apt-get install dpkg-dev -y //安裝dpkg指令


#apt-get install fakeroot -y //安裝fakeroot功能指令


#mkdir ~/freeradius_tls //在root目錄底下建立一個安裝暫存目錄


#cd ~/freeradius_tls


#wget ftp://ftp.freeradius.org/pub/radius/freeradius-1.1.7.tar.gz   //下載Freeradius 原碼包


#tar -zxvf  freeradius-1.1.7.tar.gz  //解壓


#cd freeradius-1.1.7


#vim debian/control  //編輯control將eap模組加在後面


--------------------------------------------------------------------------------------------------------------------

Package: freeradius-eaptls

Architecture: any

Depends: freeradius (= ${binary:Version}), ${shlibs:Depends}

Description: eap-tls module for FreeRADIUS server

  Debian will not provide a binary version of the rlm_eap_tls.so library. This

  module is required if you want to use EAP/TLS authentication, commonly used

  for WiFi access points.



Package: freeradius-eappeap

Architecture: any

Depends: freeradius (= ${binary:Version}), ${shlibs:Depends}

Description: eap-peap module for FreeRADIUS server

  Debian will not provide a binary version of the rlm_eap_peap.so library. This

  module is required if you want to use EAP/PEAP authentication, commonly used

  for WiFi access points.

--------------------------------------------------------------------------------------------------------------------



#dpkg-buildpackage -rfakeroot -uc -us //進行封裝


通常進行這個動作時候,會出現相依性問題!如下:


dpkg-checkbuilddeps: Unmet build dependencies: debhelper (>= 4.2.32) dpatch (>= 2) autotools-dev libtool (>= 1.5) libltdl3-dev libpam0g-dev libmysqlclient15-dev | libmysqlclient14-dev | libmysqlclient-dev libgdbm-dev libldap2-dev libsasl2-dev libiodbc2-dev libperl-dev snmp libsnmp9-dev | libsnmp5-dev | libsnmp4.2-dev

dpkg-buildpackage: warning: Build dependencies/conflicts unsatisfied; aborting.

dpkg-buildpackage: warning: (Use -d flag to override.)


有沒有注意到,他有提到的相依性性問題的組件有 debhelper  dpatch autotools-dev libtool...等,所以我們只要利用apt-get install [組件名稱] 就可以一一解決囉^.^


#apt-get install debhelper dpatch autotools-dev libtool libltdl3-dev libpam0g-dev libmysqlclient15-dev libgdbm-dev libldap2-dev libsasl2-dev libiodbc2-dev libperl-dev snmp libsnmp9-dev -y //安裝相依性組件


#dpkg-buildpackage -rfakeroot -uc -us //再嘗試一次封裝


#cd ..


#dpkg -i freeradius_1.1.7-0_i386.deb freeradius-eaptls_1.1.7-0_i386.deb freeradius-mysql_1.1.7-0_i386.deb freeradius-eappeap_1.1.7-0_i386.deb //安裝以上封裝後的安裝包


到目前為止,你已經成功安裝含eap tls模組的Freeradius囉!


接下來將是重頭戲,


就是進行細部設定拉!


首先我們先將freeradius所需的資料庫建置起來!


#mysql -uroot -p密碼 //用Mysql Client


mysql>Create Database radius;  //建置radius資料庫


按ctrl + c跳出


#cd /root/freeradius_tls/freeradius-1.1.7/doc/examples/   //radius的資料表通常都有附在原碼包內,如果找不到可以使用locate *.sql搜尋 可參考此篇文章


#mysql -u帳號 -p密碼 radius < mysql.sql  //匯入radius資料表


#mysql -u帳號 -p密碼 radius  //登入mysql server 並進入radius Database


mysql>insert into radgroupreply (groupname,attribute,op,value) values  ('user','Auth-Type',':=','Local');

insert into radgroupreply (groupname,attribute,op,value) values ('user','Service-Type',':=','Framed-User');

insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Address',':=','255.255.255.254');

insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Netmask',':=','255.255.255.0');    //加入群組資料


mysql>insert into radcheck (username,attribute,op,value) values ('test','User-Password',':=','test');   //加入測試帳號


mysql>insert into usergroup (username,groupname) values ('test','user'); //測試賬號加入群組


以後新增帳號時只要用以下兩個命令即可

insert into radcheck (username,attribute,op,value) values ('帳號','User-Password',':=','密碼');

insert into usergroup (username,groupname) values ('帳號','user');


#cd /etc/freeradius


在修改之前,為了安全起見,先做一下備份。


# mkdir backup


#cp eap.conf clients.conf radiusd.conf sql.conf users backup/


#vim radiusd.conf  //修改 radiusd.conf 內部份設定如下列


--------------------------------------------------------------------------------------------------------------------

//109行

user = root

group = root



//266行

hostname_lookups = yes



//290行

log_stripped_names = yes

log_auth = yes

log_auth_badpass = yes

log_auth_goodpass = yes



//340行

lower_user = yes



//1136行 將#拿掉如下

detail auth_log {

                 detailfile = ${radacctdir}/%{Client-IP-Address}/auth-detail-%Y%m%d



                 detailperm = 0600

         }



//1153行 將#拿掉如下

detail reply_log {

                 detailfile = ${radacctdir}/%{Client-IP-Address}/reply-detail-%Y%m%d



                 detailperm = 0600

         }



//1789行 將authorize內的auth_log attr_filter sql 的#拿掉如下

authorize {

        preprocess



        auth_log



        attr_filter



        chap



        mschap



        suffix



        eap



        files



        sql



}



//1994行 將accounting內的sql的#拿掉如下

accounting {

        detail



        radutmp



        sql



}



//2040行 將session內的sql的#拿掉如下

session {

        radutmp



        sql

}



//2052行 將post-auth內的 reply_log sql的#拿掉如下

post-auth {



        reply_log



        sql





}

--------------------------------------------------------------------------------------------------------------------


#vim clients.conf  //編輯clients.conf 內加入以下設定值


--------------------------------------------------------------------------------------------------------------------

client 192.168.1.1  {

       secret      = testing123

       shortname   = test

}

--------------------------------------------------------------------------------------------------------------------


#vim sql.conf //編輯sql.conf內的設定值 如下


--------------------------------------------------------------------------------------------------------------------

//22行

login = "root"          //MYSQL帳號

password = "密碼" //MYSQL密碼



//53行

sqltrace = yes


#vim eap.conf //編輯eap.conf內的設定值 如下


//23行

default_eap_type = peap



//123行 將tls的#拿掉 如下

tls {

                        private_key_password = whatever

                        private_key_file = ${raddbdir}/certs/cert-srv.pem



                        certificate_file = ${raddbdir}/certs/cert-srv.pem



                        CA_file = ${raddbdir}/certs/demoCA/cacert.pem



                        dh_file = ${raddbdir}/certs/dh

                        random_file = ${raddbdir}/certs/random



                }



//304行 將peap的#拿掉 如下

peap {

                        default_eap_type = mschapv2

                }

--------------------------------------------------------------------------------------------------------------------


#vim users  //編輯users內的設定值 如下


--------------------------------------------------------------------------------------------------------------------

//95行 在此行加入以下的設定



"testf" Auth-Type := Local, User-Password == "testf"

                Reply-Message = "Hello, %u"



//155行 將155行 156行 #起來 如下

#DEFAULT Auth-Type = System

# Fall-Through = 1

--------------------------------------------------------------------------------------------------------------------


#freeradius -X  //看看有沒有設定錯誤唄~~如果沒錯就準備重新啟動拉XD


#/etc/freeradius restart //重新啟動freeradius,大功告成!


#radtest testf testf localhost 0 testing123 //測試files認證


#radtest test test localhost 0 testing123  //測試mysql認證


如果成功的話會出現類似以下的訊息:


Sending Access-Request of id 138 to 127.0.0.1 port 1812

User-Name = "testf"

User-Password = "testf"

NAS-IP-Address = 255.255.255.255

NAS-Port = 0

rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=138, length=34

Reply-Message = "Hello, testf"


Sending Access-Request of id 142 to 127.0.0.1 port 1812

User-Name = "test"

User-Password = "test"

NAS-IP-Address = 255.255.255.255

NAS-Port = 0

rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=142, length=38

Service-Type = Framed-User

Framed-IP-Address = 255.255.255.254

Framed-IP-Netmask = 255.255.255.0


如果你成功的話,

就要恭喜你囉!

你又邁入Linux世界的一大步囉

2008年10月1日 星期三

Ubuntu8.04 Server-locate不能使用?

其實解決辦法很簡單,



只要做一個動作,



就可以囉!



如下:



>updatedb

2008年9月2日 星期二

阿阿~~又灌壞了-.-...

囧....



Gentoo真的好難灌阿,



灌半天還是被我灌壞了-.-...



真傷腦筋-.-...



改天再來試一次好了,



不然這樣磨耐心真的挺...



恩= =



哈~



改天再來吧!!



看來不經幾次挫敗,



這傢伙肯定不會放過我的。= =



反正,



總有一天我一定會灌成的!!=v=


2008年9月1日 星期一

可怕的怪物Gentoo

ROSO老師又出新方向拉~



要我玩Kernel核心編譯,



現在要我做的事...



很簡單,



就是把Gentoo Linux灌好,



原本想說很簡單阿,



不就跟其他的linux差不多,=v=



結果.....



卻不是我所想的那麼簡單,=o=



真是有夠難灌的,-o-



每個安裝環節都要用指令以及全手動進行,-.-



真是客製化到底了-.-...



所有安裝過程都要靠自己打指令自己全手動安裝,-.-



好像這世界上沒有選擇’下一步這的東西一樣-.-



我的天阿....



到現在為止-.-...



我已不幸卡關了,



安裝到半路出現一個我也不知道該怎麼解決的錯誤,= =



看來這條路將會是一段非常的驚險刺激的旅程,



我想等我頭腦清醒一點的時候,



再慢慢"品味"其中的奧妙吧。

2008年8月30日 星期六

Ubuntu8.04 Server-讓http自動轉向https

我想這個對一個架站者來說是相當重要的,



如果有些使用者不知道該站有提供ssl加密,



而沒使用時,



可能有被監聽的危險,



所以啦,



我們就得強制轉向https,



這樣一來就安全無虞啦!!XD



方法如下:




>sudo a2enmod rewrite

首先先戴入rewrite模組



再來得看個人需求,



如果你想全站都使用https的話,



請繼續照以下步驟做:




> sudo vim /etc/apache2/sites-enabled/000-default



>請在以下位置插入紅色部分




       <Directory /var/www/>

                Options Indexes FollowSymLinks MultiViews

                AllowOverride ALL

                Order allow,deny

                allow from all

                RewriteEngine on

                RewriteCond %{SERVER_PORT} !^443$

                RewriteRule ^(.*)?$
https://%{SERVER_NAME}/$1 [L,R]

        </Directory>



>存檔離開



>
sudo /etc/init.d/apache2 force-reload



>sudo /etc/init.d/apache2 restart



>完成!




我先去吃飯啦,



之後再跟大家介紹如果只使用某個目錄要怎麼設定!



先這樣囉~XD



Ubuntu8.04 Server-利用apt-get 安裝 Apache2+Mysql+PHP+GD庫+SSL

這次終於學聰明用apt-get來安裝套件,



真的很簡單!!



只要一個步驟就可以完成繁雜的相依性問題與安裝設定,



想到以前傻傻的用原碼包安裝,= =



真是有夠傻的!= =



好!



接下來我就要來教大家安裝Apache2+Mysql+PHP+GD庫+OPENSSL,



安裝方法如下:




>sudo apt-get  -y install apache2

安裝apache2



>sudo apt-get  -y install php5 libapache2-mod-php5 php5-mysql

安裝php5  強化模組 和 php的mysql模組



>sudo apt-get -y install mysql-server mysql-client phpmyadmin

安裝mysql server &mysql client &phpmyadmin



>安裝過程當中會要求使用者輸入mysql root的密碼。



>sudo apt-get install -y php5-gd

安裝GD庫



>sudo apt-get install -y openssl

安裝ssl



>sudo apt-get install -y ssl-cert 

安裝簽署憑證的工具



>sudo a2enmod ssl

安裝ssl模組



>
cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl

>ln -s /etc/apache2/sites-available/ssl /etc/apache2/sites-enabled/ssl

複製一份預設擋供ssl用,並且用ln建立連結(捷徑)至sites-enabled/ssl



>sudo
vim /etc/apache2/sites-enabled/ssl



>在以下位置後面加入紅色的設定值



NameVirtualHost *:
443

443>

    ServerSignature On

    SSLEngine On

    SSLCertificateFile /etc/apache2/ssl/apache.pem



>存檔離開



>sudo vim /etc/apache2/sites-enabled/default



>在以下位置後面加入紅色的設定值






NameVirtualHost *:
80

80>

    ServerAdmin
webmaster@localhost



>存檔離開



>vim  /etc/apache2/ports.conf



>加入Listen 443



>存檔離開



>sudo vim /usr/sbin/make-ssl-cert



>將"-keyout $output"改成"-keyout $output -days 3650"即可將憑證有效時間改成10年,不然預設為30天,還挺麻煩的。



>存檔離開



>mkdir /etc/apache2/ssl

建立ssl憑證所擺放目錄



>/usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/etc/apache.pem

依照指示輸入憑證相關訊息,即可產生憑證!



>sudo /etc/init.d/apache2 force-reload

重新載入配置



>sudo /etc/init.d/apache2 restart

重新啟動Apache2



>完成!!



>現在就趕緊試試看
https://127.0.0.1吧XD



如果有錢買域名與憑證的話,



憑證網站所要求的憑證csr檔內容就在apahce.pem裡面, 



不過我沒錢玩那個,QQ 



所以就沒辦法試給大家看囉~@@ 



相關憑證申請單位參考

http://www.globaltrust.com.tw/products/compare.asp



例如:


 -----BEGIN NEW CERTIFICATE REQUEST----- MIIDCjCCAnMCAQAwdTEZMBcGA1UEAxMQaG9zdC5kb21haW4ubmFtZTEVM BMGA1UECxMMT3JnYW5pemF0aW9uMRUwEwYDVQQKEwxPcmdhbml6YXRpb2 4xDTALBgNVBAcTBENpdHkxDjAMBgNVBAgTBVN0YXRlMQswCQYDVQQGEwJ VUzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyZ1dYomQ4jhSr6f/ G3GYxjS4B837+y3A6xIM9OVXV4ZnSIe9nOLHgdksQJpwaQeOZwWeqifte hrJ/s55PvPxok+Tqq0t7BfMkkUSuiYnFdUo1OpDPdw3cEaP9WWSrduouI Vnq2AWTDw2ykyxKg6neb2vYTZRvbot7M578Vvh6P8CAwEAAaCCAVMwGgY KKwYBBAGCNw0CAzEMFgo1LjAuMjE5NS4yMDUGCisGAQQBgjcCAQ4xJzAl MA4GA1UdDwEB/wQEAwIE8DATBgNVHSUEDDAKBggrBgEFBQcDATCB/QYKK wYBBAGCNw0CAjGB7jCB6wIBAR5aAE0AaQBjAHIAbwBzAG8AZgB0ACAAUg BTAEEAIABTAEMAaABhAG4AbgBlAGwAIABDAHIAeQBwAHQAbwBnAHIAYQB wAGgAaQBjACAAUAByAG8AdgBpAGQAZQByA4GJACB3C0g9psK0+V+N/Me1 JsG39vonCPQBdOwNp6zHJSPCU3FwQ0SgFpEQNy6HEn79I0CMrU93q9Hh1 TQtd2YU6lWHQunXrIcytmAFVjhibNX6Dp1e41Wjc2N4ilJyy1GFss686c dZt2GP6y04I74/OvkW2Wf9nezUrMrESM2PP4B1AAAAAAAAAAAwDQYJKoZ IhvcNAQEFBQADgYEAg4+QHTvkP5CG+WcGnrhKiMkJnMP6QEsds40obUDS dGtEupQz8C+4xoMd1aM68q9Ri6Va+JTeuhKHxLz9hT/KUJhNBy0sRfnx+ JkQdrKG69UanTwvLqXINh9xChw9ErIto/2kZI5kl2KYQdiOqTv6p0GEUP Rq/MD52Zy3bOzSRF0= 

-----END NEW CERTIFICATE REQUEST-----



Ubuntu8.04 Server-常用操作指令(8/30 AM01:00)

雖然這些指令常常在用, 



就如同dos的指令一樣, 



不過他的使用變化我一直沒有徹底去嘗試, 



今天我就要重新一一試過!!XD






 ls -al /root:列出包含隱藏檔的檔案與資料夾清單

tip:如果忘記指令是什麼時,但還記得前一兩個關鍵字的話,可以利用連按兩次tab列出跟開頭關鍵字有關的指令!



man [指令名稱]:可以查詢指令的使用方法與範例

-----------------------------------------------------------------

空白鍵 與 Pagedown :向下翻一頁                      

                      Pageup:向上翻一頁                      

                         Home:回到第一頁                      

                            End:到最後一頁                      

                          /字串:向下搜尋                         

                         ?字串:向上搜尋                          

                          n,N:正向搜尋&反向搜尋        

                                q:離開                                 

-----------------------------------------------------------------



date:印出目前系統時間及日期 



cal [月] 年:列出月曆或年曆



CTRL+D:相當於打指令exit



CTRL+C:用於中斷程式的快捷鍵



shutdown -h now:關機指令



reboot:重新開機指令



free:查詢目前記憶體使用狀況(Linux果然省資源!!開機狀態記憶體只佔80MB)



2008/08/21 PM03:33更新

apt-get dist-upgrade:做作業系統內的Package更新升級,並且可以檢查是否有相依性問題並解決之!(超好用的!!以前傻傻的都自己手動Make─○─)



apt-get upgrade:系統將現有的 Package 更新升級, 如果有相依性的問題, 而此相依性需要新的版本去支援時,就會保留下來!



source 檔案:讓你不用重新開機就可以將shell讀入。EX:source ~/.bashrc



ls -al > 檔案:將當前目錄所列出來的檔案清單資訊輸出至你指定的檔案名稱



ls -al / >> 檔案:將當前目錄所列出來的檔案清單資訊輸出至你指定的檔案名稱,並且將根目錄資料一併存入



cat > catfile <



ls -al | less:可以一頁一頁輸出該目錄下的檔案資料,這樣就不會錯過囉!



; :讓你可以一次執行很多指令。ex:make; make install



last:可以查看最新登入使用者訊息



grep '關鍵字' [檔案]:如果檔案內有含關鍵字的行數,就將之列出



diff [檔案一] [檔案二]:做兩個檔案的資料比對!將差異的地方列出!



pr [檔案]:列印資料(沒印表機可試咩= =)



useradd 帳號:增加使用者帳號



passwd 帳號:更改帳號密碼



usermod:用來設定帳號狀態

-----------------------------

usermod -c "說明文字" 帳號:用來陳述帳號用

usermod -e "2006-01-01" 帳號:意思是帳號只能用到2006-01-01止


usermod -L 帳號:凍結帳號

usermod -U 帳號:將帳號解除凍結

usermod -d /home/目錄名 -m 帳號:將此帳號的目錄改為輸入的目錄名稱

-----------------------------



2008/08/27 PM06:19更新

ps -aux:查詢程序與CPU與記憶體的狀況



df -h:查詢硬碟使用情況



2008/08/30 AM01:00更新

ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS:從程序在記憶體佔用由多至少排列



uptime:查詢開機時間



sudo -i:新增該使用者的root權限密碼







2008年8月29日 星期五

重溫舊夢...我把...

哈...



今天下午...



發生了一件重大慘案...



我把資中的 BBS Server(CentOS)玩壞了,= =



哈...



果真重溫舊夢,



就和當初小時候玩壞windows 3.1一樣,=v=



那時想說要關掉一些用不到的服務,



關這關這重新開機之後,



它就跟我"失連"了,-.-



不過應該是不小心關掉SSH拉,



所以應該問題不大才是,= =



應該只要到現場重新啟動SSH 應該就會再活過來拉!!XD



有時真是太急性子拉,



趕這出門,



就沒注意關錯服務。= =



嘖~嘖~嘖~



就是因為這樣,



所以老師給的Server我都不敢做太大的修改。= =



就怕一修改就出事情了。= =



不過從錯中學,



記取教訓,



應該會學的更多!XD

Ubuntu8.04 Server-管理系統服務必備的工具

為了方便開關系統服務,



我們可以自行加裝一套叫sysv-rc-conf的工具,



裝了之後我們就可以用此套工具進行開關系統服務,



算還蠻方便的!



安裝方式如下:




>sudo apt-get instaill -y sysv-rc-conf



>安裝完成後即可輸入sysv-rc-conf進入操作!

2008年8月27日 星期三

Ubuntu8.04 Server-更改登入後的提示訊息

雖然目前看起來沒什麼用處, 



不過對於有大量共同的使用者的Linux來說,



這就像是公告版一樣,



其實多多少少都有用啦!!



也還不錯玩~XD



指令如下:




>sudo vim /etc/motd.tail (修正)



>修改後存檔即可!



另外還有一塊指令如下:



>sudo vim /etc/issue



>修改後存檔即可!



\d 本主機的日期;

\l 顯示第幾個終端機介面;

\m 顯示硬體的等級 (i386/i486/i586/i686...);

\n 顯示主機的網路名稱;

\o 顯示 domain name;

\r 作業系統的版本 (相當於 uname -r)

\t 顯示主機的時間;

\s 作業系統的名稱;

\v 作業系統的版本。

Ubuntu8.04 Server-Apache htaccess網頁認證





原本我以為這種東西必須牽涉到非常複雜的設定,



結果卻不是我所想像的,



真是簡單到有點誇張,



接下來我就來教大家如何使用拉,



步驟如下:




>首先必須先確認APACHE是否允許使用htaccess



>sudo vim /etc/apache2/sites-available/default



>將 之下的AllowOverride none改成AllowOverride All



>存檔離開



>如果我們要將網頁內的某個目錄(ex:admin)做授權認證,我們就必須在其目錄底下建立.htaccess



>cd /var/www/admin/



>vim .htaccess



>將以下內容複製進去



AuthName "隨你高興看你要打什麼"



AuthUserFile /home/webaut/.passwd



AuthType Basic



require valid-user





>為了安全起見所以我們將密碼檔放在非網頁目錄底下,



>cd /home/



>mkdir webaut



>htpasswd –c .passwd 帳號



>輸入密碼之後即大功告成!

Ubuntu8.04 Server-Apache 安全設定禁止瀏覽網頁目錄

其實,



對一個網站來說,



最怕的就是洩漏自己的目錄內容,



因為這是相當危險的事情,



如果不小心被看到不該看的,(例如:mysql連線檔)



將會造成很可怕的後果!



所以為了慎重起見,



我們得將目錄索引功能關閉!




如下:



>sudo vim /etc/apache2/sites-available/default



>將Options indexs FollowSymLinks MultiViews改成

Options FollowSymLinks MultiViews



>存檔離開



>sudo vim /etc/apache2/mods-available/userdir.conf



>將Options MultiViews indexs SymLinksIfOwnerMatch IncludesNoExec改成 Options MultiViews SymLinksIfOwnerMatch IncludesNoExec



>存檔離開



>/etc/init.d/apache2 restart



這樣一來,



就安全多拉!

Ubuntu8.04 Server-例行程序設定

對linux來說, 



這個東西就好像windows的排定的工作, 



就是用來讓作業系統自動在某日某時某刻執行你所要的程序,



說實在的還不錯用拉,



接下來我就拿在每天的1時0分時自動更新系統的例子示範。




如下:



>sudo vim /etc/crontab



>在任何一處加入這一行 "00 1 * * * root apt-get -y update && apt-get -y dist-upgrade && apt-get clean"



>存檔後即完成!




>00   1    *      *      *          root           apt-get -y update && apt-get -y dist-upgrade && apt-get clean

  分   時  日    月   週    執行者身分   指令串 

2008年8月26日 星期二

Ubuntu8.04 Server-vim顏色顯示

沒有顏色的vim真的很難用,



光看程式碼就可以看到眼花了,= = 



所以我們要有顏色辨識, 



很簡單, 如下:




>sudo apt-get install -y vim



>sudo vim /etc/vim/vimrc



>將裡面的"systax on 旁邊的引號移除。



>存檔即可!

2008年8月23日 星期六

Ubuntu8.04 Server-apt輕鬆安裝所需套件

Apt真的是一個非常強大的指令,

 

它除了可以幫我們安裝我們要的套件,

 

還可以幫我們自動處理解決相依性問題!

 

只能說真的很神!!

 

不過這個好東西卻在三天前才讓我知道,

 

想起以前常常自找麻煩,

 

下載原碼包自己compile,

 

有時運氣不好,

 

出現相依性問題,

 

裝半天也裝不上去,=o=

 

雖然我以前的裝法也不是說不對,

 

只不過真的是自找麻煩就是了。-.-

 

好啦~

 

回歸正題,

 

我就來一一介紹apt的指令給大家知道,

 

Apt主要分為三大類,

 

分別為 升級 安裝/移除 查看,

 

不過以上這是我自己分的拉,

 

所以萬一有錯,

 

也煩請大家糾正嘿!

 

如下:

 

































升級/檢查


指令


說明


apt-get upgrade


升級所有現有的套件,並且解決相依性問題


apt-get dist-upgrade


簡單來說就是幫你的系統升級,並且解決相依性問題


apt-get update


在升級之前,最好都執行一次,以與server同步安裝清單


apt-get check


檢查系統裡套件相依性的情況


apt-get clean


移除下載回來的*.deb



 




























安裝/移除


指令


說明


apt-get Install [套件名稱]


安裝你所要的套件,並且可以幫你處理相依性問題


apt-get remove [套件名稱]


移除你要移除的套件以及其相關的套件。


apt-get source [套件名稱]


不安裝,抓回套件。


--compile:可將抓回的套件compile 成 binary rpm

-f:如果遇到無法安裝時,可嘗試加入。

-d:就是只下載*.deb,而不安裝。會放在/var/cache/apt/archives/



 













































查看


指令


說明


apt-cache showpkg [套件名稱]


顯示套件資訊


apt-cache stats


顯示相關的統計資訊


apt-cache pkgnames [套件名稱]


尋找符合的套件名稱


apt-cache search [套件名稱]


尋找套件


apt-cahce dump


顯示每一個套件的簡短資訊


apt-cache unmet


檢查未符合相依性的資訊


apt-cache depends [套件名稱]


顯示套件的相依性


apt-config dump


顯示目前設定狀態



 

2008年8月22日 星期五

Ubuntu8.04 Server-不能compile c or c++嗎?來!

這兩天我發現了一件事情, 



Ubuntu Server果然是一個非常精簡的Linux OS,



很多東西他都沒幫你預先置入,



不過我喜歡,XD



這樣才好自由發揮阿!



而且也不用浪費資源呢!!



當初選它果然沒錯!!XD



哈~



回歸主題,



發現自己寫的c/c++ 不能Compile嗎?



沒錯!



它就是沒幫你裝,= =



好!



沒裝我們就自己裝!!



其實很簡單,



如下:




>sudo apt-get install build-essential



另外這個apt出現好幾次了,



它到底是何方神聖呢?



等我明天....



不對!應該是等今天起床,



全部玩透之後,



再跟大家揭開其神祕面紗!!XD



(OS:這到底有什麼好神祕阿-.-....)



並且告訴大家我之前多麼的蠢,



自找麻煩,= =



多虧我的"可愛"學弟芃秀指點迷津,



終於破除我往年來的迷思。



好啦,



總之明天再告訴大家啦!



先去睡覺啦!



晚安。






2008年8月21日 星期四

Ubuntu8.04 Server-想自己寫Shell所要知道的檔案

當然啊,



想寫Shell讓系統更加方便有變化,



當然要知道一些登入後啟動的檔案位置咩~



如下(依照驅動順序排列):




公共區塊:



1./etc/profile:共有的啟動設定



2./etc/bash.bashrc:共有的啟動設定




私人區塊(個人化):



1.~/.bash_profile:個人化bash驅動檔



2.~/.bash_login:個人化bash驅動檔



3.~/.profile:在bashrc之前啟動的shell



(以上三個其實只要一個即可!)



4.~/.bashrc :如果在此做Shell,將會針對個人用戶做變化!



5.~/.bash_logout:此區是在登出時發生作用,我想這個可做的變化應該可以很多!XD



6.~/.bash_history:專門記錄該使用者所使用過的指令!



PS.~代表的意思就是家目錄的意思!