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”,不要選錯了哦。

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

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鍵編輯引導)。

CentOS 6下超實用的samba配置教程

介紹:
samba是在linux/unix上實現SMB協議的免費軟體,通俗來說就是讓linux/unix支援與windows間互相共享檔案。
安裝軟體包:

yum install -y samba

samba配置檔案介紹
samba配置檔案的存放路徑為

/etc/samba/

該目錄下有以下三個檔案:

lmhosts檔案中記錄著區域網中NetBIOS與IP地址的對應關係
smb.conf是samba的主配置檔案,其內容由全域性配置部分和共享配置部分組成。
smbusers檔案記錄著windowns中使用者與linux中使用者的對應關係,例如windows中的administrator管理員賬戶對應linux下的root使用者。
samba的配置:
在開始配置前,首先明確下需求:
1、user11和user12使用者可以透過samba共享來訪問自己的家目錄,且此共享僅本人可見。
2、建立三個共享,分別為share1、share2、share3,其共享的本地資料夾分別為/tmp/a1、/tmp/a2、/tmp/a3。
3、group1組的使用者user1對share1共享有全部許可權,group2組的使用者user2對share2有全部許可權,group3組的使用者user3對share1和share2共享都有全部許可權;對於share1和share2共享其他人有隻讀許可權;share3為公共儲存,所有人都有存取權。
4、所用使用者新建的檔案都是本人擁有全部許可權,其他人只有只讀許可權。
知道了需求,那麼現在就來根據需求來做具體配置吧:

vim /etc/samba/smb.conf                //使用vim文字編輯器開啟配置檔案

轉到第248行,可以看到如下內容,看開頭一行,[homes],home是家的意思,加s呢,變成複數了,可以理解成所有使用者的家,哈哈,感覺我像是在講英語。總之,透過配置此部分就可以滿足需求1了。

comment選項是用來新增一個文字描述的。
browseable選項定義他人是否可以看到此共享,yes為可以,no為不可以(僅自己可見)。
writable選項用來定義共享是否可寫。
valid users選項定義該共享規則對哪些使用者啟用。

看顯而易見,我們只要設定valid users選項,讓此共享配置僅對user11和user12使用者生效即可滿足需求1。

再來看需求2,新建三個共享,這個怎麼破?其實很簡單啦,配置檔案裡已經寫好了現成的,我們只需要複製成三份就好。
轉到配置檔案的末尾,可以看到以[public]關鍵字開頭的配置部分,這就是配置共享的模板。

複製前需要注意,這部分配置檔案預設被註釋掉了,如果你不想在複製完去一點點的刪除三份註釋符號的話那最好在複製之前把這一份註釋符號刪掉,如下圖:

三個共享有了,但他們的配置檔案是一摸一樣的,那共享名和共享的資料夾一定也是一樣的,要如何為每一個共享做定製呢?
先看這部分配置檔案的簡單介紹:

開頭的[public]是共享名,可任意起,與實際的共享資料夾可以不同名。
comment是沒用的文字介紹。
path是指定要共享的本地資料夾的路徑。
public是用來指定是否共享的,有yes和no兩個選項,至於這兩個選項分別是啥意思我就不囉嗦了。
writable用於配置此共享是否支援寫入。
printable指定是否支援列印,沒有特殊需求的話這裡都保持註釋狀態。
write list此選項用於決定哪些使用者或組對此共享擁有寫入許可權,此處一般保持註釋就好,因為linux的許可權管理可比samba的好用多了。

以下是按照需求2修改過的配置檔案,修改部分已經用紅筆標出來了,對照上方配置選項的解釋就可以輕鬆理解下圖的配置內容了。

許可權配置部分:
下面來看需求3,很明顯這裡是需要做許可權控制了。但我不得不嘮叨一下,samba自帶的許可權管理配置起來那是相當的蛋疼,而且功能弱爆了。所以這裡我們使用linux系統許可權管理加ACL來做許可權控制。
關於ACL的介紹可以參考:

linux下acl許可權詳解


