FreeBSD的一些簡單使用技巧

一、在 unix-like 中檔案結構是蠻重要的,那麼要如何去看相關檔案目錄結構的說明呢?

難道是 cd 到每一個目錄下嗎?其實有更好的方法..

那就是用好男人 man 來看:

# man hier 



二、在 console 下操做時,因爲屏幕顯示有限,有時需看前面顯示的資料,這時你可:

. 按一下 Pause or Scroll Lock鍵後,則可利用 PageUp PageDown Up Down
Home End 等鍵來看先後顯示的資料

. 再按一下 Pause or Scroll Lock則可回覆等待輸入畫面.

三、 使用 pw 來管理你的賬號

在 FreeBSD 下使用 adduser 來新增賬號,有些時會滿煩的,可用如下方式:

pw useradd -n -g -m -s /bin/csh

=> -m 表明創建使用者目錄

●同時設密碼

echo | pw useradd -n -g -m -s /bin/csh -h 0

● 刪除賬號

pw userdel -n -r

=> -r 表明同時刪除其 home 目錄等相關資料

● 修改賬號

pw usermod -g -s /bin/csh

PS:沒法修改賬號名稱

● lock 及 unlock 使用者賬號 


pw lock 
pw unlock 

四、 激活你的 screensaver

因爲 FreeBSD 大多當爲主機使用,都是常期不關機的,所以可將屏幕關掉,或使
用 ScreenSaver 功能..

使用 ScreenSaver 請在 /etc/rc.conf 這個檔加入如下兩行:

blanktime="900"

=> 以秒數爲單位,如以上爲 15 分鐘

saver="logo"

=> logo 是 FreeBSD 的吉祥物(圖型接口),另也可以使用 "daemon",這是文字型式

五、 檢查你的某一個 ports 版本及更新

若是要更新全部的 port 只需在 /etc/ports/ 下執行如下指令:

# make update

有時咱們可能要檢查某一個 ports 的版本,在每一個 ports 中的 Makefile 都有這一行

PORTVERSION= x.x.x

如此就可看到這個 ports 的版本了,另外也可以使用如下方式(用 grep),好比我
們想看 mod_php4 的版本

# grep PORTVERSION= /usr/ports/www/mod_php4/Makefile
PORTVERSION=   1.4.1 -> 版本訊息

若是版本太舊了,則可利用如下方法來更新單一 ports

a. 使用 portupgrade 或 portinstall,請用 man 查看用法

b. 到 FreeBSD 網站查詢最新的 ports 信息,並抓 ports 回來更新

網址:http://www.freebsd.org/cgi/cvsweb.cgi/ports/

抓回來後在相關目錄更新,例如咱們抓回的是 mod_php4.tar.gz,存在 /usr/tmp/ 目錄下,則解壓縮的方式以下:

# cd /usr/ports/www/mod_php4
# tar xzvf /usr/tmp/mod_php4.tar.gz

如此就 ok 了..

六、 加速你的按鍵速度..

相信使用 FreeBSD 的人不少都是在 console 下操做吧,有些時,要重複某一按鍵速度實在很慢..

另外一個問題就是 cusror 的位置有些時不太明顯..

可用如下方法來改善:

在 /etc/rc.conf 中加入如下資料..

keyrate="fast"
cursor="blink" 或 "destructive"

七、 設定開機畫面

使用 windows 的人,都知道所謂的開機畫面,在 FreeBSD 下是否也有此功能呢?答案是確定的,並且設定更爲簡便,請照如下 steps:

一. 首先製做一個圖型文件,檔案格式爲 logo.pcx 或 logo.bmp,需注意的是
.bmp 的檔案存盤時不用壓縮,分辨率需爲 640 X 480 之內(含),色階爲 256
色..

二. 將此檔案 copy 到 /boot/ 這個目錄下

三. 設定 /boot/loader.conf,加入如下資料

splash_bmp_load="YES" -> 若是使用 .bmp 格式,此項需設爲 YES
splash_pcx_load="YES" -> 使用 .pcx,請將此項設爲 YES
vera_load="YES"
bitmap_load="YES"
bitmap_name="/boot/logo.pcx" -> 請依你的檔案格式更改
bitmap_type="splash_image_data"

四. 從新激活
ps: 請檢查你的 kernel 中是否有設定如下資料,通常在 4.x 中都是內定值..,至於 3.x 版,沒用過..^.^

preudo-device splash

若是沒有,則需將此行加入並從新編繹核心.


八、 一些 console 下使用的快速鍵..

