samba中實現共享中所有建立的檔案都屬於指定使用者的功能

方法很簡單,但很實用。
在需要指定的共享中加入。

force user = 要指定的使用者

例如,要求老師得能在“孫錫源”這個學生的共享資料夾中建立檔案,但老師建立的檔案所有者是老師本人,孫錫源沒許可權修改及刪除檔案。那麼就可以加一行“force user = sxy”,讓老師建立的檔案的所有者也是孫錫源本人,這樣孫錫源就可以操作檔案了。

記錄一個Linux下使用usermod修改使用者家目錄後產生的奇怪問題

問題描述:
學校機房的samba伺服器中本來所有使用者都是存放在/home目錄下的,但是我在為使用者統一修改許可權時發現這樣極不方便。因為老師和學生的許可權肯定是不同的,但他們又都在同一個目錄下,修改起來很麻煩。
我的解決辦法是:在/home目錄下新建一個teacher目錄用來存放教師的使用者家目錄,再新建一個student用來存放學生的使用者家目錄,這樣下次修改許可權時就可以直接用萬用字元來分別為教師和學生修改了。
既然有了想法,就開始實施吧。
我選擇使用usermod命令一個一個的辛苦的為每個使用者修改家目錄,而不是簡單粗暴地修改/etc/passwd檔案。
以下以“sxy”這個使用者來做演示,注:此時我的工作目錄在/home下,且/home/teacher與/home/student目錄已建立。

usermod -md student/sxy sxy

修改後,檢視/home下已經沒有sxy這目錄了,此目錄已被遷移至/home/student下。
然而, 重點來了!!!!
雖然成功的遷移了目錄,但是我用windows登陸samba伺服器的時候點sxy這個共享目錄竟然提示我“找不到路徑”???注:此處的sxy共享是使用[homes]配置的。
排錯過程:
我的第一步:懷疑,是不是因為samba的使用者資料庫中記錄的還是舊的檔案路徑,要將使用者重新加入資料庫才能解決問題?
結果:使用者重新加入samba資料庫後問題依舊。
第二步:懷疑,是不是samba的[homes]欄位必須使用預設的家目錄路徑,也是就是存放在/home下,不能自定義家目錄?
結果:新建了一個系統使用者“test”,建立使用者時指定其家目錄為/home/student/test並將其加入samba使用者資料庫中後,發現其家目錄的共享可正常訪問。
第三步:陷入沉思~~~隨後懷疑,是不是因為usermod命令修改使用者家目錄改的不夠徹底(比如說,某些系統配置檔案中的使用者家目錄的路徑還是以前的)。
結果:刪除一個samba家目錄共享無法訪問的使用者“lzl”,並在重新建立時使用相同的使用者名稱,且指定家目錄為/home/student/lzl同時加入到samba使用者資料庫中後samba的家目錄共享又可以正常訪問了。
第四步:感覺上,第三步中貌似找到了問題的原因。就在我準備一個個刪除並重建使用者時突然一個想法冒出來,我是不是可以切換到一個之前修改過家目錄的“問題使用者”上,來看看其家目錄到底變沒變。
結果:使用su – sxy命令嘗試切換到“sxy”這個使用者上時丟擲錯誤:

第五步:我注意到,第四步的報錯中的路徑是相對路徑而不是絕對路徑,馬上檢視/etc/passwd檔案,發現,所有的“問題使用者”的家目錄都是相對路徑而正常使用者都是絕對路徑。
問題使用者:

正常使用者:

至此,問題的原因徹底搞清楚了,那就是因為我在使用usermod修改家目錄時使用的是相對路徑。
解決辦法:使用usermod命令重新修改為絕對路徑,或直接改/etc/passwd檔案。

samba配置檔案中的常用變數

先簡單解釋下什麼是samba配置檔案中的變數。

上圖中,所有以“%”開頭的字母都是變數(已用紅色箭頭指出)。各個變數代表的值已在下方標註。

%S = 當前服務名(如果有的話)  
%P = 當前服務的根目錄(如果有的話)  
%u = 當前服務的使用者名稱(如果有的話)  
%g = 當前使用者說在的主工作組  
%U = 當前對話的使用者名稱  
%G = 當前對話的使用者的主工作組  
%H = 當前服務的使用者的Home目錄  
%v = Samba服務的版本號。  
%h = 執行Samba服務機器的主機名  
%m = 客戶機的NETBIOS名稱  
%L = 伺服器的NETBIOS名稱  
%M = 客戶機的主機名  
%N = NIS伺服器名  
%p = NIS服務的Home目錄  
%R = 說採用的協議等級(值可以是CORE, COREPLUS, LANMAN1, LANMAN2,NT1)  
%d = 當前服務程序的ID  
%a = 客戶機的結構(只能識別幾項:Samba,WfWg,WinNT,Win95)  
%I = 客戶機的IP  
%T = 當前日期和時間

