2012-09-28

Centos 安裝 RPMforge

Centos 安裝 RPMforge

RPMforge 是由 Dag 及其他包裝者合作維護的。他們為 CentOS 提供超過 5000 個套件,包括 wine、vlc、mplayer、xmms-mp3 及其他受歡迎的媒體工具。它並不是 Red Hat 或 CentOS 的一部份,但卻是為那些發行版本而設計的。請亦參閱 使用 RPMforgeRepoforge

註:由於這個軟件庫並非 CentOS 的一部份,你應該透過Repoforge 用戶郵件列表把支援的問題發給它的維護者

套件是以 RPM 的格式提供,在大多數情況下已可隨時使用。預設的 RPMforge 軟件庫並不會取代 CentOS 的官方套件。

Contents
CentOS 6 的 RPMforge
CentOS 5 的 RPMforge
CentOS 4 的 RPMForge

1. CentOS 6 的 RPMforge

預設的 RPMforge 軟件庫並不會取代任何 CentOS 的基本套件。過往有些套件的確會這樣做,但它們現在已收錄在一個獨立(rpmforge-extras)、預設被停用的軟件庫。

你可以在 http://packages.sw.be/ 取得所有 RPMforge 套件的清單。

下載 rpmforge-release 這個套件。請從下面兩個連結中選取一個與你的架構配合的連結。假若你不清楚應選用哪一個,你可以用 uname -i 這個指令來查詢你的架構。

i386 http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i386.rpm
x86_64 http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

我們建議你下載及安裝上述兩個 rpmforge-release 的其中一個來啟用本軟件庫。

安裝 DAG 的 GPG 金鑰 rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt

如果你遇到以下錯誤,該金鑰先前已被匯入: error: http://apt.sw.be/RPM-GPG-KEY.dag.txt: key 1 import failed.

審核你所下載的套件 rpm -K rpmforge-release-0.5.2-2.el6.rf.*.rpm

安全性警告: rpmforge-release 這個套件會將數條 GPG 金鑰匯入你的 RPM 資料庫內。你若已審核過確套件的 md5sum,並信任 Dag 等人,那麼它的安全性便延伸自你對他們的信任。

安裝套件 rpm -i rpmforge-release-0.5.2-2.el6.rf.*.rpm

這樣做會新增一個 yum 軟件庫的設定檔及匯入應有的 GPG 金鑰。

接著你可以嘗試安裝軟件: yum install htop

2. CentOS 5 的 RPMforge

預設的 RPMforge 軟件庫並不會取代任何 CentOS 的基本套件。過往有些套件的確會這樣做,但它們現在已收錄在一個獨立(rpmforge-extras)、預設被停用的軟件庫。

你可以在 http://packages.sw.be/ 取得所有 RPMforge 套件的清單。

下載 rpmforge-release 這個套件。請從下面兩個連結中選取一個與你的架構配合的連結。假若你不清楚應選用哪一個,你可以用 uname -i 這個指令來查詢你的架構。

i386 http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
x86_64 http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

我們建議你下載及安裝上述兩個 rpmforge-release 的其中一個來啟用本軟件庫。

安裝 DAG 的 GPG 金鑰 rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt

審核你所下載的套件 rpm -K rpmforge-release-0.5.2-2.el5.rf.*.rpm

安全性警告: rpmforge-release 這個套件會將數條 GPG 金鑰匯入你的 RPM 資料庫內。你若已審核過確套件的 md5sum,並信任 Dag 等人,那麼它的安全性便延伸自你對他們的信任。

安裝套件 rpm -i rpmforge-release-0.5.2-2.el5.rf.*.rpm

這樣做會新增一個 yum 軟件庫的設定檔及匯入應有的 GPG 金鑰。

接著你可以嘗試安裝軟件: yum install htop

3. CentOS 4 的 RPMForge

預設的 RPMforge 軟件庫並不會取代任何 CentOS 的基本套件。過往有些套件的確會這樣做,但它們現在已收錄在一個獨立(rpmforge-extras)、預設被停用的軟件庫。

你可以在 http://packages.sw.be/ 取得所有 RPMforge 套件的清單。

下載 rpmforge-release 這個套件。請從下面兩個連結中選取一個與你的架構配合的連結。假若你不清楚應選用哪一個,你可以用 uname -i 這個指令來查詢你的架構。

i386 http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el4.rf.i386.rpm
x86_64 http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el4.rf.x86_64.rpm

我們建議你下載及安裝上述兩個 rpmforge-release 的其中一個來啟用本軟件庫。

安裝 DAG 的 GPG 金鑰 rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

審核你所下載的套件 rpm -K rpmforge-release-0.5.2-2.el4.rf.*.rpm

安全性警告: rpmforge-release 這個套件會將數條 GPG 金鑰匯入你的 RPM 資料庫內。你若已審核過確套件的 md5sum,並信任 Dag 等人,那麼它的安全性便延伸自你對他們的信任。

安裝套件 rpm -i rpmforge-release-0.5.2-2.el4.rf.*.rpm

這樣做會新增一個 yum 軟件庫的設定檔及匯入應有的 GPG 金鑰。

接著你可以嘗試安裝軟件: yum install htop

如何關閉rpc.statd 服務 ?

如何關閉rpc.statd 服務 ?


為了讓linux主機少一些隱患,我們要盡可能把一些不需要的服務取消或者刪掉。

我們可以先來看看目前有哪些埠是開著的

[root@localhost linsc]# nmap 127.0.0.1

Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2007-12-05 21:28 CST
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1652 ports scanned but not shown below are in state: closed)
PORT     STATE SERVICE

21/tcp   open  ftp
22/tcp   open  ssh
25/tcp   open  smtp
80/tcp   open  http
766/tcp  open  unknown
3306/tcp open  mysql
8009/tcp open  ajp13
8080/tcp open  http-proxy

Nmap run completed -- 1 IP address (1 host up) scanned in 0.194 seconds

可以看到 766 埠是打開著的,一個 unknown 的服務正在運行,這是什麼服務?這個時候我也不知道。

[root@localhost linsc]# netstat -lp

可以看到有下面一條內容,

tcp        0      0 *:766                       *:*                         LISTEN      3128/rpc.statd

說明是 rpc.statd 正在運行。

766是什麼命令執行的監聽埠的另外一個辦法

[root@localhost linsc]# lsof -i:766

COMMAND    PID    USER   FD   TYPE DEVICE SIZE NODE NAME

rpc.statd 3128 rpcuser    8u  IPv4   6467       TCP *:766 (LISTEN)

查看rpc.statd這個命令是那個安裝包的文檔

[root@localhost linsc]# rpm -qf /sbin/rpc.statd

nfs-utils-1.0.6-80.EL4

查看nfs開頭有那些東東 ?

[root@localhost linsc]# ls /etc/init.d/nfs*

 /etc/init.d/nfs  /etc/init.d/nfslock

查看nfslock狀態

[root@localhost linsc]# /etc/init.d/nfslock status

rpc.statd (pid 3128) 正在運行...

[root@localhost linsc]# vi /etc/services

找到裡面的 nfs ,在前面加 # 注釋掉,重啟,

[root@localhost linsc]# nmap 127.0.0.1

Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2007-12-05 21:55 CST
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1653 ports scanned but not shown below are in state: closed)
PORT     STATE SERVICE

21/tcp   open  ftp
22/tcp   open  ssh
25/tcp   open  smtp
80/tcp   open  http
3306/tcp open  mysql
8009/tcp open  ajp13
8080/tcp open  http-proxy

Nmap run completed -- 1 IP address (1 host up) scanned in 0.194 seconds

Centos 關閉 IPv6

Centos 關閉 IPv6


看linux上開了哪些port service 與 是否IPv6有開啟 ?

netstat -ntlp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name  
tcp        0      0 127.0.0.1:199               0.0.0.0:*                   LISTEN      1397/snmpd         
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      1592/mysqld        
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1623/sendmail: acce
tcp        0      0 :::80                       :::*                        LISTEN      1641/httpd         
tcp        0      0 :::22                       :::*                        LISTEN      1429/sshd     


其中
tcp        0      0 :::80                       :::*                        LISTEN      1641/httpd         
tcp        0      0 :::22                       :::*                        LISTEN      1429/sshd

為 IPv6

如不需要該如何關閉 ?

step1
檢查NETWORK是否關閉 ?

vim /etc/sysconfig/network

NETWORK_IPV6=no

step2
modprobe.conf 添加 net-pf-10 ipv6
vim /etc/modprobe.conf

alias net-pf-10 off
alias ipv6 off

step3
關閉ip6tables

/etc/init.d/ip6tables stop
chkconfig ip6tables off

reboot

See also
How to diable IPv6 on Centos 6.x or RHEL 6.x

CentOS 6 自動掛載 NTFS

CentOS 6 自動掛載 NTFS


1. 先在 CentOS 裡面安裝 EPEL ,為了讓 yum 可以下載/更新 ntfs-3g

[教學] 在 CentOS 中 安裝 EPEL
EPEL 全名叫做 Extra Packages for Enterprise Linux,如果你時常使用 yum 來安裝 Linux 的套件的話,你一定要安裝 EPEL,因為很多套件都只有 EPEL 有提供,舉例來說,我一開始要安裝 xrdp (安裝 xrdp 後可用 windows 7 來遠端桌面) 時,用 yum install xrdp 找不到任何套件,在原始的CentOS中,執行 yum update 只有

* base: ftp.twaren.net
* extras: ftp.twaren.net
* updates: ftp.twaren.net


這三個,

查了之後,發現安裝 EPEL 後,幾乎所有套件都可以直接從 yum 安裝,而安裝 EPEL 後,就可以找到 xrdp 並安裝完成,所以安裝EPEL可以得到很多 RHEL/CentOS 的免費套件,
而要如何安裝EPEL呢?

在EPEL的官網 可以找到說明文件,
而親自安裝後有些小心得提供給大家,以下皆須使用root來執行

第一,先了解你的系統是安裝CentOS 5 還是 6,
# cat /etc/redhat-release

然後在查是安裝 32bit 還是 64 bit
# uname -a

會顯示 i386(32bit) 或 x86_64(64bit)

第二,開始安裝 EPEL

有四種可能:

CentOS 6 64bit : http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm
CentOS 6 32bit : http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm
CentOS 5 64bit : http://download.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
CentOS 5 32bit : http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

選擇你的版本,不要選錯了,

如果沒有合適的版本,或是後有更新的版本的話,
請到 mirror list 中找合適的版本,在台灣的話就用 hinet 提供的 mirror 去找合適的EPEL

之後就可以直接用 rpm 來安裝 (以CentOS 6 64 bit 為例)
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm
網址換成你下載的檔案或你的版本的網址即可,這樣就完成了

馬上試試看
# yum update
(或 yum install 你需要的套件)

看有沒有跑出

* base: ftp.twaren.net
* epel: mirror01.idc.hinet.net
* extras: ftp.twaren.net
* updates: ftp.twaren.net


如果多了* epel: … 就表示成功了。

2. 使用 yum 以 epel 安裝 ntfs-3g
#yum install ntfs-3g