相信大多使用 unix-like 的使用者,仍是在 console 下執行你的平常維護工做吧,那有那些按鍵組合可幫咱們提升效率呢..

如下按鍵皆適用於 tcsh 及 bash..

1. 快速移動光標

ctrl+a -> 到最前面
ctrl+e -> 到最後面

2. 編輯方面

ctrl+d -> 刪除光標所在字符
ctrl+w -> 刪除光標所在字前面的字符
ctrl+u -> bash:將光標前全部的字及字符刪掉,tcsh:刪除全部字
ctrl+k -> 將光標後全部字符刪掉
ctrl+b -> 下個字符
ctrl+f -> 前一個字符
ctrl+m -> 和按下 enter 的結果同樣
ctrl+h -> 和按下 del 或 backspace 鍵同樣
del 或 backspace -> 刪除前一個字符

若是對按鍵有研究興趣者,不彷參考 /usr/share/syscons/keymaps/ 這個目錄,其中 us.iso.kbd 是通常咱們使用的按鍵..

九、 快速切換目錄

在 FreeBSD 中經常須要切換目錄,有時目錄名稱較長、或是有大小寫、或是隻記得前面幾個字,怎麼辦..

其實只要輸入部份字再加上 * 這個符號就能夠了..

如咱們要切換到 /usr/local/ 這個目錄,只需輸入 cd /usr/lo* 就能夠了..

若是輸入 cd /usr/l* 會如何呢?則會進到 /usr/lib/ 這個目錄,這是由於 shell 找到第一個符合的條件便中止了..

十、 有關時間及時區的比較

使用 FreeBSD 大可能是拿來當作主機使用,那時間及時區的正確與否就很是重要
了,如下介紹如何校整時間及時區 

● 時間校訂
1. 使用 date 指令

格式 date [yymmdd]HHMM
說明:
yy 年數,如 02 表明 2002 年
mm 月份 01-12
dd 日數 01-31
HH 時數 01-59
MM 分鐘 01-59 

2. 使用對時主機

# ntpdate clock.stdtime.gov.tw

這項需能連上網絡,其中 clock.stdtime.gov.tw 是一標準時間的主機

● 時區的設定

1. 使用 tzsetup

2. 在 /etc/ 下有個檔案 localtime,這個就是本機的時區設定檔案,所以咱們可用個取巧方式(不經由 tzsetup),如如下:

# cp /usr/share/zoneinfo/Asia/Taipei /etc/localtime

這樣是否是比較快呢..

十一、 如何清空檔案內容..

有時咱們需將一個檔案內容清空,但需保留這個檔案..

通常常見的用法是用文字編輯器,如 vi 將這個檔案叫出來,再將其內容所有刪掉,再存盤..

這樣是否是有些煩呢?

有一個更好的方法,使用 true 指令..

如咱們要將 /var/log/httpd-access.log 清空,則下如下指令..

# cd /var/log/
# true > httpd-access.log

十二、 顯示目錄及檔案 => tree

有時需顯示某個目錄下全部的目錄及檔案,雖使用 ls 可達到部份功能,但並非很方便..

在 dos 中,有個 tree 指令,是否是滿好用的..

其實在 FreeBSD 中也有相似的指令 => tree..

如下咱們就透過 ports 來安裝 tree

# cd /usr/ports/sysutils ; make install

如此會將 tree 這個指令安裝在 /usr/local/bin/ 這個目錄下..

使用例子:

1. 顯示 /usr/ 下的目錄及檔案

# tree /usr

2. 只顯示 /usr 下的目錄

# tree -d /usr

詳細用法請參考 man tree

PS:可透過管道 | 及 more 來顯示

如 tree /usr | more..

1三、 如何檢視檔案類型

因爲 FreeBSD 並無像 dos 或 windows 般有擴展名的觀念,所以要如何檢查一個檔案的類型呢?

用 file 吧..

語法: file 

詳細用法請參考 man file

1四、 重複使用先前使用過的指令

你可使用如下的方法來重複使用先前使用過的指令:

例如,咱們先用 history 顯示先前輸入的指令:

# history
.
..
...
10 clear
11 cd /usr/local
12 ls
13 ls etc
14 cd ~
15 clear 

1. 用 up down 可用上下一個指令,或是 ctrl+p ctrl+n 亦然

2. 配合 ! 的用法,例如如下(ps: 在<...>內表明要輸入的東東)

!!
# !! => 重複執行上個一個指令

!<編號>
# !11 => 執行 cd /usr/local

!<指令> 可輸入部份字,但前面部份需符合
# !cl
執行 15 clear 指令

! 輸入部份字符,部份吻合
# !?etc?
執行 13 ls etc