以上內容摘錄自:http://blog.csdn.net/xkq_lyx/article/details/12905863
 

Linux下為普通使用者開啟sudo命令

介紹 :
Linux下,root使用者的許可權非常大,root的密碼自然不能輕易的告訴別人,但如果又必須使用root許可權,那要怎麼辦呢?這裡就要使用“sudo”這個命令了。這個命令是系統管理員允許普通使用者以root許可權執行幾個或全部命令的工具。
為普通使用者開啟sudo命令的方法:
預設情況下,普通使用者是無權使用sudo命令的,需要管理員為其開啟使用命令的許可權。
下圖中,紅箭頭所指的就是普通使用者使用sudo來執行命令後丟擲的錯誤。

為普通使用者啟用sudo命令:
編輯sudo的配置檔案。

vim /etc/sudoers

在第105和108行左右的位置可以看到如下圖中紅框框起來的內容,這兩處就是為某使用者開啟sudo命令的配置模板。二處的區別在於,使用105行的配置模板配置後使用者使用sudo命令需要輸入使用者本身的密碼,而108行處的模板則不需要輸入密碼,二者可以同時配置。

例如,下圖中,為user1、user2、user3、user4這四個系統使用者開啟了sudo命令,其中user1和user2在使用sudo命令時需要輸入密碼,而user3和user4則不需要。

此時再分別使用user1、user2、user3、user4這四個使用者的身份測試sudo命令的執行情況即可。

CentOS 6下搭建TFTP伺服器

介紹:
TFTP是非常“簡陋”的檔案傳輸協議,基於UDP協議傳輸,日常生活中很少會用到,但做嵌入式開發及網路裝置運維時經常會用到這種簡易的檔案傳輸方式。
軟體安裝:
伺服器端:

[root@localhost ~]# yum install tftp-server

配置檔案介紹

[root@localhost ~]# /etc/xinetd.d/tftp                      //TFTP服務主配置檔案

服務配置:
tftp這種“簡陋”的服務,配置起來也是相當的容易。
編輯主配置檔案。

[root@localhost ~]# vim /etc/xinetd.d/tftp

下圖紅框中,“server_args”選項是配置TFTP根目錄及操作許可權的,“disable”選項用以配置是否啟用TFTP服務。通常情況下只需要配置這兩個選項即可。

這裡,我指定TFTP的根目錄為/tmp/tftp,且具有可寫入的許可權,並啟用TFTP服務。

注意,上圖中“server_args”選項的引數後面多了個“-c”,這個“-c”代表可寫入,預設是隻讀。
儲存配置檔案後記得要建立TFTP的根目錄。

[root@localhost ~]# mkdir /tmp/tftp

還要給TFTP根目錄777的許可權,這裡不用去想許可權給大了會不會不安全,沒意義,TFTP這種“簡陋”的協議本身就是不安全的(基於UDP,不支援加密,任何人都可以連線)。

[root@localhost ~]# chmod 777 /tmp/tftp

最後,在保證selinux及防火牆均已關閉的情況下重啟TFTP伺服器。

[root@localhost ~]# service xinetd restart

服務測試:
這裡客戶端使用CentOS 6.5系統做測試,當然你也可以使用Windows系統做測試。
先在伺服器端的TFTP根目錄中新建一個檔案,用以測試下載。

[root@localhost ~]# touch /tmp/tftp/testget

在客戶端機器安裝TFTP客戶端軟體。

[root@localhost ~]# yum install -y tftp

建立一個檔案用以測試上傳。

[root@localhost ~]# touch testput

連線TFTP伺服器,本例中伺服器IP地址為192.168.1.20。

[root@localhost ~]# tftp 192.168.1.20

會彈出“tftp>”提示符,在其後輸入TFTP命令。
主要的TFTP命令其實就三個:

get 接檔名              //將當前目錄下的檔案上傳至TFTP伺服器
put 接檔名              //從TFTP伺服器下載檔案到當前目錄
q                        //退出TFTP客戶端工具

這裡,我連線上TFTP伺服器後,先將客戶機家目錄下的testput上傳到了伺服器上,又將伺服器上的testget下載到客戶機,最後退出了TFTP客戶端工具。

檢視客戶機家目錄是否有testget檔案。

檢視伺服器的TFTP根目錄上是否有testput檔案。

如都有,則配置成功,否則就需要回過頭檢查下是不是哪一步出了岔子。

CentOS 6下配置NIS服務

介紹:
Linux下的NIS伺服器類似於Windows下的域控制器,用於Linux下的使用者資訊集中管理。
軟體安裝:
伺服器端:

[root@localhost ~]# yum install -y ypserv

客戶端:

[root@localhost ~]# yum install -y ypbind

配置檔案介紹:
伺服器端:

/etc/ypserv.conf                  //伺服器端主配置檔案

客戶端:

/etc/yp.conf                      //客戶端主配置文