3.搜尋Fedora 13的ntfs-config套件,下載「ntfs-config-1.0.1-8.fc13.i686.rpm」版本
#wget http://download.fedora.redhat.com/pub/fedora/linux/releases/13/Everything/i386/os/Packages/ntfs-config-1.0.1-8.fc13.i686.rpm

#rpm -ivh ntfs-config-1.0.1-8.fc13.i686.rpm
4.執行ntfs-config
#ntfs-config

勾選「Enable write support for external device」

如果下方顯示有已偵測到的裝置,才可勾選「Enable write support for internal device」

最後勾選的步驟關係著能不能自動偵測掛載。

**參考資料**:

http://airnote.istory.tw/2012/03/centos-epel.html

http://www.nbox.tw/index.php/articles/content/137

Windows開機時掛載程序 Regedit註記檔操作方式

Windows開機時掛載程序 Regedit註記檔操作方式


Windows 開機時執行掛載的程序 就是指消耗Windows的系統資源[類似生產線工單][roy1103 個人式說明 非正式解釋]

這份文件 對 目前 木馬 kavo kxvo 效果不佳[很差]
但是 kxvo 一類 在 msconfig 會秀出程序 [且隱藏檔案無法顯示!200902 月後消失] 同樣 程序 內容會變
kxvo 預防 可以 刪除 inf 安檔案類型 減少風險!
請考慮使用 [Autoruns ][Proce XP]等工具又方便又直觀!

[Autoruns]
http://technet.microsoft.com/zh-tw/sysi ... 63902.aspx
『作者 ROY1103 歡迎轉載 但是 請保持原作之完整性!』

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

[適合使用Windows 之 版本 Windows NT 2K 2KServer XP Home Pro 2k3Server ]
 [因為Win98 WinMe 已經較少使用 如果需要 使用 regedit 後就使用搜索 找 RUN 或是下列 字串 既可 ]

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

◎ 『regedit 之使用 如果亂刪除或修改、會使使用者系統毀損[無法開機]!下場是重新安裝』◎ 

【非資訊人員不建議使用!】

參考
Microsoft Windows 登錄說明 中英 甚麼是 Regedit
http://forum.icst.org.tw/phpBB2/viewtop ... 1067#21067

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

您如何瞭解或想提供 regedit 註記檔的 run 也就是 windows 開機時 [跑 run] 「執行」 的程式;

該如何操作呢!

[開啟登錄編輯程式.操作方式:]
1.使用滑鼠點選開始[上方]>執行,
2.在[執行]工作視窗內 輸入 REGEDIT , 然後按下 Enter .
3.在左側視窗中, 滑鼠雙擊下述路徑:
HKEY_LOCAL_MACHINE > Software > Microsoft > Windows > CurrentVersion > Run

方式:
1.點選[開始]上方=>[執行]
2.輸入regedit 然後 按下 [Enter]
3.尋找下列路徑
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\run
4.右邊視窗中 = Windows 開機時執行掛載的程序

您可以先點選全部匯出 當 備份; [備份一定要先做.]

或是 可以 在 [執行][英文版 是 (run)] 輸入 regedit [按下「Enter」 鍵] 將
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
之字串 輸出 貼上

"IMJPMIG8.1"="C:\\WINDOWS\\IME\\imjp8_1\\IMJPMIG.EXE /Spoil /RemAdvDef /Migration32" "PHIME2002ASync"="C:\\WINDOWS\\System32\\IME\\TINTLGNT\\TINTSETP.EXE /SYNC"
"PHIME2002A"="C:\\WINDOWS\\System32\\IME\\TINTLGNT\\TINTSETP.EXE /IMEName"

此三行是 Xp 預定

"ccApp"="\"C:\\Program Files\\Common Files\\Symantec Shared\\ccApp.exe\""
"vptray"="C:\\PROGRA~1\\SYMANT~1\\SYMANT~2\\VPTray.exe"

這是 symantec 的

其實您可以把字串之數值 "ccApp.exe"
比方 "ccApp.exe" 是 symantec 的 防毒程式;

"ShStatEXE"="\"C:\\Program Files\\Network Associates\\VirusScan\\SHSTAT.EXE\" /STANDALONE"
"McAfeeUpdaterUI"="\"C:\\Program Files\\Network Associates\\Common Framework\\UpdaterUI.exe\" /StartedFromRunKey"

macfee 防毒

"Zone Labs Client"="\"C:\\Program Files\\Zone Labs\\ZoneAlarm\\zlclient.exe\""
ZoneAlarm 防火牆軟體的程式;

runoence 是指執行一次 下次會看不到 ;
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
跑服務 一併檢查

不熟悉在 regedit 尋找位置 就使用搜索 在搜出 輸入三個字 RUN 既可
移除登錄編輯程式中自動啟動的機碼可防止惡意程式在開機的時候自動執行.
當然不只是這裡 需要檢查

木馬可能藏匿之註冊表清單


1. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

2.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

3.HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce

4.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

5.HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnceSetup

6.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceSetup

7.HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices

8.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices

9.HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce

10.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce

11.HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run

12.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run

13.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit

14.HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\WinLogon

15. HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Explorer\Shell Folders

16. HKEY_CLASSES_ROOT\txtfile\shell\open\command

17. HKEY_CLASSES_ROOT\Briefcase\shell\open\command

18. HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\

19. HKEY_CLASSES_ROOT\exefile\shell\open\command

20. HKEY_CLASSES_ROOT\???file \shell\open\command (???)表示可能為任何副檔名之名稱

沒有安裝 Notor AntiVirus 當然沒有、字串每家 AntiVrius防毒 軟體 soft 也不相同;

-------------------------------------------------------------------------------------------------------------------
相關工具 :
RegEditX 「加強版」登錄檔編輯程式 By Tony
http://forum.icst.org.tw/phpBB2/viewtopic.php?t=3487
好用的工具 因為使用過會記憶 下次不需要搜索

【非資訊人員不建議使用!】

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

不要隨便對自己的電腦 使用 非官方授權之軟體 尤其是效能調整一類,因為電腦可能會變的更糟糕!!!
電腦系統若是有異常 不如在電腦新增加一個 使用者 帳號 試試 在把資料 轉移就好 !



※上述的機碼都是指具有實體(instance),能夠單獨執行的程式(.exe)
    但現在的木馬通常是以dll或是hook的形式存在,不容易發覺 ,而跟dll或是hook啟動相關的機碼如下

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows]
"AppInit_DLLs"=""


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options]

Linux常用基本指令詳解

Linux常用基本指令詳解


Linux常用基本指令介紹
alias指令(替指令取別名):
alias 列出目前系統所使用的所有指令別名
alias 別名=Linux 指令名稱 此時若輸入「別名」則功能會跟輸入「Linux 指令名稱」相同
若想要每次開機都使用此別名,在 bash 中,一定要在 .bashrc 中指定,如果是 tcsh 中,則要在 .cshrc 中指定

——————————————————————————-

ar指令(將許多檔案備存成一個或多個檔案)
ar -rcv 備存檔名 欲備存檔名1 欲備存檔名2 …
將「欲備存檔名1 欲備存檔名2 …」及所有您指定的檔案,備存至「備存檔名」中。
參數 -r:在新加入組成檔時,檢查備存檔案中的組成黨,如果重複的話,就取而代之。
參數 -c:建立備存檔案。
參數 -v:顯示詳細資訊。
ar -t 備存檔名 列出「備存檔名」中之檔案名稱
ar -x 備存檔名 取出「備存檔名」中所有檔案
ar -x 備存檔名 備存檔中檔案之檔名 取出「備存檔名」中某些檔案

——————————————————————————-

 bg指令(將程式置於背景執行)
如果您執行的程式很多的話,可以在執行程式時,按下「Ctrl + z」暫停程式,
然後利用指令「jobs」查詢該工作之編號
bg 工作編號 將「工作編號」之工作置於背景執行
fg 工作編號 將「工作編號」之工作置於前景執行

——————————————————————————-

bc指令(簡易計算機)
quit 離開 bc

——————————————————————————-
clear指令
清空畫面
畫面東西太多、太雜了,不妨試試這個指令

——————————————————————————

cmp指令(列出兩個檔案的文字內容第一個相異處)
cmp 檔名1 檔名2 若輸入此指令,電腦會將「檔名1、檔名2」中第一個字元相異處列印出來

——————————————————————————

cp指令(複製檔案):
cp 檔名1 檔名2 複製「檔名1」至「檔名2」,若「檔名2」原本就存在,將會被覆蓋
cp -r 資料夾名1 資料夾名2 複製「資料夾名1」至「資料夾名2」

——————————————————————————–

df指令(檢視電腦硬碟使用情形)
df -h 以較易閱讀的方式列出資料

——————————————————————————–

diff指令(比較兩個檔案的文字內容有何不同處)
diff 檔名1 檔名2 若輸入此指令,電腦會將「檔名1、檔名2」中有字元相異的那行列印出來

——————————————————————————–

du指令(取得資料匣大小)
du 資料夾路徑 取得該「資料匣路徑」中所有目錄 (包含其下子目錄) 的資料匣大小
du -s 資料匣路徑 取得該「資料匣路徑」的資料匣大小 (不包含子目錄)
du -h 資料匣路徑 以較易閱讀的方式顯示該「資料匣路徑」的資料夾大小 (不包含子目錄)

——————————————————————————-

fg指令(將程式置於前景執行)
相對於指令「bg」,此指令用來將程式置於前景執行
可利用指令「jobs」查詢該工作之編號。
fg 工作編號 將「工作編號」之工作置於前景執行

——————————————————————————-

free指令(查看記憶體使用狀況)
-m 以 MB 為單位
-t 顯示記憶體總合
-s 秒數 每隔「秒數」顯示一次記憶體狀況

——————————————————————————–

grep指令(搜尋檔案中的字串)
grep “字串" * 搜尋此層目錄中,包含「字串」的所有檔案,若「字串」中的英文字元大小寫不同,將被視為不同字串
grep -i “字串" * 搜尋此層目錄中,包含「字串」的所有檔案,若「字串」中的英文字元大小寫不同,將被視為相同字串
grep -r “字串" ./ 遞迴搜尋此層目錄包含其下所有子目錄中,包含「字串」的所有檔案,若「字串」中的英文字元大小寫不同,將被視為不同字串

——————————————————————————–

history指令(列出曾經使用過的指令)
!編號 可執行 history 中該編號的指令
history 數字 可列出最近「數字」項指令
history -d 編號 可刪除該「編號」的指令
history -c 刪除 history 中所紀錄的所有指令

——————————————————————————–

ifconfig指令(設定及檢視網路介面)
ifconfig 列出系統中所有的網路卡介面及其相關設定,包含 IP address, MAC address 等資訊
ifconfig 網路介面 IP位址 設定「網路介面」的 IP 位址為「IP位址」,如:ifconfig eth0 192.168.0.3,即是設定 eth0 的 IP 位址為 192.168.0.3
ifconfig 網路介面 netmask IP位址 設定「網路介面」的子網路遮罩為「IP位址」,如:ifconfig eth0 255.255.255.0,即是設定 eth0 的子網路遮罩為 255.255.255.0
其他與網路相關的設定,若您是使用 Fedora Linux Distribution,可至 /etc/sysconfig/networking/profiles/default/ifcfg-eth0 檔案中設定,該設定檔中,若 BOOTPROTO=dhcp 表示此電腦要使用 DHCP 自動取得 IP 位址,若要自己指定 IP 位址,則 BOOTPROTO 必須要設定成 static (即 BOOTPROTO=static); 另外,還有些較常用參數,像是 IPADDR=IP位址,NETMASK=子網路遮罩位址,以及 GATEWAY=預設閘道等都可在此設定檔中做設定,待設定完畢存檔後,便可透過 ifdown 和 ifup 指令重新啟用網路介面套用新的設定值。