在配置許可權前,我們先把所需要的使用者與組都建立完,並把他們加入到samba使用者資料庫中,再把要共享的資料夾都建立出來。
新建使用者:

useradd user11
useradd user12
useradd user1
useradd user2
useradd user3

新建組:

groupadd group1
groupadd group2
groupadd group3

將使用者加入組:

usermod -G group1 user1
usermod -G group2 user2
usermod -G group3 user3

將系統使用者加入到samba使用者資料庫中。

pdbedit -a user11
pdbedit -a user11
pdbedit -a user1
pdbedit -a user2
pdbedit -a user3

使用pebedit命令將系統使用者加入samba使用者資料庫中時會提示輸入兩次密碼,此密碼可以與linux系統使用者密碼不相同,加入成功後會出現類似如下提示:

建立共享的資料夾:

mkdir /tmp/a1
mkdir /tmp/a2
mkdir /tmp/a3

接下來就進入到了最重要的資料夾許可權配置階段了。
先來看/tmp/a1目錄的許可權配置。
將目錄所屬組改為group1

chown :group1 /tmp/a1

此時目錄/tmp/a1的許可權為:

此時group1組的成員對目錄是沒有寫許可權的,下面就賦予其讀寫執行的許可權:

chmod 775 /tmp/a1


此時group1組已經擁有了應有的許可權,但需求3裡面要求grou3組對該共享目錄也擁有全部許可權,這個就需要ACL來完成了。
執行如下命令:

setfacl -m g:group3:rwx /tmp/a1       //配置ACL許可權使group3組的成員對/tmp/a1目錄擁有全部許可權

此時檢視許可權:

注意許可權的最後多了一個+號,這證明ACL許可權已經生效了,再執行。

getfacl /tmp/a1         //檢視目錄的ACL許可權


只要有如上圖畫紅線的部分即是配置成功。
至此/tmp/a1這個目錄的全部許可權已經配置完成,而/tmp/a2目錄的許可權與/tmp/a1的許可權的配置方法雷同,這裡不再贅述。
再來看下/tmp/a3目錄的許可權,很簡單,給他777的許可權即可。

chmod 777 /tmp/a3

最後的最後,來看看需求4吧,就差這一個了。
這裡依然使用ACL許可權來完成需求,而不透過修改samba的配置檔案。
那要如何配置ACL呢?沒錯,只需要配置兩條預設ACL許可權即可。

setfacl -m d:u::rwx /tmp/a?    //這裡使用萬用字元為所有以a開頭而第二個字元為任意字元的資料夾配置許可權
setfacl -m d:g::rx /tmp/a?

以/tmp/a1資料夾的acl許可權為例:

getfacl /tmp/a1


可以看到如上圖中紅色標註的部分即為配置成功。
 
好啦,4個需求已經全部滿足了,盡情測試吧。

CentOS 6下網絡卡配置檔案的寫法

網絡卡配置檔案的路徑。

/etc/sysconfig/network-scripts/ifcfg-eth*     //注意結尾處是一個萬用字元,CentOS 6下第一塊網絡卡名為eth0,第二塊為eth1,以此類推。

配置檔案中除以下配置需要修改或新增之外其餘配置請保持預設。

ONBOOT=yes                       \\設定網絡卡在系統啟動時自動啟用
BOOTPROTO=static                 \\使用靜態ip,若需要動態獲取ip可以把static修改為dhcp,如使用dhcp方式獲取IP則此選項下方的選項可以忽略不寫。
IPADDR=192.168.162.246           \\配置IP地址
NETMASK=255.255.255.0            \\指定子網掩碼
GATEWAY=192.168.162.254          \\指定閘道器
DNS1=114.114.114.114             \\指定第一個DNS
DNS2=8.8.8.8                     \\指定第二個DNS

下面是修改好後的配置檔案的完整內容,僅供參考。