務器端配置:
NIS透過域名來分辨不同的賬號密碼資料,因此需先指定NIS域名。
方法很簡單,如下。

[root@localhost ~]# vim /etc/sysconfig/network

新增一行

NISDOMAIN=nis.ibadboy.net

最終效果如下。

這裡囉嗦一下:看到網上很多文章都說要設定主機名,還要給主機名新增到/etc/hosts檔案中,做主機名和IP的對應。
不過,我使用CentOS 6.5版本親測,不另外設定主機名,不編輯/etc/hosts檔案,NIS伺服器也一樣能正常工作。但前提是,在/etc/ypserv.conf這個檔案中是以IP地址來限制客戶機而不是使用主機名,如果使用主機名則必須新增DNS解析或編輯/etc/hosts檔案,關於ypserv.conf檔案的配置下面馬上會介紹到。
另外,為了方便配置防火牆規則,我們也可以指定讓NIS伺服器每次都啟動在固定埠,否則NIS會動態使用埠。

[root@localhost ~]# vim /etc/sysconfig/network

新增一行。

YPSERV_ARGS="-p 1011"              //使NIS伺服器每次啟動都使用1011埠

新增後檔案內容如下:

編輯NIS伺服器端主配置檔案。

[root@localhost ~]# vim /etc/ypserv.conf

先來簡單看下配置檔案的內容再來說通常情況下如何配置。
轉到14行和17行可以看到如下兩個被紅框框起來的選項(因軟體版本號差異,行號可能不一樣,可在VIM中搜尋關鍵字來查詢),其中“dns”選項是定義是否使用DNS,一般情況下保持預設即可(我搞不懂為啥會有這個選項,感覺很白痴)。“files”選項是定義載入到記憶體中的資料庫個數(我不清楚這裡的資料庫是指的什麼,這一段摘錄自《鳥哥的Linux私房菜》),如果賬號多,可以調大。

轉到第25行左右,這裡定義是否將Master/Slave的同步更新的資料庫對比放置於小於1024的埠中,通常情況下保持預設即可。

接下來到重點了:配置允許訪問NIS伺服器的主機及主機的許可權,這也是通常情況下伺服器端主配置檔案中唯一需要修改的部分。
參照如下格式配置:

[主機名/IP]:[NIS域名]:[可用資料庫名稱]:[安全策略]          //可使用萬用字元
[主機名/IP] :直接填入允許訪問的主機名或使用網路地址/掩碼的形式,如 192.168.1.0/255.255.255.0。 
[NIS域名] :例如本案例中的“nis.ibadboy.net”。
[可用資料庫名稱]:就是由 NIS 製作出來的資料庫名稱。
[安全限制] :有三種,沒有限制(none)、僅能使用小於1024的埠(port)及拒絕(deny)。

例如:

192.168.1.0/255.255.255.0     :     nis.ibadboy.net      :     *      :       none

通常情況下,NIS伺服器都是應用在區域網,限制可以不用這麼嚴格,使用如下格式也可以。當然,你也可以按照自己的需求來設定。

*      :     *     :     *     :    none

轉到第38行左右,可以看到預設已經配置好了兩條規則,我們可以在這個基礎上稍作修改。

本例改成如下形式:

儲存退出後,在保證防火牆和selinux均關閉的情況下啟動ypserv(NIS主服務)及yppasswdd(用於支援客戶端修改NIS伺服器上的使用者密碼)服務。

[root@localhost ~]# service ypserv start
[root@localhost ~]# service yppasswddd start

再在伺服器端新增幾個使用者資訊,一會好在客戶端測試。

[root@localhost ~]# useradd user1
[root@localhost ~]# useradd user2
[root@localhost ~]# passwd user1
[root@localhost ~]# passwd user2

最後,編譯生成各種資料庫檔案來供客戶機查詢。

[root@localhost ~]# /usr/lib64/yp/ypinit -m

到這一步,按下“Ctrl + D”


這一步輸入y或者直接回車。

看到列印出如下字樣即是成功。

客戶端配置:
設定NIS域名,這裡注意,一定要和伺服器端是同樣的NIS域名,否則客戶端將無法繫結伺服器端。

[root@localhost ~]# vim /etc/sysconfig/network

本例中,新增“NISDOMAIN=nis.ibadboy.net”

編輯客戶端主配置檔案。

[root@localhost ~]# vim /etc/yp.conf

在其中新增伺服器端資訊,格式如下。
domain [NIS域名] server [NIS伺服器IP地址]
例如,本例中為:

domain nis.ibadboy.net server 192.168.1.20

新增後,效果如下。

儲存並重啟NIS客戶端。

[root@localhost ~]# service ypbind restart

如下,是成功了。

如果是這種呢,一眼就能看出是失敗了,那就要仔細檢查下是不是哪一步做錯了。