——————————————————————————-

ifdown指令(停止網路介面運作)
此指令用可與 ifup (啟動網路介面) 配合使用
ifdown eth0 停止「eth0」網路介面運作

——————————————————————————

ifup指令(啟動網路介面)
此指令用可與 ifdown (停止網路介面運作) 配合使用
ifup eth0 啟動「eth0」網路介面

—————————————————————————–
kill指令(終止系統中的執行緒proces)
此指令可配合 ps 指令使用,先利用 ps 指令查詢欲終止 process 的 PID,再利用 kill 指令終止該 process
kill -9 PID 終止系統中編號為「PID」的 process

——————————————————————————–

ln指令(建立檔案或目錄的連結檔)
若修改透過 ln 指令建立出來的連結檔,原本的檔案內容也會跟著改變
ln 檔名 連結檔名稱 建立「檔名」的硬連結檔,而該連結檔名為 「連結檔名稱」
ln -s 檔名 連結檔名稱 建立「檔名」的符號連結檔,而該連結檔名為 「連結檔名稱」
——————————————————————————–

ls指令(列出該資料夾的檔案名稱)
ls 列出資料匣中檔案的檔案名稱
ls 檔名 只列出「檔名」的資料
ls 資料匣名稱 列出「資料匣名稱」內的資料
ls -l 列出檔案的詳細介紹,包含有存取權限、檔案擁有者、內含字元總數、最後更動檔案時間及檔名…等
ls -t 依「最後更動檔案時間」排序,由最近排至最久
ls -r 與原本排序相反地(reverse)排列
依此類推,則 ls -rtl 為列出所有檔案的詳細資料,並用「最後更動檔案時間」排序,方法為最久排至最近

——————————————————————————-

lsmod指令(列出目前 linux kernel 中所有 modules 的狀態)
可透過此指令檢視系統中目前安裝了那些 modules

——————————————————————————–

maile指令(個人信件工具)
在命令列輸入 mail 即可進入 mail 程式內收發信件
若想寫信給他人,則在命令列輸入 mail 收信者帳號 ,即可發送信件給「收信者」
若想將既有的文字檔當成信件內容寄給他人,則在命令列輸入 mail 收信者帳號 -s 信件主題 < 文件檔名稱
即可將「文件檔名稱」發送給「收信者」
在 mail 程式中
輸入 ? 查詢所有指令
輸入 h 列出所有信件
輸入 t 閱讀信件
輸入 n 閱讀下一封信件
輸入 d 刪除信件
輸入 u 救回刪除信件
輸入 R 回覆信件
輸入 m 收信者帳號 發送信件給「收信者」
輸入 q 離開 mail 程式,並將閱讀過的所有信件存至「mbox」檔案
輸入 x 離開 mail 程式

——————————————————————————-

man指令(列出 Linux 主要的說明檔)
man 區段清單 說明的主題 列出關於「說明的主題」之相關訊息

區段清單 1:使用者指令 2:系統呼叫 3:程式庫呼叫 4:裝置 5:檔案格式 6:遊戲 7:雜項 8:系統指令 9:核心內部指令

——————————————————————————-

mv指令(移動檔案/更改檔名)
mv 檔名1 檔名2 移動「檔名1」至「檔名2」,若「檔名2」原本就存在,將會被覆蓋

——————————————————————————-

netstat指令(檢視目前電腦網路連線情況)
netstat -a 列出電腦中 listening 和 non-listening 的連線
netstat -n 列出電腦現有的連線時,列出 IP 位址就好,不必列出 domain name
netstat -t 列出電腦中現有的 TCP 連線
netstat -u 列出電腦中現有的 UDP 連線

——————————————————————————

ntsysv指令(設定系統開機時要自動啟動的服務)

—————————————————————————–

passwd指令(設定密碼)
passwd -d 使用者名稱 刪除「使用者名稱」之密碼
passwd -l 使用者名稱 鎖住「使用者名稱」之帳號,使之失效

—————————————————————————–

ps指令(列出系統中 processes 的執行狀況)
ps -f 列出 processes 的完整資訊,包含 UID (User ID)、PID (Process ID)、PPID (Parent Process ID) 等資訊
ps -A 列出系統中所有的 processes

—————————————————————————–

rm指令(刪除檔案)
rm 檔名 刪除「檔名」
rm -r 資料夾名 刪除「資料夾名」

—————————————————————————-

rpm指令(RPM 套件管理員package manager)
要安裝新的軟體,不妨先上網找找看是否有已經包裝好的 RPM packet,若找的到,則安裝軟體的過程就方便多了
rpm -q 套件名稱 查詢目前系統中是否有安裝「套件名稱」這個套件
rpm -ivh 套件名稱 安裝名為「套件名稱」的套件於系統中,並在安裝過程中顯示文字訊息
rpm -u 套件名稱 升級系統中名為「套件名稱」的套件
rpm -e 套件名稱 解除安裝系統中名為「套件名稱」的套件

——————————————————————————

sort指令(將文字檔案內容排序並印出)
sort 檔名 將文字檔案「檔名」內容排序並印出(由小至大排序)
sort -r 檔名 將文字檔案「檔名」內容排序並印出(由大至小排序)
sort -f 檔名 將文字檔案「檔名」內容排序並印出(不管字元之大小寫,由小至大排序)

——————————————————————————

su指令(切換登入身份)
su 切換登入身份到 root
su -l 使用者帳號 切換登入身份到「使用者帳號」
su -c “指令" 以 root 的權限執行「指令」

——————————————————————————

tail指令(列出文字檔案尾端內容)
tail 檔名 列出「檔名」最後十行
tail -n 檔名 列出「檔名」最後 n 行
tail +n 檔名 從 n 行開始列出「檔名」到最後

—————————————————————————–

tar指令(建立/解開 .tar 壓縮檔)
tar -cvf 封裝檔名稱.tar 資料匣名稱 將 「資料匣名稱」 封裝成為 「封裝檔名稱.tar」檔案
tar -czvf 壓縮封裝檔名稱.tar.gz 資料夾名稱 將 「資料夾名稱」 壓縮成為 「壓縮封裝檔名稱.tar.gz」壓縮檔
tar -cjvf 壓縮封裝檔名稱.tar.bz2 資料夾名稱 將 「資料夾名稱」 壓縮成為 「壓縮封裝檔名稱.tar.bz2」壓縮檔
tar -xvf 檔名.tar.gz 解開 「檔名.tar」封裝檔
tar -xzvf 檔名.tar.gz 解開 「檔名.tar.gz」壓縮封裝檔
tar -xjvf 檔名.tar.bz2 解開 「檔名.tar.bz2」壓縮封裝檔

—————————————————————————-

top指令(列出目前系統中正在執行的工作,以及每個工作所分配到的記憶體空間與CPU使用百分比)

——————————————————————————–

useradd指令(建立使用者帳號)
useradd 新使用者帳號 建立 「新使用者帳號」於此 Linux 系統中

——————————————————————————–

vim指令(開啟編輯文字檔程式)
指令模式下輸入 vi 檔名 或 vim 檔名 即可進入 VIM 程式

——————————————————————————–

wc指令(計算文件檔之行數、字數及字元數word-counting)
wc 檔名若輸入此指令,則電腦會列出「檔名」內文字之行數、單字數及字元數
wc -l 檔名列出「檔名」內文字之行數
wc -w 檔名列出「檔名」內文字之單字數
wc -m 檔名列出「檔名」內文字之字元數
wc -L 檔名列出「檔名」內最長那行文字所包含的字元總數
——————————————————————————

whereis指令(查詢指令執行檔所在位址)
whereis 指令名稱查詢 指令名稱 所在目錄

—————————————————————————–

who指令(列出線上所有的使用者)
若想知道自己是誰,可利用指令 whoami 來查詢

——————————————————————————–


2012 10 26  補充


1. true > 檔名,清空該檔案


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

2. at,單次排程指令
at 06:30 2009-08-19  <==排定時間於2009年8月19日上午6:30執行
at> /bin/sync <==執行暫存資料回存(如RAM中及swap中的資料)
at> /sbin/shutdown -h now <==立刻關閉主機
at> <EOT> <==結束該排程(按ctrl + D)
at -c 5 <==顯示工作5的詳細資料

atq <==顯示目前已排程的工作

atrm <==刪除已排程的工作
atrm 5 <==刪除工作5

batch <==在系統有空時再執行,與at 寫法相同
資料來源:鳥哥的Linux私房菜


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

3. find 指令使用
 find ./ -type d | wc ==>算出本資料匣中,有幾個資料匣
 find ./ -type f | wc ==>算出本資料匣中,有幾個檔案
 find ./ | wc ==>算出本資料匣中,資料匣與檔案總數
感謝不明大大指導
 find ./ -name public_html ==>列出本資料匣中,檔名(or目錄)為public_html
 find / -mtime 0 ==> 找出24小時內/ 有變動的檔案
 find / -mtime 3 ==> 找出前三天24小時內 / 有變動的檔案
 find / -mtime -3 ==> 找出前三天至現在 / 有變動的檔案
 find / -mtime +3 ==> 找出三天前 / 有變動的檔案
 find /home -user towns ==> 找出在/home之下,擁有者為towns 的檔案
 find / -nouser ==> 找出在 / 下,無擁有者的檔案
 find / -name passwd ==> 找出在 / 下,檔名為passwd的檔案
 find /var -type s ==> 找出在 / 下,檔名屬性有S的檔案
 find / -perm +7000 ==> 找出在 / 下,檔名屬性有 SGID 或 SUID 或 SBIT的檔案
 find / -size +1000k ==> 找出在 / 下,檔案大於1mb的檔案
 find / -type f \(-name '.*'\) ==> 找出在 / 下的隱藏檔案
資料來源:鳥哥 第七章、Linux 檔案與目錄管理
其他資料:http://blog.xuite.net/akuox/linux/23198310 碎大的blog,有說明find指令使用方式
http://blog.miniasp.com/post/2010/08/27/Linux-find-command-tips-and-notice.aspx 保哥是很強的


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

