Linux架站筆記

安裝Linux

套件升級(APT)

 SSH

WWW(Apache)

Mail(SendMail)

Quota

 WAM

Samba

備份與壓縮

 

 RPM

 FTP(Vsftp)

其它

設計排程

掛載與裝硬碟

 Proxy

OpenWebmail

 防火牆

 

指令介紹

 目錄介紹

 救援模式

DNS

 

 

安裝RedHat Linux(回頁首)

硬碟分割及掛載點 (34GB)

分割區

大小

/

3G

/boot

256M

/usr

5G

/var

2G

/tmp

512M

/home

其它共22G

linux swap

512M

建議先用english安裝,之後再選繁體中文語言

安裝時的防火牆設定為[高安全性]表示全部封鎖,再選允許進入的服務,如www,ftp,ssh,mail,其它埠輸入12000:tcp

 

套件升級(APT)(回頁首)

1.套件安裝

  rpm --import ftp://linux.sinica.edu.tw/redhat/redhat-9/en/os/i386/RPM-GPG-KEY

  rpm --import http://ftp.freshrpms.net/pub/freshrpms/RPM-GPG-KEY

  rpm -ivh http://ftp.freshrpms.net/pub/freshrpms/redhat/9/apt/apt-0.5.5cnc6-fr1.i386.rpm

2.更新Client與APT Server的對應清單

  apt-get update

3.升級我們系統上的所有RPM套件

  apt-get -y -f dist-upgrade
(-y自動回答yes,-f 強迫更新)

4.將下載自APT Server的RPM檔案刪除

  apt-get clean

5.設定每日早上三點自動更新

  vi /etc/crontab

     00 3 * * * root apt-get update; apt-get -y -f dist-upgrade ; apt-get clean

6.重新啟動 crond 這個服務

   /etc/rc.d/init.d/crond restart

SSH(回頁首)

1.修改 sshd 伺服器相關設定 /etc/ssh/sshd_config

2.啟動 sshd

   /etc/rc.d/init.d/sshd start

3.設定開機自動執行

   setup   -->system service   -->sshd

4.顯示網路是否有啟動sshd服務

   netstat -tl
      Active Internet connections (only servers)
      Proto Recv-Q Send-Q Local Address           Foreign Address         State
      tcp        0      0 *:ssh                   *:*                     LISTEN

 

WWW(Apache)(回頁首)

1.設定 Apache 顯示中文

   vi /etc/httpd/conf/httpd.conf

   #AddDefaultCharset ISO-8859-1 (最前面加#號)

2.設定不能瀏覽網頁目錄

   <Directory "/var/www/html">

   Options FollowSymLinks    (將中間的 Indexes 刪掉)