通常情況下,錯誤一般都是NIS域名不一致導致的,雖然客戶端和伺服器端的/etc/sysconfig/network中設定的NIS域名是一致的,但要注意的是,這裡的NIS域名並非實時生效,因此還需要使用“nisdomainname”命令來分別檢查伺服器端和客戶端當前的NIS域名,若發現有不符合的則使用“nisdomainname 接新NIS域名”來實時修改。
例如:

到這裡,雖然客戶端繫結伺服器端成功了,但我們依然不能在客戶端使用NIS伺服器中的使用者資訊,原因是還沒修改系統查詢使用者資訊服務的方式。
編輯/etc/nsswitch.conf(服務搜尋順序配置檔案)
在幾個主要的配置檔案的搜尋順序中都加入“nis”。注意,這裡把“nis”加到“files”後,是先搜尋本地配置檔案而後才搜尋nis伺服器。這就導致,如果本地和nis伺服器上存在相同的使用者,客戶端並不會使用nis伺服器上的使用者資料。可以透過將“nis”寫在“files”前來解決這個問題。
注意最後一行,hosts檔案的搜尋順序中加入了nis,這就是為什麼我們不寫hosts檔案,不做dns一樣可以正常使用nis伺服器的原因。

這樣,NIS客戶端就算配置完了。
執行yptest命令看是否能列出NIS伺服器端的賬號資訊。
在“Test 9: yp_all”這個測試結果中能看到NIS伺服器端的使用者資訊即算成功。
例如:

客戶端的配置,看似貌似很完美,但其實還是有點問題的,那就是需要PAM等認證的服務依然不會查詢NIS伺服器上的資訊,這些配置檔案我們手動修改實在是太麻煩了,可以使用“setup”工具來快速設定。
當然,如果沒有特殊需求,僅僅需要系統使用者身份認證資訊使用NIS伺服器上的資料那麼按照之前那樣簡單配置以下就可以滿足需求了。
若需要vsftpd虛擬使用者這種使用PAM做身份認證的服務也使用NIS伺服器,則就要使用“setup”工具來設定了,系統中沒有安裝“setup”工具可以參考此篇文章安裝。

CentOS 6安裝setup工具包


按照如下步驟走一遍即可,十分簡單。之後setup會幫你把所有需要修改的配置檔案全部修改一遍,換而言之,如果你使用setup工具來設定客戶端,那除了安裝ypbind軟體包之外,不需再手工編輯任何檔案。
注意,這裡特殊說明一下,我的setup工具是中文語言的,其中圖一的“驗證配置”對應的英文版是“authentication configuration”,不要選錯了哦。

Linux下使用quota工具為使用者配置磁碟配額

介紹:

Linux是多使用者多工的作業系統,這就難免出現多個使用者共享磁碟的情況,如何使多個使用者公平的使用磁碟,就是磁碟配置要解決的問題。當然也可以在每建立一個使用者的時候,將它的主目錄建在一個單獨的邏輯分割槽上,但是這樣太麻煩了,也不靈活。
本文以針對使用者的磁碟配額配置為例,演示磁碟配額的配置流程。

操作步驟:

1、安裝quota軟體包

[root@localhost ~]# yum install -y quota

2、給指定分割槽開啟磁碟配額功能

編輯/etc/fstab(此檔案負責記錄檔案系統資訊)

[root@localhost ~]# vim /etc/fstab

如下圖(看第一個分割槽),給想要開啟磁碟配額的分割槽的掛載方式後面加上,usrquota,grpquota,其中usrquota是開啟使用者磁碟限額,grpquota是開啟組磁碟限額。

儲存並退出此檔案後配置並未生效,還需要重新掛載磁碟。

[root@localhost ~]# mount -o remount /

3、掃描所有支援磁碟配額的分割槽並在其根目錄生成相應的配置檔案

[root@localhost ~]# quotacheck -avugm

上面的命令中,引數a 掃描/etc/fstab中所有支援磁碟配額的分割槽,v 顯示指令執行過程,u 生成使用者磁碟配額配置檔案,g 生成組使用者配置檔案,m 強制掃描(有的時候不加m會報錯,最好加上)。

記得把selinux關上再執行此命令。

執行完可以檢視下分割槽掛載的目錄中出沒出現aquota.group(組磁碟配額配置檔案)、aquota.user(使用者磁碟配額配置檔案)這兩個配置檔案,有就代表成功了。

當然這兩個檔案不一定都有,因為你有可能在執行命令的時候指定只生成使用者磁碟配額配置檔案,那就看不到組磁碟配額配置檔案了。

4、為使用者/組設定磁碟配額大小

[root@localhost ~]# edquota -u 接使用者名稱                       //為使用者配置磁碟配額
[root@localhost ~]# edquota -g 接組名                        //為組配置磁碟配額

命令執行後會自動使用vi/vim文字編輯器開啟對應配置檔案,下面是對此配置檔案中各個區域的解釋(順序,從左到右)。