4. scp(ssh copy)加密的檔案傳送
語法 scp [source] [destination]
範例 scp /var/named/*.hosts *.re towns@192.168.1.54:/home/towns/
由本地端將目錄/var/named/下的*.hosts *.re copy到(使用towns帳號)192.168.1.54主機 /home/towns/ 目錄下
連目錄同時copy,加 -r 參數
範例 scp -r towns@192.168.1.28:/home/towns /home/


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

5. tail 由檔尾顯示部分文字檔
tail -n 10 /var/log/messages <==顯示messages檔最後10行文字
tail -f -n 100 /var/log/messages <==持續顯示messages檔最後100行文字,可用來做監控用途

混合應用
du -h |grep tail -n 1 <== 顯示該資料匣使用的空間


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

6. head 由檔頭示部分文字檔
head -n 10 /var/log/messages <==顯示messages檔前10行文字

混合應用
top | head -n 12 | tail -n 5 <==抓出top前12 行資料,並顯示後五行資料
資料來源:http://forum.icst.org.tw/phpbb/viewtopic.php?t=17814


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

 7. tar 壓縮指令
tar -czvf zone_backup.tar.gz /var/named <==產生(c)zone_backup.tar.gz 包裝檔,壓縮(z)/var/named資料匣,列出詳細(v)資料,顯示檔案(f)

tar -xzvf zone_backup.tar.gz <==解開(X)zone_backup.tar.gz 包裝檔,解壓縮(z)zone_backup.tar.gz檔,列出詳細(v)資料,顯示檔案(f)

tar -cjvf zone_backup.tar.bz2 /var/named <==產生(c)zone_backup.tar.bz2 包裝檔,壓縮(z)/var/named資料匣,列出詳細(v)資料,顯示檔案(f)

tar -xjvf  zone_backup.tar.bz2 <==解開(X)zone_backup.tar.bz2 包裝檔,解壓縮(z)zone_backup.tar.bz2檔,列出詳細(v)資料,顯示檔案(f)

相關資料:http://topic.csdn.net/t/20040103/21/2630302.html


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

 8. zip 壓縮指令
zip -r abc.zip ./abc <==將該層abc資料匣,壓縮到abc.zip檔中(含子目錄)
unzip abc.zip    <==將abc.zip解開


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

9. 硬體相關指令
lspci==>可以看出各晶片的資料,-v詳細資料
lspci -v ==>可以看出各晶片的資料及主機版資源使用情形
lsmod==>列出核心模組,如usb(uhci_hcd、ehci_hcd增強模組)等等……
modprobe ==>新增或移除核心模組
modinfo==>列出模組資訊,modifo uhci_hcd,可以查到usb的情形
hdparm==>可以看出硬碟的讀取速度、使用模式、設定模式及速度測試,如UDMA
/proc 這個資料匣,全部都是硬體資訊
ip link<==可以查看網路卡的使用及順序
dmidecode <==可詳細列出硬體資訊
lshw <==可詳細列出硬體資訊,需安裝lshw套件
iostat <==可測硬體IO效能,需安裝sysstat套件

例1:
hdparm -t /dev/mapper/VG00-LV00 <==測試VG00-LV00這個paptition的讀取速度
/dev/mapper/VG00-LV00:
 Timing buffered disk reads:   62 MB in  3.07 seconds =  20.22 MB/sec
測試得到該分割區的讀取速度為 20.22 MB/sec

例2:
iostat <==顯示CPU及HD的IO的讀取效能,由ips值,可得知該磁碟(區)每秒傳送的次數
Linux 2.6.18-194.el5 (centos55)         12/13/10

avg-cpu:  %user   %nice %system %iowait  %steal   %idle  <==顯示目前CPU使用情形
                2.35      0.02    4.03        2.25       0.00      91.35

Device:        tps        Blk_read/s     Blk_wrtn/s   Blk_read   Blk_wrtn
sda              9.71      802.69           52.41          663024     43294
sda1            0.09      2.60               0.02            2150         14
sda2            9.60      799.72           52.40          660570     43280
dm-0            50.84    798.18           52.40          659298     43280
dm-1            0.14      1.08               0.00            896           0
tps:平均每秒鐘的傳送次數
Blk_read/s:開機到現在平均的讀取單位
Blk_wrtn/s:開機到現在平均的寫入單位
Blk_read:開機到現在,總共讀出來的檔案單位
Blk_wrtn:開機到現在,總共寫入的檔案單位


資料來源:鳥哥的Linux私房菜


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

10. split <==檔案切割指令
split -b 10m displaysearch dis <==將displaysearch這個文字檔案以10MB為一個單位切割
split -l 1000 displaysearch dis <==將displaysearch這個文字檔案以1000行為一個單位切割
split -C 10m maillog.1 maillog <==將maillog.1這個文字檔案以最大10MB為一個單位切割,行不會被切斷


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

11. dmesg <==顯示開機/頁面顯示訊息,可以看到系統做了什麼事


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

12. kill
kill -9 [PID number] 強制停止 <==不論完不完成,強制停止
kill -15 [PID number] 程序終止 <==會等待程序完成

Linux 指令: kill 常用參數
Kill 算是基本且常用的指令(送一個信號給 process), 但是在 kill 一個 process(程序)有很多優雅的方法, 不要每次都暴力的 -9 來砍掉, 以下來列幾個參數, 不得已再來用 -9 砍吧 :)

指令: kill -Num ProcessId(pid)
信號簡稱 數值 代表意義
HUP 1 控制中的終端/程序中斷
INT 2 鍵盤的插入指令(同 Ctrl + C)
QUIT 3 鍵盤的中斷指令(同 Ctrl + \)
TERM 15 程序的終止指令
KILL 9 程序的強制終止指令(暴力砍掉)
CONT 18 程序的再啟動指令(STOP(19) 後再重新啟動)
STOP 19 程序的停止指令(同 Ctrl + Z)

一般如果關機的話, 系統是會先送 TERM(15) 的訊號來終止 process, 不行才會送 KILL(9) 來終止程式.
資料來源:不好意思,towns已經忘了資料來源了


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

 13. crontab 循環排程,提供重複性的排程工作
vi /etc/crontab  ==> 直接編輯檔案,用於系統固定排程工作
crontab -e ==> 編輯目前登入者的循環工作
crontab -u towns -l ==> 查看使用者towns的排程工作(只有root 可使用 -u)
crontab -l ==> 列出目前登入者的循環工作
crontab -r ==> 移除目前登入者所有的循環工作
/var/spool/cron/ ==>所有帳號設定循環工作的設定檔存放位置
詳細資料:http://linux.vbird.org/linux_basic/0430cron.php#cron(鳥哥網站)


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

14. cp指令
cp -r /mnt/cdrom /tmp/ <==將/mnt/cdrom整個目錄備份到/tmp/(會自動生目錄)
cp -p <==保留檔案屬性(包含mod、own、selinux等)
cp -r /mnt/cdrom/. /tmp/ <==將/mnt/cdrom/所有檔案及子目錄備份到/tmp/


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

15. 帳號密碼管理指令
pwck
pwconv 分開帳號密碼檔(passwd 及 shadow)
pwunconv 合併帳號密碼檔(passwd 及 shadow)
參考資料:
http://ithelp.ithome.com.tw/question/10039061?tag=nl.daily
鳥哥 第十四章、Linux 帳號管理與 ACL 權限設定


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

16. iptstate -- IPTables State 即時監控 TCP/IP 協定,可以監控Linux 系統Port、IP使用情形


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

17. RPM 指令
 rpm -ivh yum-2.2.2-0.fc3           <==安裝yum-2.2.2-0.fc3 套件
 rpm -e yum-2.2.2-0.fc3              <==移除yum-2.2.2-0.fc3 套件
 rpm -qa |grep yum                      <==查詢是否有安裝 *yum* 套件
 rpm -ql yum-2.2.2-0.fc3             <==列出yum-2.2.2-0.fc3 套件所有相關的目錄及檔案
 rpm -qf /etc/yum.conf                  <==反查/etc/yum.conf 檔案是由那個套件產生
 rpm -qc yum-2.2.2-0.fc3             <==列出yum-2.2.2-0.fc3 套件所有設定檔存放位置
 rpm -qd yum-2.2.2-0.fc3             <==列出yum-2.2.2-0.fc3 套件所有說明檔存放位置
 rpm -qpR yum-2.2.2-0.fc3          <==查詢yum-2.2.2-0.fc3 套件相依性資訊,該檔案必須存在
 rpm -qR yum-2.2.2-0.fc3            <==查詢yum-2.2.2-0.fc3 套件相依性,該套件必須已安裝
 rpm -Uvh yum-2.2.2-0.fc3           <==升級套件。系統中有該套件時,執行升級動作,無該套件時,執行安裝動作
 rpm -Fvh yum-2.2.2-0.fc3            <==升級套件。系統中有該套件時,執行升級動作,無該套件時,則不安裝
 rpm -ivh yum-2.2.2-0.fc3 --test    <==僅測試套件,並不實際安裝
 rpm --rebuilddb                               <==重建rpm資料庫,移除套件時建議使用
 rpm -ivh yum-2.2.2-0.fc3 --nodeps  <==強制安裝套件,不管相依性問題
 rpm -e yum-2.2.2-0.fc3  --nodeps    <==強制移除套件,不管相依性問題
 rpm -qi yum-2.2.2-0.fc3 <==列出套件資訊,該套件必須已安裝


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

18. 關於帳號、密碼、群組檔案說明
帳號:passwd
帳號名稱:密碼(轉移到/etc/shadow):UID:GID:使用者資訊說明欄:家目錄:Shell
abc:x:500:500::/home/abc:/bin/bash

密碼:shadow
帳號名稱:密碼(加密後):最近更動密碼的日(1970年起,用日算):密碼不可被更動的天數:密碼需要重新變更的天數:密碼需要變更期限前的警告期限:密碼過期的恕限時間:帳號失效日期(需以1970年算起):保留
abc:!!:13658:0:99999:7:::

群組:group
群組名稱:群組密碼:GID:此群組支援的帳號名稱:
abc:x:500:

資料來源:鳥哥的Linux 私房菜 -- Linux 帳號管理與 ACL 權限設定

使用指令改變shadow中帳號時間設定
passwd -x 180 test <== 變更 test 帳號第五欄時間(密碼最大存活時間)
passwd -n 10 test <==變更 test 帳號第四欄時間(密碼最小存活時間)
passwd -w 10 test <==變更 test 帳號第六欄時間(密碼到期警告時間)
passwd -i 10 test <==變更 test 帳號第七欄時間(密碼過期寬恕時間)
passwd -d towns <==刪除towns的密碼
passwd -l towns<==鎖住towns的密碼,這樣towns就無法使用ssh登入了(在shadow密碼欄加“!!”)
passwd -u towns<==解開towns密碼的鎖定(在shadow密碼欄減“!!”)
passwd -f <==忽略
passwd -S towns <==查尋towns帳號狀態,主要為說明密碼編碼方式

補充:
鎖住及解開使用者帳號還可以用 usermod -L 及 usermod -U(在shadow密碼欄加及減“!”)



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

19. 啟動設定檔,當 towns 安裝了程式需要開啟動時,除了將他寫入 service 中,還可以將該程式的script 檔,放到 /etc/rc.d/rc.local 檔中,當所有的系統需求程式都載入後,在rc.local中指定的程式也會跟隨啟動


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

20. touch 指令
touch -d '2010-08-05 10:13:45' abc.txt  ==>變更abc.txt (-d)檔案更新時間為 2010-08-05 10:13:45


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

21. 原來,除了yum安裝指令用來安裝系統套件,還有一個指令pear,也可以用來安裝pear本身需要的套件

1.必要條件
需有安裝php-pear 這個套件,該指令才能使用

2.參數(詳細說明請使用pear help 查看)
pear install Auth_SASL <==線上安裝Auth_SASL 套件
pear list  <==列出所有由pear安裝的套件
pear channel-update pear.php.net <==更新pear.php.net 資料


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

 22. RPM 套件的查找
RPM Search:http://rpm.pbone.net/,可以使用套件中的特定檔案(如***.so)來找出需求套件,打套件名稱會找不到
RPMfind:http://rpmfind.net/,可直接打入套件名稱,找出相關套件


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

23. 共同開發環境
在windows 中,towns可以將特定的使用者加入指定的資料匣並管理該資料匣內的資料,在linux中也可以做到,就是使用UPG(User Private Group)功能,這個功能的管理非常容易,只需要使用幾個簡單的指令就能達到,下面以範列來說明
gpasswd <group>
gpasswd -a <user> <group>
gpasswd -A <user> <group>
gpasswd -d <user> <group>
gpasswd -r <group>
gpasswd -R <group>


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

24. 安裝nmap工具
這個工具是用來掃瞄主機開放了那些 Port,對於安全性來說是一個很棒的工具
套件:nmap*.rpm


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

25. 舊版Linux(如RH9)系統 pop3的管理方式
舊版linux系統(如 RH9)ipop3管理位置
於/etc/xinetd.d/ipop3,加入disable = yes


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

26. 關於date指令的使用說明
date -R ==>顯示目前時區
date 062016322011 ==>修改主機時間為2011年06月20日16時20分
http://www.cnblogs.com/h2appy/archive/2008/11/27/1342029.html


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

27. 擴大LV的方式
詳見 Linux LVM管理 -- 擴大與縮小LV空間 一文


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

28. Linux主機名稱
一般在 towns 在主機設定完成後,才會去設定主機名稱,但這次有一台主機自動產生了主機名稱,而這個名稱來源與該IP設定的反解有關,當 towns 將IP改為一個私人IP後,這台主機的名稱就自動變回localhost.localdomain,但再設回外部IP後,重開機,他的名稱又變回反解的設定了 = =


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

29. 變更預設開機等級
修改 /etc/inittab 中 id:*:initdefault:: *號的數字(0~6)
執行等級分為7級
詳細資料可見鳥哥  第二十章、開機流程、模組管理與 Loader


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

30. 統計資料匣大小
du -sh [資料匣名稱]
不過這個做法檔案越多就越久
資料來源:http://moto.debian.tw/viewtopic.php?p=11009,感謝 d2207197大


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

31. PHP檔案上傳時間修改
max_execution_time = 30 <==預設php檔案上傳時間
default_socket_timeout = 60


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

32. Fedora 14更新 bind 套件
towns使用yum update更新bind套件,他就只更新了 bind-9.7.4-0.3.b1.fc14.i686 這個套件,另外兩個並沒有主動更新,bind-libs-9.7.2-2.P2.fc14.i686 及 bind-utils-9.7.2-2.P2.fc14.i686,造成在啟動named時,會出現 undefined symbol: dns_cache_create3 這樣的錯誤


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

33. 關於CentOS5 版與PHP 5.2問題
CentOS 5.X 版,內部提供的PHP套件為 5.1版,如果要昇級成5.2版,可以到http://rpm.pbone.net/尋找適當的套件來安裝


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

34. 測試jsp是否正常運作
<% out.println("<h1>hello JSP</h1>"); %>
資料來源:http://blog.yam.com/u9323523/article/25178591


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

35. 重要指令:Linux檔案隱藏屬性管理(chattr及lsattr)
chattr +a /var/log/messages <==將messages 檔加入保留(a)屬性,該檔只能寫入,不能刪除
chattr +i /var/log/messages <==將messages 檔加入保留(i)屬性,該檔永遠不能改變
chattr -a /var/log/messages <==將messages 檔解除保留(a)屬性
chattr -i /var/log/messages <==將messages 檔解除保留(i)屬性,
lsattr /var/log/messages <==查看messages 檔案屬性
資料來源: 鳥哥 第七章、Linux 檔案與目錄管理


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

36. 協助檢查使用者登入或入侵的相關資料
1. w指令   資料存放處
/var/log/wtmp <==將這個檔案刪除就看不到了
2. last指令   最後資料
/var/log/utmp <==將這個檔案刪除就看不到了,在CentOS 5.5中不存在
3. lastlog指令   查看最後資料
/var/log/lastlog <==將這個檔案刪除就看不到了
4. 使用ps指令,查看sshd執行情形
ps aux |grep sshd,如果在後面加了個 -q,ssh的log檔就不會有記錄
5. history指令
/root/.bash_history<==這是記錄所有執行過指令的檔案,也是history看的地方
下nuset HISTFILE ==> 登出後,不寫入.bash_history檔案中
6. who am i <== 查看自己是那個 session
7. pkill -kill -t pts/2 <== 將pts/2的使用者踢出

註:w、who只能看到誰由ssh登入,如果使用者是使用UI登入(如遠端登入X-win),w、who是看不到的

資料來源:范老師上課口述筆記
大陸的SOSO問 http://wenwen.soso.com/z/q302245848.htm


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

 37. 背景執行 &、Ctrl +z
指令 &
執行中程式 按 Ctrl +z
回前景 fg


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

38. 關於Fedora 10以後,圖型介面無法使用 root 登入的問題
使用文字介面 設定 /etc/pam.d/gdm-password 檔,將auth required pam_succeed_if.so user !=root quiet 註解掉

相關資料:http://tw.myblog.yahoo.com/seeu-boworstern/article?mid=268


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

39. 透過VNC遠端登入 X-win
1. 安裝VNC server
  yum install tigervnc-server

2. 建立使用者
  vncserver :1 ,第一次建立時,會要求打入密碼(必需6碼以上),同時建立相關資料到家目錄./vnc中,同時開放5901埠

3. 設定防火牆
 可透過手動設定iptablest檔或使用setup協助設定

4. 設定開機啟動
 4.1. 設定啟動後登入者
 在 /etc/sysconfig/vncservers 檔案中加入
 VNCSERVERS="1:towns" <== 第一個視窗,使用者 towns
 VNCSERVERARGS[1]="-query -nolisten tcp" <== 相關協定,如要遠端登入,不要加localhost
 4.2. chkconfig vncserver on
 4.3. service vncserver restart
問題:這樣的設置只能開啟一個使用者一個視窗,如果要開啟兩個使用者,該怎麼設定,towns設定了兩組,似乎是沒用的 = =

5. 其他指令
 vncserver :1 <== 手動啟動第一個視窗,執行後會開啟5901 Port
 vncserver -kill :1 <== 手動關閉第一個視窗
更多功能可參考man vncserver

詳細資料:鳥哥 第十一章、遠端連線伺服器SSH / XDMCP / VNC / RDP


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

40. iptables 應用
towns 到現在才知道原來有這樣的工具可以使用iptables recent module 可以使用,他可以用來管制同一個port 的連結次數
相關資料:感謝前輩們的教學
http://anderson1029.pixnet.net/blog/post/25102540
http://hahahaha.cc/?p=76
註1:這個功能iptables版本必須在1.3版(含)以上才有,不然,得自行安裝 ipt_recent-0.3.1.tar.gz
註2:CentOS與Fedora 14所產生的預設路徑不同。CentOS,/proc/net/ipt_recent/*,Fedora 14,/proc/net/xt_recent/*


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

41. set 指令
set -x  在指令被執行前,會顯示指令內容,可以檢查指令無法執行的問題
set +x 關閉該功能


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

42. JSP顯示本機時間語法
<%= new java.util.Date() %>


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

43. phpmyadmin常用設定
修改登入密碼為http模式
 1. config.sample.inc.php ==> config.inc.php
 2.  $cfg['Servers'][$i]['auth_type'] = 'cookie'; ==> $cfg['Servers'][$i]['auth_type'] = 'http';
官方安裝說明文件:http://www.phpmyadmin.net/documentation/
問題1:缺少 mysqli 外掛
處理1:確認是否有安裝 php-mysql套件
處理2:如有安裝,請到php.ini中設定mysqli.so檔案連結位置
資料來源:http://mail2.ccps.kh.edu.tw/wordpress/?p=16

問題2:缺少mbstring
處理1:安裝php-mbstring 套件

問題3:缺少 mcrypt 外掛
處理1:安裝php-mcrypt 套件
如果使用CentOS,請加裝 Extra Packages for Enterprise Linux (EPEL)額外的 repo檔,就可以使用yum 來安裝 php-mcrypt 套件
資料來源:http://talk-away-999.blogspot.tw/2012/09/linux-centos-63-php-mcrypt.html

問題3:phpmyadmin高級功能設定(非必要)
處理:建立phpmyadmin資料庫 ==> 使用./examples中的create_tables.sql ,建立資料表 ==> 將 config.inc.php中Storage database and tables這一段的 // 全部移除,完成此設定。


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

44. 怪問題,logwatch停止
towns遇到一個怪問題,有一台linux server的logwatch每週都會停止,需於週一手動執行一次00-logwatch,而後一週內都會正常。經過查看log檔(massage及cron)並沒有出現相關問題的紀錄。經過測試,本機發信是正常的。不知道是否有朋友遇過相同的問題呢?
logwatch版本:logwatch-5.2.2
系統版本:CentOS 4.5
虛擬平台:VirtualBox 4.1.6


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

45. 指令 iwconfig
查看無線網路資訊


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

46. 關於NetworkManager服務
NetworkManager 看起來是專為X-win設計的網路管理套件,他可以動態的建立網路設定值,也可以寫入network-scripts/中(勾選 所有使用者皆可用 時,在network-scripts/下,就會多一個檔案),但如果同時使用network 及 NetworkManager 管理無線網路,無線網路會出現不明情形也會不通,當有安裝X-win,並啟用 NetworkManager,時,請將ifcfg-wlan0中ONBOOT設為no(開機不啟動)。
OS:CentOS 6.2
相關資料:http://blog.roodo.com/rocksaying/archives/11777065.html

註1:動態資料路徑 /etc/sysconfig/networking/
註2:透過NetworkManager設定eth0,動態資料與network-scripts/中的資料會有一致性,因為使用相同的eth0檔,並預設有勾選 所有使用者皆可用


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

47. 關於SSH 的安全性
在SSH的設定檔中,有一個 MaxAuthTries 參數,預設為6次,這個參數預設為啟動,密碼只能try 6次


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

48. 在CentOS 6的X-win中安裝嘸蝦米
 1. 安裝gcin-1.5.5-3.fc14.x86_64.rpm套件並安裝
 2. 取得noseeing-12.tar.gz,解壓後將noseeing.gtab拷入/usr/share/gcin/table
 3. 到Xwin中的 系統==>編好設定==>輸入法,將gcin設為預設值
 4. 重新登入
資料來源:
海芋小站:http://www.inote.tw/2009/05/ubuntugcin.html
insecta大大:http://insecta.idv.tw/lf/index.php?op=ViewArticle&articleId=18&blogId=2
註1:client 端會出現這個檔設定檔.xinputrc及路徑/.gcin/

CentOS6 安裝gcin的問題
1. 使用套件版本為 gcin-1.5.1-1.el6.x86_64.rpm (RH6的版本)
2. 安裝後登入Xwin使用者會出現 Unable to keep input method running 這樣的錯誤息
處理方式:進入Xwin後,到 系統 ==> 偏好設定 ==> 啟動應用程式 ==> 將 imsettings-start(輸入法啟動器)取消勾選,在下次登入Xwin後,就不會出現這個問題了
資料來源:王大的資料 http://dywang.csie.cyut.edu.tw/moodle23/blog/index.php?entryid=108
王大的第一段指令 towns是看不懂的 = =


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

49. 關於遠端登入安全性問題
透過VNC登入遠端桌面,會出現很多限制,連mount光碟片都會發生權限不足的問題


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

50. CentOS 62 64bit,使用的檔案總管套件是 nautilus-2.28


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

51. Linux 遠端桌面client 端套件 tsclient-2.0.2-7.el6.x86_64


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

52. Dovecot 的 log檔中,rip指的是來源IP,lip指的是目標IP


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

53. partiton相關指令
dumpe2fs ==> 列出ext2/ext3/ext4 FS 的詳細資訊
dumpe2fs /dev/sd* ==> 可看出詳細資訊,下面多了一些group 的東西
dumpe2fs /dev/mapper/VG-lv_root ==> 當有使用LVM 時,查看FS資訊,要指定這樣的徑

tune2fs ==> FS 調整指令
tune2fs -l /dev/sd* ==> 可看出硬碟詳細資訊
tune2fs -l /dev/mapper/VG-lv_root
tune2fs -j -L sda1 /dev/sda1 ==> (-j)幫sda1加上日誌(ext2昇級為ext3),(-L)並幫FS加入名稱

fdisk ==> patation管理工具,這個跟SPFDisk 還蠻像的,只是一個是英文、一個是中文
fdisk -l /dev/sd* ==> 列出sd* 硬碟的FS分割方式(進入工具後按P有相同的效果)

mkfs、mke2fs==> Linux 中FS 格式化指令,類似windowns的format 指令,預設為Ext2
mkfs -t ext3 /dev/sdb1 ==> 格式化sdb1並指定為ext3格式
mke2fs -t ext3 /dev/sdb1
Ext2與Ext3格式差別在journal日誌功能
mkswap ==> 建立虛擬記憶體(swap)
e2label
mkbootdisk
fdformat
fsck
badblocks
sync
mknod


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

54. ARP 封包收集長指令(這個方式可以協助知道區域網路中異常的主機)
sudo tcpdump -l -n arp | grep 'arp who has' | head -100 | awk '{ print $NF }' | sort | uniq -c | sort -n
資料來源:Thomas A. Limoncelli(O'REILLY 時間管理 給統管理者)


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

56. 關於磁區的UUID
磁區UUID可以到/dev/disk/by-uuid/中看到,swap 磁區,在這裡也可以看到


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

57. 查看磁區的格式
 1. 可以透過tune2fs -l /dev/sd* 方式查看 Filesystem features 中是否有 has_journal,這個就是ext3
 2. cat /etc/fstab。這個也可以明顯看到硬碟格式,但限已掛載的磁區
 3. 使用mount指令,將磁區掛上後,再使用mount指令直接查看掛載磁區,該方式只適用於Linux系統可自動辨視的磁區


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

58. 查看Linux 廠商
 1. cat /etc/issue
 2. cat /boot/grub/grub.conf 中 title有寫到
 3. rpm -aq |grep *** 查看套件時,也可以看到


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

59. SMTPPOP3指令
由網路上的資料可以知道,SMTP及POP3指令已成為顯學,那這樣的方式架設mail server,看來是有一定的風險了
相關資料:
http://mrynlin.blogspot.com/2010/12/smtppop3.html YN.Lin大的blog
http://hweily.pixnet.net/blog/post/22585676-%E6%8C%87%E4%BB%A4--pop3 hweily的blog


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

60. mail 指令
在Linux文字介面上直接寄信的指令
指令編寫方式1:mail -s '[主旨]' [帳號] < [檔名]
指令編寫方式2:cat [檔名] | mail -s '[主旨]' [帳號]
例1:mail -s 'test' towns@a.b.c < /home/towns/test.txt
例2:cat /home/towns/test.txt | mail -s 'test' towns@a.b.c
寄信給towns@a.b.c,標題 test,內容為test.txt中的文字
資料來源:鳥哥的Linux私房菜 第二十二章、郵件伺服器: Postfix
Linus Chen大的文章:http://blog.tmu.edu.tw/m110092006/003585.html
官方wiki:http://en.wikipedia.org/wiki/Mailx


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

61. Dovecot 套件說明
neio大的blog文章 http://neio.pixnet.net/blog/post/15546063-dovecot-on-debian


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

62. 登入檔輪替工具 logrotate 的特殊地方
這裡說明一個特殊的地方,towns在設定了apache 虛擬網站的log檔輪替後,的確有產生 *_access_log.1這樣的檔案,特殊在當towns試著存取網站時,讀取紀錄寫入了*_access_log.1,而不是新產生的 *_access_log,重新啟動 httpd 後,才開始寫入*_access_log中
系統說明:CentOS55、httpd-2.2.3
詳細的設定資訊:鳥哥 第十九章、認識與分析登錄檔


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

63. 文字模式下取得外部IP
方式1:使用php的函式抓取
curl "http://www.ripe.net/@@ipaddress"
這個方式必需要有安裝PHP才可以

方式2:使用telnet 方式抓取IP
#!/bin/bash
NEW_IP=$((sleep 2;echo helo localhost; sleep 2; echo quit) | telnet msa.hinet.net 25 2>&1 | awk -F '[][]' '/^250/{print $2}') echo $NEW_IP
使用script,並抓取出的IP資訊,這個是在抓取連入mail server後出現的主機資訊,這是通用的方式

資料來源:小舖討論區,蔥大回應,蔥大真是太強了
http://www.blueshop.com.tw/board/FUM20050110200903ZWZ/BRD2012052000184015U.html


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

64. file指令
取得檔案資訊
file [檔名]
資料來源:鳥哥 第七章、Linux 檔案與目錄管理


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

65. 關閉IPv6支援
目前來說,大部分的設備都還沒有支援IPv6,但新版的OS多半都預設支援IPv6,如windows 7、CentOS6 以上、Fedora 10以上,說真的,towns並不喜歡這樣,所以towns都會將他關閉,一方面也可以減少安全性的隱懮
win7請參考 IT隨手記第55點

CentOS6、Fedora 14(已測試)
在/etc/modprobe.d/dist.conf 中加入 options ipv6 disable=1,就可關閉IPv6支援
測試1:使用ifconfig 查看網路介面,可發覺inie6_addr 這一行已經不見了
測試2:使用netstat 查看監聽中IPv6位置已經全部不見了
註1:要開啟IPv6支援,將這行拿掉就行了
註2:可以的話,記得連同ip6tables這個服務一起關閉,雖然並沒有影響
相關連結:http://windphp.com/unix/51.html


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

66. 確定Linux系統為32或64bit
uname -a ,後面出現 x86_64,就是64bit的系統


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

67. X-win 使用類似檔案總管方式開資料匣
系統 ==> 偏好設定 ==> 檔案管理 ==> 運作方式 ==> 總是以瀏覽視窗開啟 勾選


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

68. 開機預設值設定檔
/etc/inittab


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

69. 使用X-win 時需調整
網路管理服務調整
 1. 關閉network 在UI介面下的服務
chkconfig nework off
chkconfig --level 3 network on
 2. 關閉NetworkManager 在text介面下的服務
chkconfig NeworkManager off
chkconfig --level 5 network on
這可以避免UI在重新啟動網路介面時的異常問題


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

70. Linux 存取 NTFS
1. 下載 ntfs-3g_ntfsprogs-2012.1.15.tgz
官網:http://www.tuxera.com/
到官網的community 中,download下面的連結

2. 下載 fuse-2.9.1.tar.gz
官網:http://fuse.sourceforge.net/
到官網的download中可以找到

3. 解開後,打入./configure、make、make install,就可以完成安裝

4. 測試
測試1:打入指令ntfs-3g,如果出現操作說明表示 ntfs-3g有完成安裝
測試2:掛載硬碟,測試是否可正常存取
使用mount指令掛載:mount -t ntfs-3g /dev/sdb1 /mnt/
使用ntfs-3g指令掛載:ntfs-3g /dev/sdb1 /mnt/

資料來源:
http://benjr.tw/node/330 sunchiahome大的blog
http://download.ithome.com.tw/article/index/id/156 ithome Superfunction大的文章


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

71. Linux  GUI 遠端桌面
使用Linux GUI連接遠端桌面(windows、Linux),towns比較喜歡使用 tsclient這個遠端桌面套件,因為他比較順手,也支援多種協定


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

72. 指令 iptab
towns在偶然的情形下,打下了iptab這個指定,這個指令即沒有man,也沒有help,不過,打下去他會說明關於towns在上課時學到的addr數量、幾bit、pref、class及netmask,好玩的指令


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

73. 另人又愛又怕的工具 Rootkits
善用工具是好的,但惡用工具呢!= =
相關連結:http://technology.apol.com.tw/technology-55.html


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

74. type 指令
用來確認是否為原生指令
type [指令] ==> 列出指令主要使用情形
type -a [指令] ==> 列出指令所有資料
例1:
type cd
cd is a shell builtin <== cd 是shell的原生指令
例2:
type find
find is /bin/find <== find 是非原生指令,是一個執行檔


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

75. xrdp安裝及設定
安裝xrdp的目地是為了使用windows 的遠端桌面(mstsc)登入。
在Fedora 14中,可以直接使用 yum 來安裝xrdp
這是一個很棒的tigervnc取代方案,可以去除第8點的問題哦!^0^
設定檔:/etc/xrdp/xrdp.ini、sesman.ini
相關資料:http://pulipuli.blogspot.com/2008/08/windowslinuxxrdpvnc-server.html 感謝布丁大
註1:tigervnc vncserver 並不需要啟動,也可正常連入
註2:預設啟動 chkconfig xrdp on
註3:CentOS 安裝,請參考 鳥哥 第十一章、遠端連線伺服器SSH / XDMCP / VNC / RDP
套件可由:http://download.fedora.redhat.com/pub/ 取得
套件名稱:xrdp-0.5.0-0.13.el6.x86_64.rpm

安全性設定:
在sesman.ini中,可以看到一個設定值 AllowRootLogin 這個值預設為 1,同意Root 登入,基於安全性考量,可設為 0,拒絕 Root 帳號連入
資料來源:
http://erictoit.blogspot.com/2010/12/xrdplinux-remote-desktop.html
http://itschool.dgbas.gov.tw/blog/post.do?bid=8&pid=557
前輩的網頁中,有詳細的參數說明

改變預設連接阜:
在/etc/xrdp/xrdp.ini  [globals] 中可以看到 port=3389,修改這個值就可以了

註1:在啟動後,還需設定防火牆開放3389可以連入哦!


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

76. 查看目前透過NAT連線的資料
/proc/net/ip_conntrack
這個檔案可以看到netstat 顯示資料中,無法看到的NAT連線資料情形

註:CentOS 6.3版,沒看到這個檔案呢!

Linux 指令教學 (版本)

Linux 指令教學  (版本)


要替linux 系統修改或操作系統時,這時候我們需要的是 “得知該系統版本為何"


linux 版本區分很多種類,當然也和windows 系統一樣區分為32位元64位元版本兩種,而安裝軟體之前為了保險,請先查詢linux 版本為先


一:
指令: uname -a  or  -m
作用: 查看linux 系统核心版本及系統名稱
若出現i386 字樣,则代表該版本為32位元

範例:
[root@xxx ~]# uname -a
Linux xxx.xxx.tw 2.6.18-128.el5 #1 SMP Wed Jan 21 10:44:23 EST 2009 i686 i686 i386 GNU/Linux
[root@xxx ~]#

範例:
[root@xxx ~]# uname -m
x86_64
[root@xxx ~]#

二:
指令: cat /proc/version
作用: 查看目錄/proc下version的信息,也可以知道目前系統的核心版本名稱

範例:
[root@xxx ~]# cat /proc/version
Linux version 2.6.18-128.el5 (mockbuild@builder16.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)) #1 SMP Wed Jan 21 10:44:23 EST 2009

三:
指令:lsb_release -a
範例:
[root@xxx ~]#lsb_release -a
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description: CentOS release 5.3 (Final)
Release: 5.3
Codename: Final

四:
指令:getconf LONG_BIT
範例:
[root@xxx ~]#getconf LONG_BIT
64    (系統安裝的是64位元)
[root@xxx ~]#

2012-09-25

Centos install XenServer Tools

Centos install XenServer Tools


1 先選擇要安裝Tools的虛擬機器,然後右鍵選擇 Install XenServer Tools…
2 進入Console執行下兩道指令

※ # mount /dev/xvdd /mnt
※ # /mnt/Linux/install.sh


—————如下例—————

[root@Lab~]# mount /dev/xvdd /mnt

mount: block device /dev/xvdd is write-protected, mounting read-only

[root@Lab ~]# /mnt/Linux/install.sh

Detected `CentOS release 5.3 (Final)’ (centos version 5).
The following changes will be made to this Virtual Machine:

* packages to be installed/upgraded:
– kernel-xen-2.6.18-128.1.10.el5.xs5.5.0.51.i686.rpm
– xe-guest-utilities-5.5.0-458.i386.rpm
Continue? [y/n] y

Preparing… ##################################[100%]
1:xe-guest-utilities ############################# [100%]
Preparing… ################################## [100%]
1:kernel-xen ################################## [100%]

You should now reboot this Virtual Machine.

[root@Lab ~]# reboot

OK。

Webmail (一) Horde webmail 安裝與設定

Webmail (一) Horde webmail 安裝與設定


簡介:

Horde 是個高效能的 Open Source 程式 , 基於 PHP , 不像 OpenWebMail 是採用 CGI 語法寫成 , 效能當然也比較優!
且支援許多方便的功能 , 如 待辦事項 , 備忘錄 , 行事曆... 等 , 其中的行事曆功能也不亞於 Google 的行事曆功能相當不錯! 更支援 檔案總管 功能 , 讓所有擁有Mail帳號的使用者可互相共享資料 , 省去 FTP 或是 Mail 傳來傳去的時間 , 常用的 通訊錄 也支援 windows 的 .cvs 檔 (OutLook 通訊錄檔) , 匯入匯出功能 , 更讓使用者省去許多建立通訊錄的時間 , Horde 真的是很貼心呢! 萬一使用者有任何問題要提報管理者 , 只需點右上角的 "問題" 的驚嘆號圖示 , 內容填一填 , 系統就直接發一封 Mail 到管理者的信箱 , 與管理者溝通更直接快速!
Horde 與 Google 一樣也支援許多佈景主題 , 提供使用者選擇 , 另外 , 使用者更可以自己排列自己的首頁 , 只需點上面工具列的 "版面配置" , 將許多常用的功能放在首頁 , 行事曆..備忘錄..待辦事項..信件..全部一目了然 , 這真的是太方便囉 , 這可是 OpenWebMail 辦不到的特異功能!
Horde 其實還有許多功能 , 目前止能點到為止 , 因為還不是很瞭解 Horde , 日後有新功能在慢慢補上囉~
注意事項:

在安裝 Horde 之前 , 必須先確認 CentOS 已經安裝設定好 Postfix , Dovecot , httpd(nginx) , DNS , 且都可以正常運作

環境:

CentOS 5.4 - 2.6.18-164.11.1.el5

安裝流程:

安裝必要元件 GD Linrary:

#yum install php-gd -y

修改 PHP memory_limit:
若記憶體允許 , 建議改成 128M

#vi /etc/php.ini
memory_limit = 64M

#/etc/init.d/httpd reload

修正 temporary bug (CentOS x86_64的bug):

#vi /etc/dovecot.conf
login_process_size = 64

#/etc/init.d/dovecot restart

啟動 & 設定 MySQL:
 啟動MySQL , 設定開機啟動

#/etc/init.d/mysql start
#chkconfig mysqld --on

第一次啟動 MySQL , 設定 root 密碼
#mysqladmin -u root password 'new-password'
#mysqladmin -u root -h yourhostname.yourdomain.com password 'new-password'

修改 MySQL 預設語系 latin 為 UTF-8

#vi /etc/my.cnf

[mysqld]
collation_server=utf8_general_ci
character_set_server=utf8
init_connect="SET NAMES 'utf8'"

[client]
default_character_set=utf8

#/etc/init.d/mysql restart

Apache 設定 Horde Virtual Host:
新增horde virtual host,並設定安全性設定

#vi /etc/httpd/conf.d/horde.conf

#
# Horde is a web application framework written in PHP.
#

Alias /horde /usr/share/horde

# Uncomment the following 3 lines to make Horde locally accessible only
#Order Deny,Allow
#Deny from all
#Allow from 127.0.0.1

Options +FollowSymLinks

# horde.org's recommended PHP settings:
php_admin_flag safe_mode off
php_admin_flag magic_quotes_runtime off
php_flag session.use_trans_sid off
php_flag session.auto_start off
php_admin_flag file_uploads on
# Optional - required for weather block in Horde to function
php_admin_flag allow_url_fopen on

# If horde dies while trying to handle large email file attachments,
# you are probably hitting PHP's memory limit. Raise that limit here,
# but use caution
# Set to your preference - memory_limit should be at least 32M
# and be greater than the value set for post_max_size
#php_value memory_limit 32M
#php_value post_max_size 20M
#php_value upload_max_filesize 10M

# /usr/share/pear is needed for PEAR. /var/www/html/horde is needed for Horde itself
# TODO: Set an appropriate include_path, too. Might even increase speed a bit.
php_admin_value open_basedir "/var/www/html/horde:/var/www/html/horde/config:/usr/share/pear:/tmp"
php_admin_flag register_globals off

Order Deny,Allow
Deny from all

# Deny access to files that are not served directly by the webserver

Order Deny,Allow
Deny from all

# Deny access to the test.php files except from localhost
#
# Order Deny,Allow
# Deny from all
# Allow from 127.0.0.1
#

安裝 phpMyAdmin:

下載新版 phpMyAdmin - http://www.phpmyadmin.net/home_page/downloads.php

建立 Admin 資料夾 , 將phpMyAdmin放進去

詳細步驟就不說明囉 , 很簡單

安裝 Horde:
使用 yum groupinstall 一口氣全部安裝

#yum groupinstall Horde

修改 Horde 專用的帳號與密碼

#cd /usr/share/horde/scripts/sql
#vi create.mysql.sql

REPLACE INTO user (host, user, password)
VALUES (
'localhost',
'horde',
-- IMPORTANT: Change this password!
PASSWORD('password')
);

測試支援度:
用test.php測試一下支援度 , 看看是否全部都支援 !

http://yourdomain.com.tw/horde/test.php

導入 Horde 各項 SQL 資料庫:
匯入 Horde 主資料庫

#cd /usr/share/horde/script/sql
#mysql -u root -p < create.mysql.sql

匯入kronolith行事曆table到horde

#cd /usr/share/horde/kronolith/scripts/sql
#mysql --user=root --password=? horde < kronolith.mysql.sql

匯入mnemo備忘錄table到horde

#cd /usr/share/horde/mnemo/scripts/sql
#mysql --user=root --password=? horde < mnemo.sql

匯入turba通訊錄table到horde

#cd /usr/share/horde/turba/scripts/sql
#mysql --user=root --password=? horde < turba.mysql.sql

匯入nag待辦事項table到horde

#cd /usr/share/horde/nag/scripts/sql
#mysql --user=root --password=? horde < nag.sql

設定 Horde 及其他:
建立 Log 記錄資料夾

#mkdir /var/log/horde
#chown apache:apache /var/log/horde

設定轉址檔index.php

#cd /var/www/html
#vi index.php

SunArt

FRAME
BORDER="no" BORDER=0 NORESIZE>

 Hored 設定

#vi /usr/share/horde/config/conf.php

/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Horde: horde/config/conf.xml,v 1.74.2.48 2007/02/02 11:03:05 jan Exp $
$conf['debug_level'] = E_ALL;
$conf['max_exec_time'] = 0;
$conf['compress_pages'] = true;
$conf['umask'] = 077;
$conf['use_ssl'] = 2;
$conf['server']['name'] = $_SERVER['SERVER_NAME'];
$conf['server']['port'] = $_SERVER['SERVER_PORT'];
$conf['session']['name'] = 'Horde';
$conf['session']['use_only_cookies'] = true;
$conf['session']['cache_limiter'] = 'nocache';
$conf['session']['timeout'] = 0;
$conf['cookie']['domain'] = $_SERVER['SERVER_NAME'];
$conf['cookie']['path'] = '/horde';
$conf['sql']['persistent'] = false;
$conf['sql']['username'] = 'horde';
$conf['sql']['password'] = 'password';
$conf['sql']['protocol'] = 'unix';
$conf['sql']['database'] = 'horde';
$conf['sql']['charset'] = 'UTF-8';
$conf['sql']['phptype'] = 'mysql';
$conf['auth']['admins'] = array('jakson');
$conf['auth']['checkip'] = true;
$conf['auth']['checkbrowser'] = true;
$conf['auth']['alternate_login'] = false;
$conf['auth']['redirect_on_logout'] = false;
$conf['auth']['params']['app'] = 'imp';
$conf['auth']['driver'] = 'application';
$conf['signup']['allow'] = false;
$conf['log']['priority'] = PEAR_LOG_INFO;
$conf['log']['ident'] = 'HORDE';
$conf['log']['params'] = array();
$conf['log']['name'] = '/var/log/horde/horde.log';
$conf['log']['params']['append'] = true;
$conf['log']['type'] = 'file';
$conf['log']['enabled'] = true;
$conf['log_accesskeys'] = false;
$conf['prefs']['params']['table'] = 'horde_prefs';
$conf['prefs']['params']['driverconfig'] = 'horde';
$conf['prefs']['driver'] = 'sql';
$conf['datatree']['params']['table'] = 'horde_datatree';
$conf['datatree']['params']['table_attributes'] = 'horde_datatree_attributes';
$conf['datatree']['params']['driverconfig'] = 'horde';
$conf['datatree']['driver'] = 'sql';
$conf['group']['driver'] = 'datatree';
$conf['cache']['default_lifetime'] = 1800;
$conf['cache']['params']['dir'] = Horde::getTempDir();
$conf['cache']['params']['gc'] = 86400;
$conf['cache']['driver'] = 'file';
$conf['token']['params']['table'] = 'horde_tokens';
$conf['token']['params']['driverconfig'] = 'horde';
$conf['token']['driver'] = 'sql';
$conf['mailer']['params']['host'] = 'localhost';
$conf['mailer']['params']['port'] = 25;
$conf['mailer']['params']['localhost'] = 'localhost';
$conf['mailer']['params']['auth'] = '0';
$conf['mailer']['type'] = 'smtp';
$conf['vfs']['params']['persistent'] = false;
$conf['vfs']['params']['username'] = 'horde';
$conf['vfs']['params']['password'] = 'password';
$conf['vfs']['params']['protocol'] = 'unix';
$conf['vfs']['params']['database'] = 'horde';
$conf['vfs']['params']['charset'] = 'UTF-8';
$conf['vfs']['params']['phptype'] = 'mysql';
$conf['vfs']['params']['vfs_table'] = 'horde_vfs';
$conf['vfs']['params']['driverconfig'] = 'custom';
$conf['vfs']['type'] = 'sql';
$conf['sessionhandler']['params']['persistent'] = false;
$conf['sessionhandler']['params']['rowlocking'] = true;
$conf['sessionhandler']['params']['protocol'] = 'unix';
$conf['sessionhandler']['params']['hostspec'] = 'localhost';
$conf['sessionhandler']['params']['username'] = 'horde';
$conf['sessionhandler']['params']['password'] = 'password';
$conf['sessionhandler']['params']['database'] = 'horde';
$conf['sessionhandler']['params']['table'] = 'horde_sessionhandler';
$conf['sessionhandler']['type'] = 'mysql';
$conf['problems']['email'] = ' jakson@yourdomain.com.tw這個 E-mail 地址已經被防止灌水惡意程式保護,您需要啟用 Java Script 才能觀看 ';
$conf['problems']['maildomain'] = 'yourdomain.com.tw';
$conf['problems']['tickets'] = false;
$conf['menu']['apps'] = array('gollem', 'horde', 'imp', 'ingo', 'kronolith', 'mnemo', 'nag', 'turba');
$conf['menu']['always'] = false;
$conf['menu']['links']['help'] = 'all';
$conf['menu']['links']['help_about'] = true;
$conf['menu']['links']['options'] = 'authenticated';
$conf['menu']['links']['problem'] = 'all';
$conf['menu']['links']['login'] = 'all';
$conf['menu']['links']['logout'] = 'authenticated';
$conf['hooks']['permsdenied'] = false;
$conf['hooks']['username'] = false;
$conf['hooks']['preauthenticate'] = true;
$conf['hooks']['postauthenticate'] = false;
$conf['hooks']['authldap'] = false;
$conf['portal']['fixed_blocks'] = array();
$conf['accounts']['params']['quota_path'] = '/usr/bin/quota';
$conf['accounts']['params']['grep_path'] = '/bin/grep';
$conf['accounts']['params']['translateMountPoint'] = false;
$conf['accounts']['params']['translationTable'] = '/etc/mtab';
$conf['accounts']['driver'] = 'localhost';
$conf['imsp']['enabled'] = false;
$conf['kolab']['enabled'] = false;
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */

imp 設定

#vi /usr/share/horde/imp/config/conf.php

/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Horde: imp/config/conf.xml,v 1.53.2.18 2007/05/03 15:24:51 chuck Exp $
$conf['utils']['gnupg_keyserver'] = array('pgp.mit.edu');
$conf['utils']['gnupg_timeout'] = '10';
$conf['utils']['openssl_binary'] = '/usr/bin/openssl';
$conf['menu']['apps'] = array('gollem', 'horde', 'imp', 'ingo', 'kronolith', 'mnemo', 'nag', 'turba');
$conf['user']['select_sentmail_folder'] = false;
$conf['user']['allow_resume_all_in_drafts'] = false;
$conf['user']['allow_folders'] = true;
$conf['user']['allow_resume_all'] = false;
$conf['user']['allow_view_source'] = true;
$conf['user']['alternate_login'] = false;
$conf['user']['redirect_on_logout'] = false;
$conf['server']['change_server'] = false;
$conf['server']['change_port'] = false;
$conf['server']['change_protocol'] = false;
$conf['server']['change_smtphost'] = false;
$conf['server']['change_smtpport'] = false;
$conf['server']['server_list'] = 'none';
$conf['server']['sort_limit'] = '0';
$conf['server']['cache_folders'] = false;
$conf['server']['cache_msgbody'] = false;
$conf['mailbox']['show_attachments'] = false;
$conf['mailbox']['show_preview'] = false;
$conf['mailbox']['show_xpriority'] = false;
$conf['fetchmail']['show_account_colors'] = false;
$conf['fetchmail']['size_limit'] = '12000000';
$conf['msgsettings']['filtering']['words'] = './config/filter.txt';
$conf['msgsettings']['filtering']['replacement'] = '****';
$conf['spam']['spamfolder'] = false;
$conf['spam']['bounce'] = 'DSPAM';
$conf['spam']['program'] = '/usr/local/bin/spamassassin -r';
$conf['spam']['reporting'] = true;
$conf['notspam']['reporting'] = false;
$conf['msg']['prepend_header'] = true;
$conf['msg']['append_trailer'] = true;
$conf['compose']['allow_cc'] = true;
$conf['compose']['allow_bcc'] = true;
$conf['compose']['allow_receipts'] = true;
$conf['compose']['special_characters'] = true;
$conf['compose']['use_vfs'] = false;
$conf['compose']['link_all_attachments'] = false;
$conf['compose']['link_attachments_notify'] = true;
$conf['compose']['link_attachments'] = true;
$conf['compose']['add_maildomain_to_unexpandable'] = false;
$conf['compose']['attach_size_limit'] = '0';
$conf['compose']['attach_count_limit'] = '0';
$conf['hooks']['vinfo'] = false;
$conf['hooks']['signature'] = false;
$conf['hooks']['trailer'] = false;
$conf['hooks']['fetchmail_filter'] = false;
$conf['hooks']['mbox_redirect'] = false;
$conf['hooks']['mbox_icon'] = false;
$conf['hooks']['spam_bounce'] = false;
$conf['maillog']['use_maillog'] = true;
$conf['tasklist']['use_tasklist'] = true;
$conf['notepad']['use_notepad'] = true;
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */

ingo 過濾器設定

#vi /usr/share/horde/ingo/config/conf.php

/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Horde: ingo/config/conf.xml,v 1.13 2004/02/11 19:24:23 slusarz Exp $
$conf['menu']['apps'] = array( 'gollem', 'horde', 'imp', 'ingo', 'kronolith', 'mnemo', 'nag', 'turba');
$conf['storage']['driver'] = 'prefs';
$conf['storage']['maxblacklist'] = 0;
$conf['storage']['maxwhitelist'] = 0;
$conf['rules']['userheader'] = true;
$conf['rules']['usefolderapi'] = true;
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */

turba 通訊錄設定

#vi /usr/share/horde/turba/config/conf.php

/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Horde: turba/config/conf.xml,v 1.6.2.3 2006/05/09 15:58:10 jan Exp $
$conf['menu']['import_export'] = true;
$conf['menu']['apps'] = array('gollem', 'horde', 'imp', 'ingo', 'kronolith', 'mnemo', 'nag', 'turba');
$conf['client']['addressbook'] = 'localsql';
$conf['comments']['allow'] = true;
$conf['documents']['params']['driverconfig'] = 'horde';
$conf['documents']['type'] = 'sql';
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */

kronolith 行事曆設定

#vi /usr/share/horde/kronolith/config/conf.php