3.啟動個人網頁(apache2.x 的個人網頁預設是關閉的)

   #UserDir disable   (在前面加上 #)

   UserDir public_html (前面的 # 刪除)

4.啟動 CGI:找到 <Directory "/var/www/cgi-bin"> 這段,加上 Options +ExecCGI

   <Directory "/var/www/cgi-bin">
   AllowOverride None
   Options +ExecCGI

   Options None
5.設定WWW預設首頁檔名

   DirectoryIndex index.htm index.html index.html.var  (加入index.htm)

6.重新啟動 httpd:

   /etc/rc.d/init.d/httpd restart

7.設定開機自動執行

   setup   -->system service   -->httpd

Apache命令 --> /etc/rc.d/init.d/httpd restart重新啟動, stop停止, status檢視狀態

網站首頁存放路徑 --> /var/www/html/index.html

Apach設定檔 --> httpd.conf,commonhttpd.conf,vhosts.conf

個人網頁存放位置 --> /home/個人帳號/public_html/index.html

個人網址 --> http://主機IP位址/~使用者帳號/

自訂首頁存放位置 --> /etc/conf/commonhttpd.conf 的DocumentRoot刪除#並修改指定位置

個人網站的家目錄權限為755

將網站首頁連結到管理者首頁 ln –s /home/yuan/public_html /var/www/html

 

Mail 安裝(Sendmail)(回頁首)

1.安裝的 rpm

   sendmail  (預設已安裝)

   sendmail-cf  (修改 sendmail.cf 時使用)

   cyrus-sasl   (Cyrus SASL 函式庫,外寄郵件伺服器驗證使用)

   m4 (由 sendmail.mc 產生 sendmail.cf 時使用)

2.設定:

  vi /etc/mail/sendmail.mc  (將前兩行的 dnl 去掉,第四行 127.0.0.1 改成 0.0.0.0 )

     dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
     dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
     .........................
     DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')

如下所示:

     TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN') dnl
     define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5 LOGIN PLAIN') dnl
      .........................
     DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')

(前面兩行,會啟動 smtp 的認證功能)
(第三行會開放 smtp 的服務範圍不是開放RELAY哦,因為預設只對本機(127.0.0.1)做服務)

3.使用 m4 產生新的 sendmail 設定檔:

    cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.bak

    m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

4.設定寄件郵件的最大容量3M

vi /etc/mail/sendmail.cf

#maximum message size
O MaxMessageSize=3000000

5.檔案時間更新並重新啟動 sendmail:

   cd /etc/mail

   touch *

   /etc/rc.d/init.d/sendmail restart

6.啟動POP3協定

   vi /etc/xinetd.d/ipop3

   將disable=yes改成disable=no

   /etc/rc.d/init.d/xinetd restart

7.設定開機啟動服務

  【setup】->【System services】->點選【imap】、【ipop3】、【sendmail】、【xinetd】

8.測試

   # telnet stmail.yocjh.kh.edu.tw 25
   Trying 163.18.135.115...
   Connected to stmail.yocjh.kh.edu.tw
   Escape character is '^]'.
   220 stmail.yocjh.kh.edu.tw ESMTP Sendmail 8.12.5/8.12.5; Wed, 19 Feb 2003 02:01:37 +0800
   (出現上面這一行就成功了,按quit離開)

9.設定服務範圍:設定relay ,就是設定誰可以使用這項服務的意思

   vi /etc/mail/access   (加上以下紅字部分)

      localhost.localdomain RELAY
      localhost RELAY
      127.0.0.1 RELAY
      
stmail.yocjh.kh.edu.tw  RELAY
      163.18.135  RELAY
      #表示163.18.135 這個 Class C 的 IP,可以使用這台機器來寄信

      #RELAY接受,REJECT回傳錯誤訊息,DISCARD丟棄

      #也可以寫郵件地址test@yahoo.com.tw或網域yahoo.com.tw

10.將 access 轉成 access.db

   makemap hash /etc/mail/access < /etc/mail/access
11.測試 mail server 是否為OPEN Relay

教育部的這個網址提供測試:http://www.edu.tw/tanet/spam.html

12.讓使用者的 mail 受 quota 的管制:通常會針對 /home 做 quota 設定,所以把 /var/spool/mail 移到 /home 底下做控管

mkdir /home/mail          //在 /home 下建立一個 mail 資料夾

chown root.mail /home/mail          //改變 mail 的擁有者和群組

chmod 775 /home/mail          //改變權限

mv /var/spool/mail/* /home/mail          //移動使用者的信件

mv /var/spool/mail /var/spool/mail.bak  //變更mail資料夾名稱

ln -s /home/mail /var/spool/mail          //做連結

13.寄給 root 的信都轉給yuan及yuan@mail.yocjh.kh.edu.tw

   vi /etc/aliases (加入下面這一行)
      root:     yuan,yuan@mail.yocjh.kh.edu.tw

   newaliases    (將 aliases 轉成 /etc/aliases.db)

Mail Server概念

MUA ( Mail User Agent )郵件使用者代理人,例如OutLook Express

MTA ( Mail Transfer Agent ) 郵件傳送代理人,郵件主機軟體Sendmail,收受外部主機寄來的信件或幫使用者傳送(寄出)信件

MDA ( Mail Delivery Agent ) 郵件遞送代理人,依照信件的流向將該信件放置到本機帳戶下的郵件檔案(Mailbox),可以將某種信件直接丟垃圾桶或自動回信

Mailbox :『郵件信箱』就是信件收受的檔案

使用的協定:寄信的時候,亦即由 MUA 將信件發送到 MTA 的過程中,以及 MTA 將信轉遞到下一個 MTA 的功能,目前絕大部分的郵件主機都是使用 SMTP ( Simple Mail Transfer Protocol ) 這個協定,port number 25 ,收信則是 MUA 經由 POP3 ( Post Office Protocol  Version3) 協定來連接到 MTA 的使用者 Mailbox,以讀取或者下載使用者在 Mailbox 當中的信件,Port number 為110,常見的 Web 介面的電子郵件使用,大部分就是用IMAP

什麼是 Relay: MTA 幫忙轉信或寄信的功能就稱為 Relay ,任何人都可以使用的電子郵件主機稱為『Open Relay』,通常我們僅針對主機,或者一些規範的 IP 或者是網段等信任的主機來開放他們的 Relay 的功能,所以在這個設定的範圍內的 Client 端電腦可以自由的收發信件,至於沒有規範到的 IP 來源的寄信信件有所謂的 郵件認證機制 來解決,『郵件認證機制』就是在 MTA 當中加入檢查發信者的『帳號與密碼』比對的功能

sendmail 是主要的郵件伺服器程式, sendmail-cf 是一些設定檔案,m4 的套件則是轉換 sendmail 設定檔的一支程式, IMAP 套件,就是負責收信的 POP3 那個協定

Sendmail Server 的檔案架構

/etc/mail/sendmail.cf主要設定檔

/etc/mail/sendmail.mc:用m4 可以將此簡單的環境設定檔轉成 sendmail.cf

/etc/mail/access.db :規定誰可以或不可以使用本郵件伺服器的資料庫,要轉成這個資料庫需要藉由 makemap 以及 /etc/mail/access 檔案的配合

/usr/sbin/sendmail主要執行檔

/usr/sbin/ipop3dsendmail 的功能是在處理寄信問題,而 ipop3d 就是處理 client 的收信問題,pop3 是由 imap 套件所提供的,並沒有包含在 sendmail 套件之中

/usr/sbin/makemap:主要將 access 轉成 access.db

/usr/sbin/mailstats查看到目前為止 Sendmail 共傳送、接收多少郵件

/usr/bin/mailq:用來觀察 /var/spool/mqueue 這個郵件暫存目錄的資料情況的指令

/usr/bin/m4:這個就是將 *.mc 檔案轉成 *.cf 檔案的主要執行檔

/var/spool/mail :信件放置的目錄,一個帳號會使用掉一個檔案

/var/spool/mqueue:有問題的郵件暫時存放目錄,主機會隔30~60分鐘重新傳送一遍,在五天內還寄不出去,就會退給原發信者

群組寄信的功能:寄給s9213@stmail.yocjh.kh.edu.tw,其它人會收到相同的信

1.編輯別名設定檔:
   
vi /etc/aliases (加入群組名單)

     s9213:  s001,s002,s003,s004.s005,s006,s007.....

2.製作資料庫

   newaliases

群組清單放於檔案的別名

1.編輯名單放於/etc/mail/student9213:

  vi /etc/mail/student9213
        
st001, \
        
st002, \
        
....
        
st050
假設共 50 個學生,則最後一個不用加上『 , \』!與變數設定規則相符!

2.編輯 aliases
   
vi /etc/mail/aliases
       
dmtsai:        vbird
       
vbird:         vbird,vbird@vbird.adsldns.org
       
student9213:   :include:/etc/mail/student9213

設定郵件轉遞  .forward

帳號的家目錄之下建立一個檔案,檔名為  .forward

 cd ~
  vi .forward
   
   bird1
      
bird2
      
bird@pchome.com
   
chmod 644 .forward

要轉寄的郵件位址都寫到 .forward ,每個位址用一行,且這個檔案必需設定只有你能修改

五分鐘之內無法寄出,則系統會發出一封『警告信』給原發信者

四小時仍無法寄出,系統會再次的發出警告信,五天都無法將信件送出,會退回給原發信者

只要下達 mailq 或者是 sendmail -bp 就可以這些郵件佇列的基本資料

統計郵件在 Mailer 中的狀態

  mailstats
        
Statistics from Sat Mar 23 21:34:09 2002
         M   msgsfr  bytes_from   msgsto    bytes_to  msgsrej msgsdis  Mailer
         4    50752    9126380K    23617    5425714K     1070     122  esmtp
         9    21329    5919236K    65162   13364494K     1068       8  local
        
=============================================================
         T    72081   15045616K    88779   18790208K     2138     130
         C    72081                88779                 2655

T是總計,msgsfr為寄出,msgsto為收信,msgsrej為退回,msgsdis為丟棄,local為本地

etc/mail/aliases 這個檔案的權限 644

/etc/mail 底下的 *.db 檔案 權限為 640

/var/spool/mqueue 權限為 700

.forward 這個檔案的權限為644

Sendmail Server背景執行名稱daemon

 

quota設定(回頁首)

1.編輯 /etc/fstab(以下是用 /home 作例子)

   vi /etc/fstab,找到下面這一行
       LABEL=/home /home ext3 defaults,usrquota,grpquota 1 2
       (加上 ,usrquota,qrpquota 千萬不要打錯字,也不要加上空格)

2.重新 mount 要設定 quota 的 partion

   mount -o remount /home

3.使用 quotacheck 指令檢查檔案系統,產生 aquota.user、aquota.group

   quotacheck -avmcug

4.啟動或關閉 quota

   啟動:quotaon -avug
   關閉:quotaoff -avug

5.設定使用者或群組的 quota值
   edquota yuan (設定 yuan 這個使用者的 quota ,帳號要事先建好,此範例為容量 100MB)

   修改前:

   Disk quotas for user sysadm (uid 500):

      Filesystem      blocks      soft          hard     inodes    soft        hard

      /dev/hda5       7532           0               0         57          0              0

   修改後:

   Disk quotas for user sysadm(uid 500):
      Filesystem      blocks       soft          hard      inodes     soft      hard

      /dev/hda5       7532      10000       10000         57          0           0

   (第一個 hard 的設定值就是硬碟容量,單位是 KB,所以 10MB 就要設為 10000)

edquota -p yuan joy  (將 yuan 的 quota 值複製給 joy 這個使用者)

edquota -p yuan *  (將 yuan 的 quota 值複製給所有人)

(注意:下這個指令的時候要確定這個目錄下除了使用者目錄外沒有其他檔案存在,不然會失敗)

(注意:Red Hat Linux 8.0、9 不要建立純數字的帳號,在 quota 設定方面會出問題)

 

WAM(回頁首)

下載WAM並安裝(http://webmail.ysps.tp.edu.tw/~wam/download.html)

   cd /disk2/soft

   wget http://webmail.ysps.tp.edu.tw/~wam/wam-1.631225full.zip

   unzip -d /disk2/soft wam-1.631225full.zip

   cd wam

   chmod 755 install

   ./install

修改參數設定:

1.修改 /usr/libexec/wam/ 內的 count.cgi、count_demo.cgi、gbook.cgi、mail.cgi、wam.cgi 五個 cgi 檔

   找到 @referers = ('localhost','127.0.0.1'); 這一行,修改如下:

   @referers = ('localhost','127.0.0.1','mail.yocjh.kh.edu.tw');

2.修改個人首頁範本檔:

   vi /usr/libexec/wam/index.tmp

   第5行: <title>dd的首頁</title></head> ---> <title>USER的首頁</title></head>

   第15行:要修改兩個地方

   <a href="http://www.ysps.tp.edu.tw/">回逸仙國小</a>(將紅字部分改為自己要的)

   <a href="http://HOSTNAME:PORT/gbook.cgi?user=USER">我的留言版</a> (加上紅字的部分)

 

FTP(vsftp)(回頁首)

/etc/vsftpd.conf 或 /etc/vsftpd/vsftpd.conf:主要設定檔,『參數=設定值』等號兩邊沒有空白

/usr/local/sbin/vsftpd 或 /usr/sbin/vsftpd:主要執行檔

/var/ftp:預設匿名者登入的根目錄

1.修改vsftpd.conf 設定值

   vi /etc/vsftpd/vsftpd.conf

       anonymous_enable=NO
       idle_session_timeout=5400 將前面#刪除並修改至1.5小時
       chroot_local_user=YES 加入這一行
2.修改完畢重新執行

    /etc/rc.d/init.d/vsftpd restart

3.設定開機自動執行

   setup   -->system service   -->vsftpd

FTP使用20port傳遞資料,21port負責傳輸流程的控制

 

Samba伺服器(回頁首)

1.修改設定檔

  vi /etc/samba/smb.conf

     [global]

       workgroup = yc #群組名

       netbios name = teacher

       server string = mail samba server

       client code page = 950  #支援中文長檔名

        security = user #需帳號密碼,share就不用密碼

        encrypt passwords = yes

        smb passwd file = /etc/samba/smbpasswd

        log file = /var/log/samba/%m.log

        max log size=0

        interfaces = 163.32.135.1

        local master = yes

        os level = 35

        domain master = yes

        domain logons = yes

        logon script =u.bat

        logon path = /etc/samba

     [homes] #欲分享的虛擬資料夾名稱

        comment = Home Directories

        browseable = no

        writable = yes

        valid users = %s

        create mode = 0664

        directory mode = 0775

     [share]

        comment = share  #說明,註解

        path = /home/share  #實際分享的檔案路徑

        public = yes

        writable = yes

        printable = no

        write list = @users

2.建立分享的目錄

     mkdir /home/share

3.執行testparm檢測smb.conf的設定有沒有錯誤

4.執行samba伺服器

    /etc/rc.d/init.d/smb start

 

RPM(回頁首)

rpm -ivh 軟體套件名稱

i 是 install,v(verbose)是顯示,h 是進度以一串 ########### 來表示

1.該軟體已安裝過

rpm -ivh 套件名稱

如果要重新安裝可用--force 指令:

--force 表示強行置換

rpm -ivh --force 套件名稱

2.沒有相依的套件

rpm -ivh php-imap.x.rpm

failed dependencies:imap is needed by php-imap

如果不管軟體的相依性,可用--nodeps指令強制安裝

    rpm -ivh --nodeps php-ldap*.rpm

移除套件    rpm -e 套件名稱

升級套件    rpm -Uvh 套件名稱,會把舊的軟體移除再安裝新的,不管有沒有安裝過都可以使用

更新套件    rpm -Fvh 套件名稱,只有安裝過的套件才會更新。

查詢

    rpm -qa | grep imap

    rpm -ql apache

a 是 all,q 是 query 查詢已安裝的套件,grep 是搜尋符合的字串

匯入金鑰 rpm --import /usr/share/rhn/RPM-GPG-KEY

 

備份與壓縮(回頁首)

壓縮:將/etc內所有檔案打包並壓縮成etc_backup.tar.gz

   tar -zcvf etc_backup.tar.gz /etc/*

   (-z壓縮,-c建立,-v顯示過程,-f檔名,-x解開,-t顯示內容,-N日期,--exclude 不要的)

 

解開:將/disk2/etc_backup.tar.gz解開到/etc

   cd /etc

   tar -zxvf /disk2/etc_backup.tar.gz

 

壓縮(檔名用日期):將日期2003/09/01後的檔案打包及壓縮

           tar -N '2003/09/01' -zcvf etc_backup.tar.gz /etc

 

壓縮(限來源):將/home內所有檔案打包並壓縮成home_backup.tar.gz,但不包含student92及student91資料夾

         tar -zcvf home_backup.tar.gz /home --exclude /home/student92 --exclude /home/student91

 

系統完整備份:但不包含/dev,/lost+found,/mnt,/proc,/tmp資料夾

        tar -zcvf system`date +%Y-%m-%d`.tar.gz / --exclude /dev --exclude /lost+found --exclude /mnt --exclude /proc --exclude /tmp

 

系統完整還原:(來源/disk2/system2004-01-10.tar.gz)

         cd /

         tar -zxvf /disk2/system2004-01-10.tar.gz

 

設計排程(回頁首)

編輯 /etc/crontab這個檔案

vi /etc/crontab

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01  * * * * root    run-parts /etc/cron.hourly   <==每小時執行的工作
02  4 * * * root    run-parts /etc/cron.daily   <==每天執行的工作
22  4 * * 0 root    run-parts /etc/cron.weekly  <==每星期執行的工作
42  4 1 * * root    run-parts /etc/cron.monthly  <==每個月執行的工作

    分 時日月週 身份    |========指令列===============|

數字代表的意義

分鐘

小時

日期

月份

範圍

0-59

0-23

1-31

1-12

0-6 (0為星期天)

(1) 指令的路徑要下達絕對路徑,不然會找不到要執行的檔案
(2) 第一個數字 */5 表示『每五分鐘執行一次』的意思!

重新啟動 crond 這個服務吧!

/etc/rc.d/init.d/crond restart

藉由檢查 /var/log/cron 的內容來視察是否有『非您設定的 cron 被執行了?』

 

掛載與安裝硬碟(回頁首)

1.硬碟partition切割

   fdisk /dev/sdb

   (p顯示目前狀態,d刪除,q離開,n新增再按p再按1...,w儲存)

2.格式化

   mke2fs -j -c /dev/sdb

   (-c檢查錯誤,-j建立ext3的journaling的檔案格式)

3.建立一個目錄用來掛載新硬碟

mkdir /disk2

4.掛載新硬碟

mount -t ext3 /dev/sdb1 /disk2

(-a依/etc/fstab內容重新掛載,-l列出已掛載裝置)

(-t ext3為Linux檔案格式,-t vfat為Windows,-t iso9660光碟機)

5.系統自動掛載

vi /etc/fstab

加入 /dev/sdb1  /disk2   ext3   defaults,iocharset=big5,codepage=950   1   1

(defaults,iocharset=big5,codepage=950表示支援中文編碼)

 130*100M

 

掛入與卸除:

mount /dev/hdb /mnt/data 掛第二顆硬碟 umount /mnt/data

mount /dev/cdrom /mnt/cdrom 掛光碟機 umount /mnt/cdrom

mount /dev/fd0 /mnt/floppy 掛軟碟 umount /mnt/floppy

mount /dev/sdb /mnt/data 掛第二顆scsi硬碟 umount /mnt/data

hdb1  第二顆IDE硬碟的第一分割區

sdb1   第二顆SCSI硬碟的第一分割區

 

其它(回頁首)

設定開機進入圖形或文字模式

   vi /etc/inittab

改為 id:3:initdefault  跑文字模式

改為 id:5:initdefault  跑圖形模式

將光碟中己安裝過的套件升級

   mount /dev/cdrom /mnt/cdrom

   cp /mnt/cdrom/* /tmp

   cd /tmp

   rpm -Fvh --force *

 

重要檔案

/etc/fstab 啟動時自動設定掛載週邊設備

/etc/lilo.conf Linux Loader 設定檔

/tmp/install.log Red-Hat安裝Log檔

/var/adm/syslog 記錄su之使用

/etc/passwd , etc/shadow  帳號資料及密碼檔

/var/log 各種系統之log檔

/etc/rc.d 自動開機執行檔(類似Autoexec.bat)

/etc/issue,

/etc/issue.net 可修改login畫面,.net表telnet進來的畫面

/etc/syslog.conf  設定各種log檔的存放位置及檔名

/etc/login.defs   建立帳號時預設值內容

/var/log/maillog  郵件log檔

 

目錄介紹(回頁首)

/ 根目錄,包含整個作業系統的目錄及檔案

/etc 系統設定檔,如使用者帳號及密碼,輸入法,啟動模式

     /etc/X11 放X Window相關的設定檔

     /etc/rc.d 系統開關機必讀的執行檔及Script檔

/home 個人目錄,每位使用者帳號都在其下開一個資料夾

/var 記錄檔及網頁,spool列印工作,log系統活動過程,www網頁,ftp檔案傳輸

/bin 指令檔,供系統或各種程式應用

/usr 主要的應用程式,X11R6為XWindow相關的檔案,bin使用者可執行的指令檔

/boot 核心程式,啟動Linux時必讀的程式檔

/lib 系統共用函式庫,/lib/modules 系統核心的模組檔案

/mnt 存放各儲存媒體的掛載點

/root 系統管理者root的個人目錄

/sbin 存放啟動Linux時需執行的程式檔,如fsck,init,swapon,lilo

/tmp 存放臨時性的檔案

/opt 系統程行時暫存檔存放位置

/proc 存放系統核心及執行程序間的資訊檔

/dev 放週邊設備檔,每個設備一個檔案

 

指令介紹(回頁首)

ping IP (偵測電腦)

ipconfig (顯示網路設定)

passwd 帳號名稱  (改密碼)

useradd 帳號名稱  (建立帳號) 

userdel -r 帳號名稱   (刪除帳號及使用者目錄及郵件)

groupadd 群組名稱   (建立群組)

groupdel 群組名稱   (刪除群組)

top或ps   (監看系統狀態)

netstat -a | more   (監看網路連線),LISTEN等待被連線,ESTABLISHED正在連線

檔案資訊指令

[ls] 顯示檔案系統結構

    ls --color => 以彩色顯示檔案資料

    ls | more  => 分頁顯示ls結果

    ls -l      => 詳細列出檔案系統結構

    ls -a      => 不隱藏以點開頭的檔案(.file)

[ln] 建立符號連結﹝類似捷徑﹞

    ln -s source destination

[file] 查看/分辨檔案類型

    file perl  => 查看Perl的檔案類型

[cd] 切換目錄

    cd test  => 切換到test的目錄

[find] [locate] [whereis] 尋找檔案及相關指令

    whereis perl => 查看Perl指令的位置

    find / -name perl* => 查看perl的有關檔案

[pwd] 顯示您目前的工作目錄

    pwd => 結果:../root

檔案管理指令

[chmod] 改變檔案存取權

    chmod +/-rwx test.txt

[chgrp] 改變檔案群組擁有者

    chgrp friend test.txt

[chown] 改變檔案擁有者

    chown tommy test.txt

[cp] 複製檔案

    cp test.txt test2.txt => 將test.txt複製成test2.txt

cp [options] source1 source2 source3 .... directory

選項與參數:

-a :相當於下方 -pdr 的組合(常用)

-d :若來源檔為連結檔的屬性(link file),則複製連結檔屬性而非檔案本身;

-f :為強制(force)的意思,若目標檔案已經存在且無法開啟,則移除後再嘗試一次;

-i :若目標檔(destination)已經存在時,在覆蓋時會先詢問動作的進行(常用)

-l :進行硬式連結(hard link)的連結檔建立,而非複製檔案本身;

-p :連同檔案的屬性一起複製過去,而非使用預設屬性(備份常用);

-r :遞迴持續複製,用於目錄的複製行為;(常用)

-s :複製成為符號連結檔 (symbolic link),亦即『捷徑』檔案;

-u :若 destination 比 source 舊才更新 destination ! 最後需要注意的,如果來源檔有兩個以上,則最後一個目的檔一定要是『目錄』才行!

[mv] 移動及更名檔案

    mv test.txt ../home => 將test.txt移到Home目錄

    mv test.txt abc.txt => 將test.txt改名為abc.txt

[rm] 刪除檔案

    rm test.txt => 刪除test.txt檔案

[mkdir] 建立目錄

    mkdir test => 建立test目錄

[rmdir] 刪除目錄

    rmdir test => 刪除test目錄

磁碟管理指令

[fdformat] 格式化軟碟

    fdformat /dev/fd0

[badblocks] 檢查壞磁區

    badblocks /dev/hda1

[mkbootdisk] 製作開機片

    mkbootdisk --device /dev/fd0 2.2.xx

    其中:

    kernal的版本可在 /lib/moudules 下找到

    *製作救援磁片 :

    dd if=rescue.img of=/dev/fd0 bs=1440K

[mkfs -t ext2] 製作 ext2檔案系統

    mkfs -t ext2 /dev/hda1

[fsck] 檢查檔案系統

[fdisk/cfdisk] 分割Partition

[mount] 掛入檔案系統 (磁碟、光碟等)

    mount /dev/fd0 /mnt/floppy => 掛載 Floppy

    mount /dev/cdrom /mnt/cdrom => 掛載 CDROM(IDE)

    mount /dev/sd0   /mnt/cdrom => 掛載 CDROM(SCSI)

[umount] 卸掛檔案系統 (磁碟、光碟等)

    umount /mnt/cdrom

[du] 查看硬碟使用狀況

[df] 查看硬碟剩餘空間

    df -h

  Back to TOP    系統相關指令

[logout/exit] 登出系統

[reboot] 重新開機

[shutdown] 關機

[sync] 將Process或記憶體,Swap區中的緩衝資料回存

[hall] 強迫關閉所有運作中Process,然後關機

[ps] 列出目前在記憶體中之Process狀態

[kill] 強行終止一個運行中Process

[free] 查詢記憶體狀態

[uname] 顯示伺服器之資料

    uname -a

[cat /proc/cpuinfo] 顯示CPU有關資料

[cat /proc/version] 顯示Linux的版本及其它資訊

[cat /proc/filesystems] 顯示目前所使用的檔案系統

[cat /etc/printcap] 顯示印表機的設定

[lsmod] 顯示已載入的核心模組 ﹝必須以root登入﹞

[set] 顯示使用者的環境變數

設定用指令

[ifconfig] 查看網路狀態

[netconf] 設定網路相關細節

[setup] 設定TimeZone、Sound、X...等

[liloconfig] Lilo之config

[xf86config] 傳統的 X-Window 設定程式

[XF86Setup] X-free GUI介面X-Window設定程式

其他指令

[startx]啟動X視窗系統

[clear] 清除螢幕

[gunzip] 解.gz的壓縮檔

    gunzip -d test.gz

[tar] 解.tar,.tgz的壓縮檔

    tar -zxvf test.tar

    z: 使用gzip

    x: 解開tar檔

    c: 建立一個新的tar檔

    v: 顯示運作過程資訊

    f: 檔案名稱

rpm 安裝以rpm包裝的檔案﹝Red Hat派專用安裝檔﹞

        rpm -ivh filename.rpm﹝安裝﹞

        rpm -Uvh filename.rpm﹝升級﹞

        rpm -qip filename.rpm﹝查詢﹞

        rpm -e filename.rpm ﹝移除﹞

        v: 核對package內特定檔案

        h: 印出 "#" 以顯安裝進度

[w]/[who] 列出線上使用者

[whoami] 查看自己的Login Name

[date] 查看目前日期時間

[cal] 顯示月曆或年曆

[man] 查詢指令用法

    man ls => 查詢 ls指令的用法

 

last  曾登入系統的使用者

top/ps   監控系統資源

ifconfig eth0 down/up   關閉或開啟網路卡功能

netstat -t   顯示TCP/IP連線狀況

netstat -i 網卡接收與傳送封包狀況

startx   進入X Window

sync   將buffer寫入硬碟

shutdown -r now / reboot   重新開機

more  /  less   顯示或瀏覽內容

pwconv/pwunconv  啟動與關閉投影密碼

ps -aux   顯示背景執行的程式

kill  代號   刪除執行的程式

su -帳號   變換使用者

get 網址    下載一個檔案

mget  網址    下載多個檔案

put  網址    上傳一個檔案

mput 網址    上傳多個檔案

 

救援模式(回頁首)

文字介面GRUB 選單:

  1.有設定password按p後輸入密碼

  2.按e後在後面按空白並加上 1或 single,如下

     grub edit>kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ 1

  3.按Enter後回上層畫面,按b開機即可。

圖形介面lilo:

  1.按Ctrl+X離開圖形介面後出現 boot:

  2.輸入linux single

光碟開機:

  1.用RedHat第一片光碟開機

  2.在文字boot後輸入 linux rescue再選語言 English,鍵盤 us

    如沒有/mnt/sysimage則自行mount,如下

    1.mkdir /mnt/system

    2.mount /dev/sda3 /mnt/system

    3.mkdir /mnt/disk2

    4.mount /dev/sdb1 /mnt/disk2  

    5.cd /mnt/system

    6.tar -zxvf /mnt/disk2/etc.tar.gz

      將備份的檔案還原

 

Proxy(squid)(回頁首)

安裝 squid 使用 Tarball 方式

1.下載squid

   wget  http://ftp.nsysu.edu.tw/Unix/Proxy/squid/source/STABLE/squid-2.5.STABLE4.tar.gz

2.解壓縮:

   cd /usr/local/src

   tar -zxvf /disk2/software/squid-2.5.STABLE4.tar.gz

   cd squid-2.5.STABLE4.tar.gz

3.開始設定參數:

export CFLAGES='-O2 -mcpu=i686'

./configure --prefix=/usr/local/squid  --enable-gnuregex --enable-async-io=160 --enable-icmp --enable-kill-parent-hack --enable-snmp  --disable-ident-lookups --enable-cahce-digests --enable-err-language="Traditional_Chinese"  --enable-poll --enable-linux-netfilter

4.編譯及 Install

   make && make install

5.設定相關參數

    vi /etc/man.config

         MANPATH /usr/local/squid/man   # 新加入這一行與 Squid 有關的 man page

設定squid

 vi /usr/local/squid/etc/squid.conf

1.記憶體與磁碟快取留存百分比設定

   cache_mem                       256 MB
   cache_swap_low 80

   cache_swap_high 95

   maximum_object_size             65536 KB

2. 設定快取目錄 ( Cache dir ) 的位置及大小與記錄檔案所在的目錄

#<cache_dir> <aufs|ufs> <目錄所在> <MBytes大小> <dir1> <dir2>

   cache_dir aufs /disk2 36000 16 256

   cache_dir aufs /disk3 36000 16 256

3. 關閉認證機制(mark起來)

   #auth_param basic children 5

   #auth_param basic realm Squid proxy-caching web server

   #auth_param basic credentialsttl 2 hours

4.關於連線時間限制

   connect_timeout 30 seconds
   
peer_connect_timeout 10 seconds
   
request_timeout 1 minutes
   
persistent_request_timeout 20 seconds

5.限制使用 proxy 的使用者,找http_access deny all加上這兩行

   acl inside src 163.18.135.0/24

   http_access allow inside
   
http_access deny  all

6.設定 squid 的擁有者與系統管理員信箱:
   
cache_effective_user   nobody
   
cache_effective_group  nobody

   cache_mgr yuan@mail.yocjh.kh.edu.tw

變更目錄權限: cache_dir 在 /disk2 時

   chown -R nobody:nobody /disk2

開始啟動 squid:建立快取目錄的格式,以 nobody 來啟動 squid

   /usr/local/squid/sbin/squid -z

   su nobody -c "/usr/local/squid/bin/RunCache &"

查看是否真的啟動了 squid 了?

    netstat -tln | grep 3128

        tcp        0      0 0.0.0.0:3128       0.0.0.0:*          LISTEN
重新讀取設定檔 squid.conf 的方法:

   /usr/local/squid/sbin/squid -k reconfigure

暱稱acl 的用法

<acl> <acl名稱> <acl類型> <設定的內容>

acl類型

src  ip-address/netmask:來源的 IP 位址,163.18.135.0/24

src addr1-addr2/netmask:一段範圍來源的 IP 位址

srcdomain .foo.com:來源為一某個網域的電腦

dst ip-address/netmask:目的端的 IP 位址

dstdomain .foo.com:目的端的網域

上層 Proxy 的設定方式: cache_peer

<cache_peer> <主機名稱> <類別> <http_port> <icp_port> <其他參數>

weight=n :權重的意思, n 越大表示這部 Proxy

default  :表示該部主機為預設的 Proxy 主機
  no-netdb-exchange:表示不向附近的 Proxy 主機送出 imcp 的封包要求
  no-digest :表示不向附近主機要求建立 digest 紀錄表格。

使用 cache_peer_access 這個設定項目主要的格式範例:
# <cache_peer_access> <上層 Proxy > <allow|deny> <acl名稱>