Filesystem 檔案系統
blocks 已經使用的塊數(塊的單位為1K)
soft 塊數軟限制,0表示禁用
hard 塊數硬限制,0表示禁用
inodes 已經建立的檔案個數,如果後面有*表示已經超出軟限制
soft 建立的檔案個數的軟限制,0表示禁用
hard 建立的檔案個數的硬限制,0表示禁用

其中軟限制的額度在達到後會彈出警告,如果使用者在寬限期(預設7天)內還未刪除超出部分的檔案,軟限制就會轉為硬限制,阻止使用者繼續寫入資料。

可以透過如下命令修改寬限期。

[root@localhost ~]# edquota -t

如上圖可以看到,Block grace period(塊的寬限期)對應值是7days(七天),Inode grace period(檔案數量的寬限期)對應值也是7days(7天),這裡直接修改對應值即可。上圖中因為我的裝置名稱比較長,所以文字排版亂了,導致值和選項沒有對應起來,但不影響其生效。

修改後儲存並退出。

此外,所涉及到容量的配置部分的計算單位都是KB,比如上圖中容量的hard值我設定成了20480,這個數值的單位就是KB,可以換算成20MB。

修改後,儲存並退出。

如果有多個賬戶需要設定相同的磁碟配額則可以使用edquota搭配-p引數實現,例如:

[root@localhost ~]# edquota -p user1 user2                    將user1的磁碟配額配置複製給user2。

5、開啟磁碟配額功能

quotaon 接需要開啟磁碟配額功能的分割槽所掛載的目錄,例如本實驗中分割槽掛載到了根目錄,則執行如下命令開啟該分割槽的磁碟配額。

[root@localhost ~]# quotaon /

關閉磁碟配額:

[root@localhost ~]# quotaoff /

6、測試

切換為被設定了磁碟配額的使用者身份,本實驗中是user1。

[root@localhost ~]# su - user1

進入使用者郵箱目錄(本實驗中/var/mail目錄存在於根目錄所掛載的磁碟上,所以根目錄的磁碟限額對其有效)。

[root@localhost ~]# cd /var/mail

寫1G的資料到user1的郵箱中。

[root@localhost mail]# dd if=/dev/zero of=user1 bs=1M count=1000

可以看到,彈出提示說超出磁碟限額了。

檢視下user1使用者的郵箱現在的大小,正好是20MB。

[root@localhost mail]# ll -h user1

最後記得清空郵箱中的資料哦。

[root@localhost mail]# echo '' > user1

CentOS 6下使用postfix搭建簡單郵件伺服器

介紹:
postfix是linux/unix下比較常用的開源免費郵件傳輸代理程式(MTA)。
下圖是postfix的logo,略顯猥瑣。。。

服務安裝:
通常情況下,CentOS預設都會安裝postfix。
如果你不確定你的系統中有沒有postfix可以使用如下命令檢視。

yum -qa | grep postfix

若沒有安裝則使用如下命令安裝。

yum install -y postfix

DNS配置:
郵件傳送是需要DNS解析支援的,DNS伺服器的配置方法參考此篇文章:

CentOS 6下使用BIND配置簡單DNS伺服器


最後要求DNS正向解析配置成類似如下形式,反向解析區域可不配置。“192.168.1.20”是我的郵件伺服器的IP地址,請按照實際情況來做更改。

主要配置檔案介紹:
postfix的配置檔案存放路徑為/etc/postfix,其中的主要的配置檔案有兩個,一個是main.cf另一個是master.cf。關於兩個配置檔案的說明,如下。

main.cf              //此配置檔案為postfix主配置檔案,決定了postfix的工作方式。
master.cf            //此配置檔案用以配置postfix中各個程式的工作引數,一般在做郵件系統最佳化時才會用到。

postfix配置:
在配置前,我們需要先關掉系統中sendmail(sendmail也是linux/unix下常用的郵件傳輸代理程式)的所有服務,避免二者產生衝突。
檢視是否安裝了sendmail。
rpm -qa | grep sendmail
如安裝了sendmail,則關閉sendmail服務,否則跳過這一步。

service sendmail stop
chkconfig sendmail off

編輯主配置檔案。

vim /etc/postfix/main.cf

查詢“myhostname”關鍵字,一般在第75行左右的位置,因軟體版本差異行號可能不同。

去掉其中一個前面的註釋,這裡是配置postfix伺服器的主機名,這個主機名必須是FQDN(完全合格域名,例如:mail.ibadboy.net)。

在第83行左右找到“mydomain”關鍵字。

去掉其前面的註釋,並將引數修改為郵件域。
什麼是郵件域?舉例說明:admin@ibadboy.net這個郵箱地址中@後面的ibadboy.net就是郵件域。

