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引導來啓動光盤/U盤上的系統,這裏因為各個品牌的電腦修改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