/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Horde: kronolith/config/conf.xml,v 1.14.10.4 2006/02/08 12:27:31 jan Exp $
$conf['calendar']['params']['table'] = 'kronolith_events';
$conf['calendar']['params']['driverconfig'] = 'horde';
$conf['calendar']['driver'] = 'sql';
$conf['storage']['params']['table'] = 'kronolith_storage';
$conf['storage']['params']['driverconfig'] = 'horde';
$conf['storage']['driver'] = 'sql';
$conf['metadata']['keywords'] = false;
$conf['reminder']['server_name'] = 'yourdomain.com.tw';
$conf['reminder']['from_addr'] = 'yourdomain.com.tw';
$conf['autoshare']['shareperms'] = 'none';
$conf['menu']['print'] = true;
$conf['menu']['import_export'] = true;
$conf['menu']['apps'] = array('gollem', 'horde', 'imp', 'ingo', 'kronolith', 'mnemo', 'nag', 'turba');
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */

gollem 檔案總管設定

#vi /usr/share/horde/gollem/config/conf.php

/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Horde: gollem/config/conf.xml,v 1.5.2.2 2005/12/11 18:31:18 slusarz Exp $
$conf['manager']['date_format'] = '%x';
$conf['backend']['backend_list'] = 'hidden';
$conf['menu']['apps'] = array( 'gollem', 'horde', 'imp', 'ingo', 'kronolith', 'mnemo', 'nag', 'passwd', 'turba');
$conf['user']['alternate_login'] = false;
$conf['user']['redirect_on_logout'] = false;
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */

nag 待辦事項設定

#vi /usr/share/horde/nag/config/conf.php

/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Horde: nag/config/conf.xml,v 1.25.10.1 2005/10/18 12:56:37 jan Exp $
$conf['storage']['params']['table'] = 'nag_tasks';
$conf['storage']['params']['driverconfig'] = 'horde';
$conf['storage']['driver'] = 'sql';
$conf['menu']['print'] = true;
$conf['menu']['import_export'] = true;
$conf['menu']['apps'] = array( 'gollem', 'horde', 'imp', 'ingo', 'kronolith', 'mnemo', 'nag', 'turba');
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */

mnemo 備忘錄設定

#vi /usr/share/horde/mnemo/config/conf.php

/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Horde: mnemo/config/conf.xml,v 1.17 2004/10/03 13:07:37 stuart Exp $
$conf['storage']['params']['table'] = 'mnemo_memos';
$conf['storage']['params']['driverconfig'] = 'horde';
$conf['storage']['driver'] = 'sql';
$conf['menu']['print'] = true;
$conf['menu']['import_export'] = true;
$conf['menu']['apps'] = array( 'gollem', 'horde', 'imp', 'ingo', 'kronolith', 'mnemo', 'nag', 'turba');
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */

安全性設定:
config 安全部分

#chown apache:root -R /var/www/html/horde/config
#chown apache:root -R /var/www/html/horde/*/config
#chmod -R go-rwx /var/www/html/horde/config
#chmod -R go-rwx /var/www/html/horde/*/config

script 安全部分

#chown -R root:root /var/www/html/horde/scripts
#chown -R root:root /var/www/html/horde/*/scripts
#chmod -R go-rwx /var/www/html/horde/scripts
#chmod -R go-rwx /var/www/html/horde/*/scripts

test.php 安全部分

#chmod a-rwx /var/www/html/horde/test.php
#chmod a-rwx /var/www/html/horde/*/test.php


完成與測試:

也可以使用 Webmail (二) OpenWebmail


※以上參考 - DNS,Samba,DHCP,IPTABLES,Postfix 架設全記錄