在第98行左右找到“myorigin”關鍵字,去掉第二個“myorigin”前方註釋。
這裡是用於定義由本臺郵件伺服器寄出的每封郵件的郵件頭中mail from(發信源主機)的地址。如果不設定,預設會以$myhostname也就是本地主機名這個選項的引數為值,最後是這種形式:“from  ‘user1’ <user1@mail.ibadboy.net>”,看起來是不是怪怪的?為了方便閱讀,一般以$mydomain作為其引數,這樣就變成了“:“from  ‘user1’ <user1@ibadboy.net>”。
需要特殊說明的是:main.cf配置檔案中所有以$開頭的字串都是一個變數,變數的值就是變數名對應的選項的引數,例如$mydomin這個變數對應的值就是83行mydomin這個選項的引數。

修改後:

轉到第113行,找“inet_interfaces”這個關鍵字,這裡是定義postfix監聽的介面,預設只監聽本地迴環介面(127.0.0.1),通常的做法是讓其監聽所有的介面(值為all),或者也可以使用主機名為值,要求其只監聽主機名對應IP的介面。

修改後:

轉到164行,找“mydestination”關鍵字,這裡定義postfix可收信的主機名或域名。這裡其實很好理解,一封郵件的目的地址是我這臺伺服器我就收下,否則我當然不收了。

預設的選項是不包括域名的,通常情況下需要接收主機名或域名為本機的郵件,也就是修改為選項二,如下圖。

至此,一個簡單的postfix郵件伺服器就配置好了,我們一共對配置檔案做了如下幾個更改:1、指定了主機名,2、指定了郵件域,3、指定了發信源主機,4、使postfix監聽所有網絡卡,5、設定了允許收信的主機名及域名。
儲存配置後,在保證selinux和防火牆均關閉的情況下啟動postfix服務。

service postfix start

服務測試:
推薦搭建完postfix後配合dovecot(MRA,郵件接收代理)一起在郵件客戶端進行測試。
dovecot配置教程參考此篇文章:

CentOS 6下郵件接收代理程式——dovecot配置教程


 

CentOS 6下使用BIND配置簡單DNS伺服器

介紹:
BIND是linux/unix下的開源免費DNS伺服器,也是全世界應用最廣泛的DNS伺服器軟體。
軟體安裝:

yum install -y bind

主要配置檔案介紹:

/etc/named.conf                 //BIND主配置檔案
/etc/named.rfc1912.zones        //DNS解析區域配置檔案
/etc/named.localhost            //正向解析模板檔案
/etc/named.loopback             //反向解析模板檔案

BIND配置:
編輯主配置檔案

vim /etc/named.conf

將如下如紅色箭頭所指的兩處的值均改為“any”,第一處定義bind服務監聽的本地網絡卡地址,預設僅監聽迴環地址,改為any後監聽所有網絡卡。第二處定義的是允許查詢DNS的主機,預設只有本地可以查詢,改為any後允許所有主機進行DNS查詢。

修改後如下圖。

主配置檔案的配置至此結束,接下來編輯DNS解析區域配置檔案。

vim /etc/named.rfc1912.zones

此部分為正向解析區域配置模板,這裡稍微囉嗦一下什麼是正向解析什麼是反向解析:正向解析就是透過域名解析出IP地址,反向解析就是透過IP地址來解析出域名。

此部分為IPv6反向解析區域配置模板。

此部分為反向解析區域配置模板

這裡,我們新增一個正向解析區域和一個反向解析區域。
直接在模板基礎上修改即可,如下圖,第一個“it7e.com”是要解析的域名,第二個“it7e.com”是正向解析配置檔案的檔名。
預設情況下,所有的解析配置檔案都存放在/var/named/目錄下。

再新增一個反向解析區域,其中”1.168.192″是要進行反向解析的網段”192.168.1″的倒寫,而圖中的“192.168.1”則是反向解析配置檔案的檔名。

最後,分別編輯兩個解析區域的解析配置檔案向其中新增解析即可。
先根據正向解析配置檔案模板”named.localhost”建立正向解析配置檔案”it7e.com”。

cp -p /var/named/named.localhost /var/named/it7e.com

再根據反向解析配置檔案模板“named.loopback”建立反向解析配置檔案“192.168.1”。

cp -p /var/named/named.loopback /var/named/192.168.1

編輯正向解析配置檔案“it7e.com”

vim /var/named/it7e.com

通常情況下,只需要編輯紅框部分,向其中新增解析即可,其餘地方不用更改。

例如:

上圖中需要特殊說明的是MX記錄後面的5是MX優先順序。記錄值中填的“@”代表本域,本實驗中是“it7e.com”,注意如果這樣寫,那麼就必須保證有“it7e.com”對應的解析記錄,本實驗中其對應的記錄在第九行。在主機位上填的“@”代表“空”,也可以真的留空,什麼都不寫,就像第九行的那條解析記錄一樣。另外,記錄值中的域名都以“.”結尾,IP則不用。
最後需要注意的是MX記錄要寫在其值的CNAME記錄的前面,例如上圖中,“@   MX 5 mail.it7e.com”記錄寫在了“mail CNAME it7e.com”記錄的前面,否則會出現異常。
關於DNS解析記錄型別的介紹參考此篇文章:

DNS解析記錄型別詳解

再來編輯反向解析檔案。

vim /var/named/192.168.1

依然是沒有特殊需求就只編輯紅框內的內容即可。

例如:

上圖中,“ A 127.0.0.1”這個記錄不可刪除,否則報錯。因為NS記錄值是“@”,也就是“it7e.com”,若刪除了“ A 127.0.0.1”這條記錄,則“it7e.com”沒有對應的A記錄,NS記錄會丟擲錯誤。
服務測試:
測試前需要將本機或客戶機的DNS修改為DNS伺服器的IP地址。
CentOS 6下DNS的修改方法參考此篇文章,Windows下不做介紹。

CentOS 6下正確配置DNS的方法

測試DNS解析使用nslookup命令,如果發現系統中沒有nslookup這個命令是因為沒有安裝bind工具包,執行以下命令安裝。

yum install -y bind-utils

啟動nslookup。

nslookup

執行命令後在“>”符號後面輸入要測試解析的域名即可。

例如下圖,其中藍色框內是DNS伺服器資訊,紅框內是域名解析資訊。

可以透過“set type=”來設定解析型別。
例如,測試MX解析記錄: 
或者,測試TXT記錄。

再來測試下反向解析。

最後,退出nslookup工具,只需要在“>”符號後面輸入“exit”即可。

CentOS 6下正確配置DNS的方法

本來配置DNS是比較簡單的東西,沒想專門寫一篇文章的。但後來我發現這裡還是有一個大坑的,很有必要單獨拿出來對其進行說明。
我看到網上很多教程都推薦大家透過編輯/etc/resolv.conf這個檔案來修改系統的DNS。
但經過實測,用此方法修改DNS,在某些情況下會發生明明編輯了/etc/resolv.conf檔案,但重啟網路後檔案又恢復到之前的狀態的情況。
經過一翻搜尋之後,發現。原來是因為CentOS 6使用NetworkManager來管理網路,當在/etc/resolv.conf中配置了DNS時,/etc/sysconfig/network-scripts/ifcfg-eth*檔案中並沒有DNS資訊或還是之前的DNS資訊,而NetworkManager會用/etc/sysconfig/network-scripts/ifcfg-eth*中的DNS資訊來覆蓋/etc/resolv.conf中的資訊。
正確配置DNS的方法:

vim /etc/sysconfig/network-scripts/ifcfg-eth*(*是什麼依據實際情況來定)

按照如下格式新增DNS。

DNS1=
DNS2=
DNS3=
……

例如下圖,其中“114.114.114.114”是國內著名的DNS服務,“8.8.8.8”是谷歌的DNS服務,也可以根據自身需求更改為其他DNS地址。

最後重啟網路即可。

service network restart

DNS解析記錄型別詳解

A記錄:將域名指向一個IPv4地址(例如:10.10.10.10)。
CNAME記錄:如果將域名指向一個域名,實現與被指向域名相同的訪問效果。
MX記錄:建立電子郵箱服務,將指向郵件伺服器地址。
NS記錄:域名解析伺服器記錄,如果要將子域名指定某個域名伺服器來解析。
TXT記錄:可任意填寫(可為空),通常用做SPF記錄(反垃圾郵件)使用。
AAAA記錄:將主機名(或域名)指向一個IPv6地址(例如:ff03:0:0:0:0:0:0:c1)。
SRV記錄:記錄了哪臺計算機提供了哪個服務。格式為:服務的名字.協議的型別(例如:_example-server._tcp)。
顯性URL:將域名指向一個http(s)協議地址,訪問域名時,自動跳轉至目標地址(例如:將www.tianidc.cn顯性轉發到www.ibadboy.net後,訪問www.tianidc.cn時,位址列顯示的地址為:www.ibadboy.net)。
隱性URL:與顯性URL類似,但隱性轉發會隱藏真實的目標地址(例如:將www.tianidc.cn隱性轉發到www.ibadboy.net後,訪問www.tianidc.cn時,位址列顯示的地址仍然為:www.tianidc.cn)。

CentOS 6配置IPv6地址

編輯網路配置資訊檔案。

vim /etc/sysconfig/network

啟用IPv6支援。

編輯網絡卡配置檔案。

vim /etc/sysconfig/network-scripts/ifcfg-eth0

這裡需要注意的是,IPv4與IPv6可以同時繫結同一塊網絡卡,因而在新增IPv6地址資訊時可以不刪除IPv4的地址資訊。
以下是IPv6地址配置選項。

IPV6INIT                        //網絡卡初始化IPv6協議棧
IPV6ADDR                        //配置IPv6地址
IPV6_DEFAULTGW                  //配置IPv6閘道器

下圖是一個IPv6地址配置的例子。