以上指令在 tcsh 及 bash 下皆可以使用,如此是否是可幫你省下許多時間..


1五、 如何將 man 的檔案印出來..

man 是你們學習 FreeBSD 的最佳資料參考來源,但在顯示器上看到底不是很方便,有沒有方法轉成通常的文件檔案呢?

使用 col 這個指令吧..

例咱們要將 ssh2 轉成 ssh2.txt,則使用如下語法:

# man ssh2 | col -b > ssh2.txt


1六、 爲什麼查不到正確的 ports 資料..

在 /usr/ports/ 下有着幾千個 ports 的安裝資料,有時咱們可以使用如下方式來查相關的 ports..

如下都是在 /usr/ports/ 這個目錄下執行..

1. 先將 ports 資料轉換成一個文字文件,如 index.txt

# make print-index > index.txt

2. 使用 make search key="...." 來查

3. 將 ports 內容轉換成 README.html

用以上方法,可很容易的查到相關的 ports 資料,但很奇怪的是,爲什麼我更新
一個 ports 的資料後(或 ports tree),爲什麼會查不到,
查到的仍然是舊的資料.. 

原來,在 /usr/ports/ 中有一個 INDEX文件,以上的查詢方式都是在這個
INDEX 檔中查詢,當你更新 ports 資料時,這個 INDEX 檔並不會隨之更新..

因此爲了查詢方便,咱們需以手動的方式來作..

# make index

作完後,再更新 index.txt 及 README.html..

不過更新 INDEX 檔須要一些時間,大約 12-30 分鐘..(視計算機等級而定).


1七、 用 dig 及 host 來取代 nslookup

通常咱們用來檢查網絡是否有問題,大可能是用如下三個指令..

nslookup
ping
traceroute

其中 nsllokup 是用來檢查 dns 的相關設定, ping 用來檢查本身和對方網絡
否通順,而 traceroute 則是用來檢查從本身的計算機到對方的計算機所通過的
線路情況..

不過以 nslookup 而言,我的以爲不是很實用,有時咱們只是想單純的查一下某
臺主機或是 MX 記錄,那使用 nslookup 就有點嚕嗦了..

在此介紹二個好用的指令 host 及 dig,這二個指令很相似,不過效率較 nslookup 高

# host -a <主機名稱> 或 

=> 輸入主機名稱顯示 dns 正向解析的部份,輸入 ip 則是顯示反向(ptr)

# dig <主機名稱或ip> 

如要顯示 MX 記錄

# dig 主機名稱 mx

我的是以爲比 nslookup 方便多了,你以爲呢.. ^.^

固然功能不僅這些,詳情請 man dig 或 host.. 


1八、 加快你的開機速度..

嚴格提及來,FreeBSD 的開機速度算滿快的,不過中間會有個 10 秒的延遲時間
(以便讓你進入 boot 的 command prompt mode),若是你嫌這10秒仍是太慢了,
那你可將時間?#123;短一些..

FreeBSD 激活時會先去參考 /boot/defaults/loader.conf 檔的設定,而後再參
考 /boot/loader.conf,通常咱們都不去?#123;整
/boot/defaults/loader.conf 這個檔,而直接?#123;整 /boot/loader.conf..

只要在 /boot/loader.conf 中加上如下這一行便可

autoboot_delay="秒數" 便可,如

autoboot_delay="7" 表明7秒

這樣開機是否是更快了..

另外建議,有時間可參考一下 /boot/defaults/loader.conf 這個檔案的設定,
其中有許多實用的設定哦


1九、 忘了 root 密碼

若是你忘了 root 的密碼怎麼辦,這在 FreeBSD 中滿好解決的,請照如下 steps 來處理..

1. 進入單人模式

開機後,當出現

Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [kernel] in 10 seconds...

按 space(或除了 enter 之外的鍵) 鍵則會進入 command prompt mode,同時出現一個 ok ..

這時請輸入 boot -s 以進入單人模式 

2. 選擇 sh

進入單人模式後,系統會詢問你要使用那個 sh,內定是 /bin/sh ,就使用這個吧,直接按 enter 跳過

3. 將全部的硬盤分割架起來

# mount -a

4. 更改密碼

# passwd

長度要在 6 個以上,輸入二次

5. 從新激活

# reboot


20、 有關 kernel 的激活..

kernel 對 unix-like 系統來講,是很是重要的一環,若是 kernel 損壞或編譯出了問題,可能會致使嚴重的後果..

FreeBSD 一貫以安全著稱,在這方面有什麼防禦的措施呢?

FreeBSD 的 kernel 是放在 / 目錄下,通常會有二個