DEVICE=eth0
HWADDR=08:00:27:4D:6C:E6
TYPE=Ethernet
UUID=48cabfe6-cbb6-465c-95e8-fe37997fd9d6
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.162.246
NETMASK=255.255.255.0
GATEWAY=192.168.162.254
DNS1=114.114.114.114
DNS2=8.8.8.8

最後,重啟網路即可。

service network restart

解決yum update意外中斷後無法繼續更新的問題

問題表現:
在執行yum update更新系統時因卡住、SSH意外斷開等原因導致更新被打斷後,再次執行更新會丟擲錯誤:

There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
The program yum-complete-transaction is found in the yum-utils package.

解決方法:
安裝安裝yum-complete-transaction

yum install -y yum-utils

執行執行yum-complete-transaction

yum-complete-transaction

再次執行更新即可

yum update

CentOS 6下selinux配置檔案寫錯導致進不去系統的解決方法

問題表現:
修改完selinux的配置檔案重啟後無法進入系統,並丟擲以下錯誤(其他錯誤也適用本篇文章介紹的解決方法):

解決方法:
重啟系統
進入如下介面時按任意鍵(不要問我任意鍵是哪個。。。)

按“e”鍵。

這裡選擇第二項,按“e”編輯它。

這裡按空格接selinux=0(如圖),之後按“esc”返回上個介面,按“b”鍵重新引導即可進入系統。

進入系統後記得將你的配置檔案中寫錯的部分修改過來。

CentOS虛擬機器克隆後無法啟動網絡卡的解決方法

問題表現:
裝有CentOS系統的虛擬機器克隆並啟動後使用ifconfig命令檢視不到網絡卡,使用service network restart命令重啟網路丟擲錯誤:bringing up interface eth0
解決辦法:
1. 修改 /etc/udev/rules.d/70-persistent-net.rules檔案,將檔案中原來的eth0的網絡卡的資訊刪除,並將eth1修改為eth0。
2. 修改 /etc/sysconfig/network-scripts/ifcfg-eth0,刪除其中的MAC地址資訊和UUID的資訊。
修改完成之後,重啟虛擬機器即可。

CentOS 6中dhcp伺服器安裝與配置

安裝dhcp服務

yum install -y dhcp

用vim文字編輯器開啟dhcp服務的主配置檔案。

vim /etc/dhcp/dhcpd.conf

可以看到如下內容:

意思就是告訴你想獲取dhcp的配置方法可以參見/usr/share/doc/dhcp*/dhcpd.conf.sample檔案或是使用man 5 dhcpd.conf命令
為方便,一般都是直接刪除當前dhcpd.conf檔案,並將/usr/share/doc/dhcp*/dhcpd.conf.sample複製到/etc/dhcp/目錄下,重新命名為dhcpd.conf。

cp /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf

在第四十七行左右可以看到如下內容,它們是在配置動態地址分配時可能會用到的選項,可根據實際情況進行配置與取捨。其中以“option”開頭的為可選引數,否則為必填:

subnet 10.5.5.0 netmask 255.255.255.224 {             #配置要分配的網段及子網掩碼
range 10.5.5.26 10.5.5.30;                     #設定要分配的地址範圍
option domain-name-servers ns1.internal.example.org;        #設定預設分配的dns伺服器
option domain-name "internal.example.org";             #設定域名(這地方我表示無法理解)
option routers 10.5.5.1;                      #設定預設分配的閘道器地址
option broadcast-address 10.5.5.31;                #設定廣播地址(這個地方也是無法理解)
default-lease-time 600;                      #設定租期(單位是秒)
max-lease-time 7200;                        #設定最大租期(單位是秒)
}

以上是動態分配ip地址的配置內容,假如想給一臺裝置分配固定IP要怎麼辦呢?
翻到第75行左右,可以看見如下內容:

host fantasia {
hardware ethernet 08:00:07:26:c0:a5;                #客戶端MAC地址,伺服器透過MAC地址來確定是否需要給客戶端分配固定IP地址。
fixed-address fantasia.fugue.com;                  #要分配的固定IP地址
}

最後,根據自己的需求做修改並重啟dhcpd服務即可。

service dhcpd restart