如果是在虛擬機器下配置的IPv6需要測試配置是否成功,可以為兩臺計算機同時配置IPv6地址,互相ping。
下面提供4個同網段的IPv6地址來供大家測試用。

2400:A480:000F:0080:00C3:0000:0000:0074
2400:A480:000F:0080:00C3:0000:0000:0174
2400:A480:000F:0080:00C3:0000:0000:0274
2400:A480:000F:0080:00C3:0000:0000:0374
閘道器:
2400:A480:000F:0080:0000:0000:0000:0001
子網掩碼長度:
64

配置完後,使用ping6命令進行測試,例如:

ping6 2400:A480:000F:0080:00C3:0000:0000:0074

CentOS 6破解grub引導選單的密碼

破解grub引導密碼需要用到linux live cd,隨便什麼發行版都可以。當然,如果你沒有專門的linux live
cd,用CentOS的安裝光碟來破解也是可以的。
此篇文章我來介紹下如何使用CentOS 6的安裝光碟來破解grub密碼。
先修改系統BIOS引導來啟動光碟/隨身碟上的系統,這裡因為各個品牌的電腦修改BIOS引導順序的方法不同,所以不做介紹,請自行百度適合自己的方法。
成功引導安裝光碟後選擇如下圖紅色箭頭指向的“Rescue installed system(救援安裝系統)”。

這裡依次要求你選擇系統語言、鍵盤佈局,以及是否配置網路等等,下面我附上截圖並一一進行說明。
下圖,選擇系統語言,保持預設(英語)。

下圖,選擇鍵盤佈局,保持預設(美式鍵盤)。

彈出如下圖這個提示是告訴你,系統與當前硬體不相容,可以不予理會。直接“OK”,即可。

下圖,詢問是否配置網路,無特殊需求都選“No”。

下圖,系統在嘗試查詢當前硬碟上的linux分割槽,並嘗試將其掛載到/mnt/sysimage目錄下。選擇“continue”。

下圖,告訴我們即將要把找到的linux分割槽掛載到/mnt/sysimage目錄下,並進入到shell中,選“OK”。

下圖,提示我們,已經將找到的linux分割槽掛載到了/mnt/sysimage目錄下,選“OK”。我覺得有點磨嘰了。。。

下圖,選第一個“shell      Start shell(啟動shell)”。

下圖,久違的shell出來了。

切換到硬碟中的linux分割槽的掛載目錄

cd /mnt/sysimage

使用VI文字編輯器編輯grub引導配置檔案

vi etc/grub.conf

刪除密碼一行,即完成破解工作。

最後,重啟即可。

reboot

CentOS 6安裝setup工具包

CentOS 6最小化安裝的情況下是沒有setup工具的。
安裝setup:

[root@localhost /]# yum install -y setuptool

啟動setup:

[root@localhost /]# setup


發現只有一個“驗證配置”,而我們熟悉的“網路配置”、“系統工具”等等的選項全都沒了,這是怎麼回事?其實這裡是需要分別安裝這幾個工具元件的:

[root@localhost /]# yum install -y ntsysv                              //安裝“系統服務”工具元件
[root@localhost /]# yum install -y system-config-network-tui           //安裝“網路服務”工具元件
[root@localhost /]# yum install -y system-config-securitylevel-tui     //安裝“防火牆配置”工具元件

當然,如果只是需要某一個工具元件也可以只安裝那一個。上方列出的只是常用的工具元件,如果還需要其他的可以自行百度。
安裝後再執行setup命令,會發現常用的工具都顯示出來了。

[root@localhost /]# setup

CentOS 6給grub引導設定密碼

預設情況下,在grub引導介面按任意鍵即可進入引導編輯介面,任何人都可以輕易地進入到單使用者模式下,並破解掉root的密碼。
root密碼破解參考此篇文章:

文章歸檔


顯然,這樣十分不安全。那如何防止呢?給引導選單加個密碼唄,不輸對密碼就休想進到引導編輯模式。
grub引導選單加密碼的方法:
先生成密碼字串

grub-md5-crypt >> /etc/grub.conf

執行命令後,因為輸出被重定向到了/etc/grub.conf檔案(grub引導配置檔案)中,所以螢幕上不會產生任何輸出。但沒關係,我們只要像配置linux系統使用者密碼一樣,輸入一次密碼,回車,再重複輸入一次密碼再回車即可。
此時使用vim開啟/etc/grub.conf檔案,即可看到如下圖紅色箭頭所指的加密字串,我們在vim下剪下這個字串,並刪除藍框框住的內容。

vim /etc/grub.conf

 

之後將加密字串貼上在hiddenmenu和title這兩行之間,如下圖。

最後再在加密字串前,加上password –md5關鍵字並儲存退出即可。

重啟系統,嘗試進入grub引導編輯介面就會發現,grub要求輸入密碼啦(必須先按p鍵鍵入密碼,才可以按e鍵編輯引導)。