kernel
kernel.GENERIC

若是你有編譯過核心(kernel)的話,則原先的 kernel 會轉換成 kernel.old,新
的核心會變成 kernel,也就是在 / 下的 kernel 檔案以下:

kernel => 新編譯過的核心
kernel.GENERIC
kernel.old => 原先的核心

那 kernel.GENERIC 是什麼呢,這個是系統安裝時所裝好的,通常都不會變更,
即便編譯過核心亦然,這個檔案可說是救命核心,最好不要亂動,理由以下所
言..

FreeBSD 激活時,會使用 kernel 這個核心,若是這個檔案不存在,則會抓 kernel.old 這個檔案..

若是這二個檔案不幸都不在,那怎麼辦..這時則會進入 command prompt mode,你必需自行輸入 kernel 的名稱,如

boot 如

boot kernel.GENERIC

瞭解以上以後,在編譯核心沒法正常執行時,相信各位知道如何處理了.. 


2一、 FreeBSD 在那激活程序.. 

通常 FreeBSD 激活後會依序執行如下位置的程序.. 

1. /etc/rc.conf 這個檔案內的程序,如 sendmail、sshd .. 都是在此執行,另
外要注意的是,在執行這個檔案以前,會先參考 /etc/defaults/rc.conf 的設定

2. /usr/local/etc/rc.d 下的一些 .sh 文件,這些檔案的權限都是被設定成 x ,如 apache samba .. 都是在此設定 

3. /etc/rc.local 這裏也可設定,如我要把 postfix 設定在此,只需在這個檔案內加一行,以下 

/use/local/sbin/postfix start & 

加上 & ,就不會顯示出訊息 

4. 由 cron 所控制的一些檔案,當時間到了,便會自動執行.. 

那心細的人可能會問, /etc/inetd.conf 內設定的呢?這些在第 1 項就執行了.. 

瞭解以上並時時注意是否有不明的程序在執行(多是被人植入木馬程序),也是
平常檢視系統的重要工做.. 

2二、 加快你的主機名稱查詢速度.. 

unix-like 系統,初期都是使用 hosts 這個設定文件來作主機的查詢,所以有些
程序在查主機名稱時,都會參照這個設定檔,像 sendmail 就是一個很好的例
子..

系統內定第一個是會查 /etc/hosts 這個檔案,所以若是裏面設定有問題,則會影響到某些程序的執行.. 

典型的 hosts 檔設定以下..以我自己的主機來講 

127.0.0.1 localhost.cmlab.idv.tw localhost 
61.219.230.5 cmlab.idv.tw cmlab 
61.219.230.5 cmlab.idv.tw. 

其中第一及第二行最後一個項目是 aliases 名稱(主機別名),好比咱們在主機 

ping cmlab.idv.tw 

和 

ping cmlab 

是一樣的結果.. 

你可把一些經常使用的主機加到這個項目內,若有一臺 mail.cmlab.idv.tw ,假設 IP 爲 61.219.230.8 

則在這個 hosts 中加入如下 

61.219.230.8 mail.cmlab.idv.tw mail 
61.219.230.8 mail.cmlab.idv.tw. 

這樣就好了.. 

另外若是有自行架設 dns server,請注意在 /etc/host.conf 這個檔案,典型的檔案以下: 

# $FreeBSD: src/etc/host.conf,v 1.6 1999/08/27 23:23:41 peter Exp $ 
# First try the /etc/hosts file 
hosts 
# Now try the nameserver next. 
bind 
# If you have YP/NIS configured, uncomment the next line 
# nis 

由以上能夠看得出來,在查詢主機名稱時的順序,是先查 hosts 再查 bind 也就是 dns,你可視你的須要修改其順序.. 

另外要注意的就是 /etc/resolv.conf 文件,這個是有關 dns 主機 search 的順序,如以個人設定以下: 

domain cmlab.idv.tw 
nameserver 61.219.230.5 
nameserver 168.95.1.1 
nameserver 168.95.192.1 

其中第一行是設定個人網域名稱,第 2-4 行則是 dns 主機的設定,建議至少設二個以上,以避免一個掛了,還有個備用的.. 

第2行是個人 dns 主機,3-4 行是 hinet 的 dns 主機.. 

瞭解以上並有正確的設定,是有助於主機的查詢的及速度的提高.. 

2三、 我要如何分割硬盤.. 

檔案目錄對於 FreeBSD (或者是全部 unix-like 系統),都是至關重要的,如開
始時,分割的不是很恰當,往後就會遇到一些麻煩,如空間不夠..等問題..

那麼,咱們要如何分割比較恰當呢.. 

這就有關於你的用途及 FreeBSD 的目錄架構了.. 

通常我的是建議你如此分割: 

1. / 根目錄,通常在 250 ~ 500 MB 絕對夠用,以個人根目錄來講,使用一年多
了,也才用了 66 MB 多。由於這個目錄只是一些 kernel modules sbin bin
etc .. 等目錄

2. swap 檔,通常人都不知道如何設較恰檔,這也沒一個標準,最主要是要看你
的 ram 及硬盤而言,通常設成 1-2.5 倍(相對於你的 ram)。如你的 ram 在
256 mb 以上(含),設成一倍;如在 64 - 128 mb,則建議設成 2 倍

如要檢查你的 swap 使用情況,可用如下指令來看.. 

# pstat -T 
44/4044 files 
0M/127M swap space 

由以上可看出目前使用的 swap 爲 0 ,設定的大小爲 128 M 


3. /var 目錄 及 /usr 目錄 

這二個目錄通常都會佔比較大的空間,/var 的變更較小,以我我的來講,一年前設爲 8 GB ,在目前只使用了不到 2GB。 

但要注意的是通常的 mail 軟件,都是將信件存在 /var/mail/ 中,若是你的信件不少或很大,這個部份不妨加大一些.. 

而 /usr 這個目錄能大就給它大一點的空間,由於所安裝的程序,或是 hone 都是在這個目錄下(若是你沒將 home 目錄設成一個分割) .. 

那這兩個要如何分配呢,個人建議是 usr 和 var 的比例爲 3:1,或是 2:1 

4. 有些主機使用者較多,如學校單位。若是你沒將 home 設成一個 partition,
則 FreeBSD 會將 home 安裝在 /usr 目錄下,若是爲了管理及安全問題,則不妨
將 home 分割爲單一目錄..

至於大小,我想應該 3-5 GB 左右,就絕對夠用了 

咱們來舉個實際例子,假設你有一顆 40 GB 的硬盤,使用內存爲 128 MB RAM,那我建議你的硬盤如此分割.. 

1. / => 250 MB 
2. swap => 取 2 倍,即 256 MB 
3. /home 如要獨立出來,給它 3-5 GB 
4. 剩下來的以 3:1 或 2:1 的比例設給 /usr 及 /var 


以上只是通常建議,最重要的是必需瞭解各目錄的性質及實際使用狀況而予以適
當的分配,有關這方面的信息,不妨參考 man hier .. 

 php

2五、 簡單編輯你的文件檔.. 

在 unix-like 中,標準的文字編輯器是 vi,不過 vi 對於初學者而言,並非很容易上手.. 

而在 FreeBSD 中使用的是 ee ,這個文字編輯器,雖功能沒 vi 這麼強大,但使
用簡便..新手不妨初期時使用個編輯器..

其使用方式很簡單,只要在 command line 下 ee 便可 

# ee <要編輯的檔案> 進入 ee 畫面後,最上方是一些按鍵說明,如要取得相關
的 ee 說明,可先按 ctrl+c 鍵,再輸入 help,則會顯示詳細說明

有時可能只想在一個檔案內加入一小部份的資料,那使用文字編輯器來處理,就
顯得沒效率,其實咱們能夠利用 cat > [文件名]和 cat >> [文件名] 來作..

那這二個方式有何差別呢.. 

cat > [文件名] 時,若是檔案不存在,則會自動產生一個檔案;如檔案存在則會將檔案清空.. 

cat >> [文件名],檔案不存在則自動創建此檔,如存在則將所編輯的資料加在檔案的最後.. 

舉個例子,如咱們要編輯 /etc/mail/access 這個是 sendmail 的 relay 設定檔.. 

想在這個檔案中加入 192.168.88.5 relay 

則可用此方法(假設 access 檔案已存在,故使用 cat >> .. 的方法) .. 

# cat >> /etc/mail/access 
192.168.88.5 RELAY 
按 ctrl+d 存盤 

如此則可將 192.168.88.5 relay 加到 access 的最後一行.. 

不過,建議你們,unix-like 的共通文字編輯器是 vi,有時間不妨好好的學一
下 vi.. 


2六、 FreeBSD 賬號及密碼的注意事項 

在架完 FreeBSD 後,再來就是新增人員(使用者)的資料了.. 

在設定賬號時,請注意如下事項: 

1.其長度需在 1-16 個字符 
2.使用英文小寫字母、數字及 - _ 符號 

在設定密碼時,請注意如下事項 

1. 密碼可設可不設,但建議你必定要設 2. 長度最好在 6 個字以上,你知道據
安全專家的說法,破解一個長度6及長度4密碼,至少要多花 10 倍的時間 3. 請
勿用你的生日、相關證照號碼、電話..等資料,而使用大小寫英文字母及混合特
殊符號,如 ct!Home-12 就是一個至關不容易破解的密碼 4. 長度最長我曾設到
16 位數(最大長度多少,有興趣者可自行試試)

2七、 有關系統的一些激活問題.. 

有時,會修改 FreeBSD 的一些設定,如一些網絡參數、軟件的 .conf 設定,或
是 /etc/r.conf 文件,那麼如何讓設定值生效,是否必定要從新開機呢?

這可分爲三方面來講.. 

1. 網絡相關設定,如網絡適配卡、hostname .. 等,只要執行如下指令就能夠從新加載你的網絡設定.. 

# sh /etc/netstart 

netstart 是一個 script 檔案,執行時會去參考 /etc/rc.network。所以只要執行這個指令就可以從新激活網絡設定.. 

有興趣者可參考一下 netstart 及 rc.network 這二個檔的內容,研究看看到底作了些什麼東東.. 

2. 修改了 rc.conf 中其它的設定 

可參考如下三個 step 來作.. 

. 進入單人模式 
# shutdown now 

. 選擇 sh,造內定值便可,即 /bin/sh 

. 離開單人模式 
# exit 

這樣就會從新激活系統了.. 

3. 軟件的設定,如一些 *.conf 文件,像是修正了 apache sendmail .. 等 

一般在 /etc/local/rc.d/ 這個目錄中會有相關的 .sh 文件,直接執行就能夠了,
注意的是通常要加上參數,通常的參數有如下(視軟件而定會有不一樣)..

start 激活 
stop 中止 
reload 或 restart 從新激活 

第二種方法就是直接使用 killall,如咱們要從新激活 inetd,可用如下方法

# killall -1 inetd 

或是 

# killall -HUP inetd 

這樣就能夠從新激活這個 daemon 了 

2八、 保護你的檔案 

系統中,有許多檔案或一些設定檔是很是重要的,加上
FreeBSD (或是通常 unix-like)系統都沒有相似 ms 的垃圾回收桶的功能,萬一
不幸刪掉(或修改)某個重要的檔案,可能會形成不小的困擾..

雖然,FreeBSD 對於檔案的權限設定的很是嚴密,但有些時候,咱們以 root 身份工做,仍會有此風險.. 

那要如何避免這種情形發生或是保護某些重要的檔案呢? 

咱們能夠用 chflags 來達成這個目的,顧名思義, chflags 是由二個字所組成,即 change 和 flags(檔案的旗標).. 

例如咱們要保護 /etc/inetd.conf 這個檔案,以避免誤刪或被修改,則指令以下: 

# chflags schg /etc/inetd.conf 

這樣就能夠保護這些檔案,如要顯示這些檔案的旗標(flag),可用 ls 來看.. 

# ls -lo /etc/inetd.conf => l 是小寫的 L 

-rw------- 1 root wheel schg 47 Mar 28 21:29 inetd.conf 

要解除旗標設定,可用 unschg,也就是在 schg 前加 un ,如: 

# chflags unschg /etc/inetd.conf 

大部份咱們進入主機都是以 root 身份執行,所以稍不當心,可能就..所以建議
將一些重要的檔案及設定檔設定爲 schg flags,以保護檔案..

如 /bin、 /sbin、 /etc/.conf、 /usr/lcaol/etc/*.conf .. 這些檔案最好都是定成 schg 旗標.. 

chflags 詳細用法請參考 man chflags.. 

2九、 談談軟件的安裝路徑.. 

FreeBSD 對於檔案目錄的觀念很是重,什麼樣的檔案要放在那個目錄都有規定,這也是有別於其它 unix-like系統.. 

通常咱們將軟件安裝分紅二個部份,在這裏來探討一下軟件到底都安裝到那去了.. 

安裝軟件時,一般會安裝諸如 執行檔、設定檔、man file、doc 文件.. 

1. 安裝系統時所安裝的軟件 

執行檔一般裝在 /bin、/sbin、/usr/bin、/usr/sbin、/usr/libexec 下 
設定文件通在在 /etc 目錄下 
man file 一般在 /usr/man 或 /usr/share/man 
doc 文件一般在 /usr/share/doc 下 

2. 經由 package 或 port 安裝的軟件 

執行檔一般裝在 /usr/local/bin、/usr/local/sbin、/usr/local/libexec 下 
設定文件通在在 /use/local/etc 目錄下 
man file 一般在 /usr/local/man .. 
doc 文件一般在 /usr/share/doc 下 

以上並非絕對的(因此我用一般..^.^),由於有些特殊狀況需視軟件而定.. 

如此有時可能會形成些許困擾,由於如 ssh 、 bind .. 大可能是在系統安統時就安裝的,那若是升級新版時怎麼辦.. 

因爲 FreeBSD 找尋執行檔時會依照 $PATH 這個環境變量找尋,由於 /bin、
/sbin、/usr/bin、/usr/sbin 比 /usr/local/bin 或 /usr/local/sbin 先,所
以會先執行..也就是先抓到舊版的執行檔..

所以在更新時要注意這種狀況,以避免更新了仍是執行舊的程序.. 

那麼如何看安時程序時的相關檔案的安裝路徑呢?一般有如下方法 

1. 看 port 的 pkg-plist 文件 
2. 有時用 man [執行檔名稱] 可看到一些重要檔案的位置 
3. 看說明文件,一般在 /usr/local/share/doc 目錄下 

30、 如何在 FreeBSD 同一片網硌卡加一個 ip 地址 

有的時候,須要在同一片網絡卡上加 ip 以達到一些特殊的要求.. 

在 FreeBSD 這是很是簡單的,假設原先網絡卡的 ip 是 211.211.211.211,想加
一個 211.211.211.212,使用的是 rl0 這片網絡卡,則作法以下..

1. 在 /etc/rc.conf 加上這一行 

ifconfig_rl0_alias0="inet 211.211.211.212 netmask 255.255.255.255" 

其中的 alias0 就是加裝的第一個 ip,如要設定多個可在此修正,如 alias一、alias2.. aliasN 

2. 從新激活網絡卡,執行 /etc/netstart 

# /etc/netstart 

3一、 簡單的加密你的資料 
在實務上咱們常須要將某些敏感的資料加密,通常咱們可以使用 pgp 或在這裏所介紹的 crypt 來達到這個功能.. 

crypt 是透過 | 這個管道轉換功能及密碼設定來達成加密的功能,也就是說將你所設的密碼當作加密產生的種子隨機數.. 

先說明一下 crypt 的使用方法

crypt [-s] [-k] [password] 

通常 -s 及 -k 參數可不予理會,password 是加密或解密的密碼 

在這裏假設咱們先產生一個 test.txt 檔,內容爲 test,而後用 1234 這個密碼加密 

# cat > test.txt 
test 
按 ctrl+d 存盤 

先看看 test.txt 內容 

# more test.txt 
test 

將 test.txt 這個檔案用 1234 這個密碼加密,需配合管道 | 及轉向符號使用,加密後的文件名稱爲 test2.txt 

# cat test.txt | crypt 1234 > test2.txt 

如此則會產生一個加密後的檔案 test2.txt,另外密碼可先不輸入,按 enter 鍵後會顯示 enter key: 讓你輸入密碼 

咱們來看看加密後的檔案內容,原先是 test 結果變成了: 

# more test2.txt 
e&h => 已經不是原來的 test 

接着來將 test2.txt 解開,以下,假設解開後的檔名爲 test3.txt: 

# cyrpt 1234 < test2.txt > test3.txt 

以上的意思是 

1234 加密時的密碼 
< test2.txt 將加密的檔案轉給 crypt 處理 
> test3.txt 解密後的資料轉向到 test3.txt 

再顯示 test3.txt 的內容是否和原來同樣,即 test 

# more test3.txt 
test 


PS: 

1. 加密或解密時檔名如和源文件同樣,則會將原來的檔案取代 
2. 另有一個指令 enigma 和 crypt 用法徹底同樣 

參考資料 man crypt 

3二、用 telnet 簡測你的服務器(Server)有無在跑 

有時你能夠用 telnet 測試你的 Server 有無正常的 run 
例如:我要查看 ftpd 有無在跑 
可下指令:# telnet localhost 21 
若跑出相似如下的訊息, 表示有在跑 
-------------------------------- 
Trying 127.0.0.1... 
Connected to localhost.ahkun. 
Escape character is '^]'. 
220-=(<*> )=-.:. (( Welcome to PureFTPd 1.0.11 )) .:.-=(<*> )=- 
220-You are user number 1 of 50 allowed 
220-Local time is now 18:52 and the load is 0.06. Server port: 21. 
220 You will be disconnected after 15 minutes of inactivity. 

若跑出如下的訊息, 表示沒在跑 
------------------------------------------------ 
Trying 127.0.0.1... 
telnet: connect to address 127.0.0.1: Connection refused 
telnet: Unable to connect to remote host 

同理你也能夠用: 
telnet localhost 25 測 stmpd 
telnet localhost 110 測 pop3d 

結論: 
正確來說是用 telnet 測 port 啦~ 

3三、 如何防止別人登陸到你的計算機 

有時,咱們並不想讓別人直接登入到咱們的主機或是隻想限定某些人可以使用,如 telnet、ssh.. 

或者是開放了些服務,如 ftp、smtpd ..等,因爲這些都必需在主機端建有賬號,
所以防止不相干的人登入到你的主機是很是重要的,也是一個安全上的考量..

但通常限定的方式都是使用 ip 或是 domain 的方式,那麼有無方法解決這個問題呢? 

答案是可從 /etc/login.access 來着手,這個檔案就是限定 login 的.. 

一個典型的設定以下,例如咱們想限定只有 root 及 使用者 john 可登入到主機(含local 及 remote): 

-:ALL EXCEPT root john:ALL 

可分爲三個項目,每一個項目間以 : 分隔,說明以下: 

1. + 或 - 表明容許或禁止 
2. 設定的使用者或羣組,可用 ALL EXCEPT 來強化限定的範圍 

3. 限定的來源,如 ALL 表明所有、61.219.230. 、LOCAL、console、.bad.com ..等 

適當的設定,可以讓你的系統更加的安全.. 

詳細用法可 man login.access.. 


3四、 一個 ./ 的技巧 

衆所周知,在 nix-like 中執行目前目錄中的可執行文件時,必需加上 ./ 這二
個符號,不少 unix-like 的初學者都會感受較不習慣,由於在 dos 或 windows
的 dos 窗口中並非如此..

其實在 unix-like 中如此設定是有其安全考量的,在使用指令或執行文件時,通常是建議使用完整的目錄,例如要使用 ls,則以下: 

# /bin/ls 

固然,你直接輸入 ls 亦可正確的執行,這是由於你所使用的 shell 中環境變量 $PATH 的因素.. 

你可鍵入 echo $PATH,來看目前 $PATH 的設定,當咱們執行一個指令時,系統會依照這個環境變量來搜尋這個執行檔並加以執行.. 

內定 shell 不會將目前目錄 . 加到 $PATH 中,所以若是你想在目前目錄執行這
個目錄下的執行文件而不想加上 ./ 時,可在你的 shell 中將 . 加入..

如通常在 FreeBSD 都是使用 tcsh,你可編輯我的 home 目錄下的 .cshrc 文件
set path = ( ........ ,在此加入 . 便可..

記得從新退出 shell 再登陸,以便讓你的新設定生效. 

3五、在提示列秀出 [使用者]目前工做目錄 (能夠少打不少次pwd) 

# cd /root 
編輯 .cshrc 

# set prompt="'hostname -s'# " ### 找到這一行並 mark 起來 
set prompt = "[%n]%/# " ### 新增此行並存盤離開 

# logout 

login: root ....從新登入 

ps.其它user id 是否可照辦? 我還沒試過哩..剛裝freebsd而已 

3六、rm 是 DEL 一個檔案 
rm -r 是 DEL 整個目錄 

3七、介紹一些一些有用的參數(注意大小寫).. 

%B 表明高亮度 
%n 表明用者名稱 
%m 主機名稱 
%/ 目前的目錄 

通常咱們可能比較在乎以上幾點,如我要管理好幾臺 FreeBSD 主機,那麼以上幾個參數就很重要了.. 

舉個實例來講,如我想把個人 prompt 改爲這樣,並且要高亮度顯示: 

使用者名稱@主機名稱[目錄名稱]> 

則 prompt 的設定應該是這樣的.. 

set prompt = "%B%n@%m[%/]> " 

注意 = 左右都要有一個空白,不然會出錯,致使沒法登入,另外若是要統一全部
使用者的 prompt 的話,除了更改 /home/使用者/.cshrc 外,最好也在
/etc/csh.cshrc 中設定這一行,另外如要新增新用者也用這種提示,則請在
/usr/share/skel/dot.cshrc 中也加上(或改爲)這一行,這是由於:

tcsh 在使用時會先參考 /etc/csh.cshrc 這個檔案,再依 user 去抓其 home 目
錄下的 .cshrc,而設定 /usr/share/skel/dot.cshrc 是讓你新使用者時,自動
將其 prompt 設定成 set prompt = "%B%n@%m[%/]> "

這種設法,當你在管理多臺主機及切換目錄時,就不易搞錯而發生一些慘劇html

相關文章
相關標籤/搜索