1. 程式人生 > >Linux入門基礎教程

Linux入門基礎教程

1. 1      Linux作業系統簡介

Linux是一套免費使用和自由傳播的類Unix作業系統,是一個基於POSIX和UNIX的多使用者、多工、支援多執行緒和多CPU的作業系統。它能執行主要的UNIX工具軟體、應用程式和網路協議。它支援32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多使用者網路作業系統。
1991年的10月5日,Linux創始人林納斯·託瓦茲(Linus Torvalds)在comp.os.minix新聞組上釋出訊息,正式向外宣佈Linux核心的誕生,1994年3月,Linux 1.0釋出,程式碼量17萬行,當時是按照完全自由免費的協議釋出,隨後正式採用GPL(General Public License的縮寫,是一份GNU通用公共授權)協議。
Linux具有如下優點:
Ø       穩定、免費或者花費少
Ø       安全性高
Ø       多工,多使用者
Ø       耗資源少
Ø       由於核心小,所以它可以支援多種電子產品,如:Android手機、PDA等。

1. 2      Linux發展趨勢

隨著IT產業的不斷髮展,使用者對網站體驗要求也越來越高,而目前主流網站後端承載系統都是Linux系統,目前Android手機全部基於Linux核心研發。企業大資料、雲端儲存、虛擬化等先進技術都是基於Linux系統。
2010年據有關權威部門統計:將來幾年內我國軟體行業的從業機會十分龐大,中國每年對軟體人才的需求將達到50萬人左右。而對於Linux 專業人才的就業前景,更是廣闊;據悉在未來5-10年內 Linux 專業人才的需求將達到 120 萬+!尤其是有經驗的資深的Linux工程師目前非常的缺乏,薪資也是非常誘人,平均月薪都是15-20K,能力強的薪資更高。

所以機會對每個人都是公平的,關鍵是我們每個人如何去行動,選擇大於努力。
 

1. 3      Linux系統安裝

在安裝Linux系統之前,先來了解windows系統結構,windows系統一般是安裝在C盤系統盤,同樣Linux也有類似的系統盤(/根分割槽),Linux通常分割槽為(根分割槽/、swap分割槽),Linux系統以檔案的儲存方式,所有的檔案都是儲存在某個目錄下的,類似於windows的資料夾。
對於檔案系統的屬性來說,windows檔案系統型別一般是ntfs、fat32等,而Linux檔案系統型別則為ext2、ext3、ext4等(檔案系統:是作業系統用於明確磁碟或分割槽上的檔案的方法和資料結構,檔案系統由三部分組成:與檔案管理有關軟體、被管理檔案以及實施檔案管理所需資料結構。)
安裝 Linux系統是每一個初學者的第一個門檻。在這個過程中間,最大的困惑莫過於給硬碟進行分割槽。雖然現在各種發行版本的 Linux 已經提供了友好的圖形互動介面,但是很多人還是感覺無從下手。這其中的原因主要是不清楚 Linux 的分割槽規定。就好比如果我們瞭解了windows分割槽的規則,系統盤C、資料盤D等,就很好分割槽了。
在 Linux 中規定,每一個硬碟裝置最多隻能有 4個主分割槽(其中包含擴充套件分割槽)構成,任何一個擴充套件分割槽都要佔用一個主分割槽號碼,也就是在一個硬碟中,主分割槽和擴充套件分割槽一共最多是 4 個。
下面正式來安裝Linux系統,安裝系統前需要準備如下軟體:
ü       VMware workstation 10.0
ü       CentOS 5.8 x86_i386.iso
安裝圖解如下:
第一步,新建虛擬機器如下圖:


第二步,選擇相關選項,如下圖:

第三步選擇“稍後安裝作業系統”,如下圖:

第四步,選擇客戶機作業系統型別如下圖:

第五步,設定虛擬機器硬碟大小為20G,最低不能小於5G,如下圖:

第六步,虛擬機器新建完成,如下圖:

第七步,修改虛擬機器記憶體為512M,並新增ISO映象,如下圖:

自此,虛擬機器新建完成,接下來點選“啟動此虛擬機器”進行Linux系統安裝,Linux系統安裝圖解如下:
第一步,進入安裝介面,直接按Enter回車鍵即可。

第二步,光碟檢測,選擇SKIP跳過。


第三步,選擇安裝過程中的語言,初學者可以選擇“簡體中文”。

第四步,選擇初始化整個硬碟,清除所有資料。

第五步,選擇分割槽方式為“自定義分割槽“。


第五步,點選“新建“-首先建立一個swap交換分割槽,大小為實體記憶體的2倍(1024M)。

第六步,繼續建立分割槽,選擇“新建“,然後建立根分割槽/,如下圖選擇,大小為剩餘所有空間即可。


第七步,預設點選下一步,同時預設DHCP配置,時鐘選擇上海,去掉UTC勾,點選下一步。



第八步,設定root密碼,至少六位,點選下一步。

第九步,系統安裝包選擇,這裡選擇“現在定製“。

第十步,系統安裝包選擇,左側選擇“開發“----右側選擇”開發工具“和“開發庫”,語言選擇“支援中文“,其他一概不選擇。


安裝完畢會提示“reboot“,直接回車即可。

1. 4      Linux學習技巧

初學者可以自己安裝虛擬機器,然後把linux常用命令例如cd、ls、chmod、useradd、vi等等多練習幾十遍,把自己敲打命令的熟練程度提升上來。
然後根據文件搭建Linux下常見的各種服務(DHCP、SAMBA、DNS、Apache、Mysql等),遇到問題後可以在google搜尋,搜尋的時候多看幾篇文章,綜合最好的文章來解決問題。
能夠熟練的搭建服務後,理解每個服務的完整配置和優化,可以拓展思維。例如LAMP,我們一般是把所有服務放在一臺機器上,如果分開多臺該如何部署呢?等等。
平時多積累shell程式設計,可以在網上查詢前輩們寫的非常好的shell,自己下載下來多練習幾遍,從中吸取,不斷提高。
建立一個自己的學習部落格,把平時工作學習中的知識都記錄在裡面,這樣也可以供別人來參考同時也能提高自己的編寫文件及方案的能力。
通過以上學習能夠滿足企業的一般應有,需要達到資深級別,還需要深入學習叢集架構、負載均衡、自動化運維、運維開發等知識。最後還是一句話:多練習才是硬道理!實踐出真知!

1.   Linux系統篇

2.1            Linux系統管理

通過前兩章的學習,我們已經能夠獨立安裝Linux系統,已經掌握了Linux學習的技巧,那接下來,我們將系統的來了解Linux系統各目錄、許可權及常用命令的使用。

2.1. 1         Linux目錄初識

通過前面的學習,我們已經能夠獨立安裝完一個linux系統,那接下來我們來熟悉一下Linux系統裡面的各個目錄資料夾的大致功能:
主要的目錄樹的有/、/root、/home、/usr、/bin等目錄。下面是一個典型的linux目錄結構如下: (附圖表)

/ 根目錄 
/bin 存放必要的命令 
/boot 存放核心以及啟動所需的檔案
/dev 存放裝置檔案 
/etc 存放系統配置檔案 
/home 普通使用者的宿主目錄,使用者資料存放在其主目錄中 
/lib 存放必要的執行庫 
/mnt 存放臨時的對映檔案系統,通常用來掛載使用。
 /proc 存放儲存程序和系統資訊 
/root 超級使用者的主目錄 
/sbin 存放系統管理程式 
/tmp 存放臨時檔案
/usr 存放應用程式,命令程式檔案、程式庫、手冊和其它文件。 
/var 系統預設日誌存放目錄

2.1. 2         Linux必備命令

預設進入系統,我們會看到這樣的字元: [[email protected] ~]#,其中#代表當前是root使用者登入,如果是$表示當前為普通使用者。
我們瞭解linux由很多目錄檔案構成,那我們來學習第一個Linux命令:
cd命令, cd  /home  ;解析:進入/home目錄
cd /root 進入/root目錄 ;cd ../返回上一級目錄;cd  ./當前目錄;(.和..可以理解為相對路徑;例如cd /hom/test ,cd加完整的路徑,可以理解為絕對路徑)
接下來繼續學習更多的命令:
   ls  ./ 檢視當前目錄所有的檔案和目錄。
ls  -a 檢視所有的檔案,包括隱藏檔案,以.開頭的檔案。
 
pwd顯示當前所在的目錄。
mkdir建立目錄,用法mkdir  test ,命令後接目錄的名稱。
rmdir 刪除空目錄
rm 刪除檔案或者目錄,用法 rm –rf  test.txt (-r表示遞迴,-f表示強制)。
cp 拷貝檔案,用法,cp  old.txt  /tmp/new.txt ,常用來備份;如果拷貝目錄
需要加 –r引數。
 
mv 重新命名或者移動檔案或者目錄,用法, mv old.txt new.txt
touch 建立檔案,用法,touch test.txt,如果檔案存在,則表示修改當前檔案時間。
Useradd建立使用者,用法 useradd wugk ,userdel刪除使用者。
Groupadd建立組,用法 groupadd wugk1 ,groupdel刪除組。
 
find查詢檔案或目錄,用法 find  /home  -name  “test.txt”,命令格式為:
find 後接查詢的目錄,-name指定需要查詢的檔名稱,名稱可以使用*表示所有。
find  /home  -name  “*.txt” ;查詢/home目錄下,所有以.txt結尾的檔案或者目錄。
vi 修改某個檔案,vi有三種模式:
命令列模式、文字輸入模式、末行模式。
預設vi開啟一個檔案,首先是命令列模式,然後按i進入文字輸入模式,可以在檔案裡寫入字元等等資訊。
寫完後,按esc進入命令模式,然後輸入:進入末行模式,例如輸入:wq表示儲存退出。
如果想直接退出,不儲存,可以執行:q!, q!歎號表示強制退出。
cat 檢視檔案內容,用法 cat test.txt 可以看到test.txt內容
more 檢視檔案內容,分頁檢視,cat是全部檢視,如果篇幅很多,只能看到最後的篇幅。可以使用cat和more同時使用,例如: cat  test.txt |more 分頁顯示text內容,|符號是管道符,用於把|前的輸出作為後面命令的輸入。
echo 回顯,用法 echo ok,會顯示ok,輸入什麼就列印什麼。
echo  ok  > test.txt ;把ok字元覆蓋test.txt內容,>表示追加並覆蓋的意思。
>>兩個大於符號,表示追加,echo ok >> test.txt,表示向test.txt檔案追加OK字元,不覆蓋原檔案裡的內容。
初學者常見的命令就如上所示,當然還有很多深入的命令需要學習,後面的課程會講解。

2.1. 3         Linux使用者許可權管理

在Linux作業系統中,root的許可權是最高的,相當於windows的administrator,擁有最高許可權,能執行任何命令和操作。在系統中,通過UID來區分使用者的許可權級別,UID等於0,表示此使用者具有最高許可權,也就是管理員。其他的使用者UID依次增加,通過/etc/passwd使用者密碼檔案可以檢視到每個使用者的獨立的UID。
每一個檔案或者目錄的許可權,都包含一個使用者許可權、一個組的許可權、其他人許可權,例如下:
標紅第一個root表示該檔案所有者是root使用者,第二個root代表該檔案的所屬的組為root組,其他使用者這裡預設不標出。
 [[email protected] ~]# ls -l monitor_log.sh
-rw-r--r-- 1 root root 91 May  7 20:21 monitor_log.sh
[[email protected] ~]#
如果我們想改變某個檔案的所有者或者所屬的組,可以使用命令chown
chown  –R  test:test  monitor_log.sh即可。
每個Linux檔案具有四種訪問許可權:可讀(r)、可寫(w)、可執行(x)和無許可權(-)。
利用ls -l命令可以看到某個檔案或目錄的許可權,它以顯示資料的第一個欄位為
 準。第一個欄位由10個字元組成,如下:
    [[email protected] ~]# ls -l monitor_log.sh
-rw-r--r-- 1 root root 91 May  7 20:21 monitor_log.sh
[[email protected] ~]#
    第一位表示檔案型別,-表示檔案,d表示目錄;後面每三位為一組。
   第一組:2-4位表示檔案所有者的許可權,即使用者user許可權,簡稱u
   第二組:5-7位表示檔案所有者所屬組成員的許可權,group許可權,簡稱g
   第三組:8-10位表示所有者所屬組之外的使用者的許可權,other許可權,簡稱o
從上面這個檔案,我們可以看出,monito_log.sh檔案對應的許可權為:
root使用者具有讀和寫的許可權,root組具有讀的許可權,其他人具有讀的許可權。
為了能更簡單快捷的使用和熟悉許可權,rwx許可權可以用數字來表示,分別表示為r(4)、w(2)、x(1)。
Monitor_log.sh許可權可以表示為:644
如果給某個檔案授權,命令為chmod:chmod 777 monitor_log.sh

2.1. 4         Linux網路配置管理

熟悉了常用的命令和Linux許可權,那接下來如何讓所在的Linux系統上網呢?管理linux伺服器網路有哪些命令呢?
   Linux伺服器預設網絡卡配置檔案在/etc/sysconfig/network-scripts/下,命名的名稱一般為:ifcfg-eth0 ifcfg-eth1 ,eth0表示第一塊網絡卡,eth1表示第二塊網絡卡,依次類推。一般DELL R720標配有4塊千兆網絡卡。
   修改網絡卡的IP,可以使用命令: vi /etc/sysconfig/network-scripts/ifcfg-eth0 如果是DHCP獲取的IP,預設配置如下:
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=dhcp
HWADDR=00:0c:29:52:c7:4e
ONBOOT=yes
TYPE=Ethernet
如果是靜態配置的IP,ifcfg-eth0網絡卡配置內容如下:
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:0c:29:52:c7:4e
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.33.10
NETMASK=255.255.255.0
GATEWAY=192.168.33.1
網絡卡引數詳解如下:
DEVICE=eth0   #物理裝置名
ONBOOT=yes   # [yes|no](重啟網絡卡是否啟用裝置)
BOOTPROTO=static #[none|static|bootp|dhcp](不使用協議|靜態分配|BOOTP協議|DHCP協議)

TYPE=Ethernet  #網絡卡型別

IPADDR=192.168.33.10 #IP 地址
NETMASK=255.255.255.0 #子網掩碼
GATEWAY=192.168.33.1 #閘道器地址
網絡卡配置完畢,重啟網絡卡,命令: /etc/init.d/network restart 即可。
檢視ip命令:ifconfig 檢視當前伺服器所有網絡卡的IP,可以單獨指定,ifconfig eth0 檢視eth0的IP地址。
網絡卡配置完畢,如果來配置DNS,首先要知道DNS配置在哪個目錄檔案下,vi  /etc/resolv.conf 檔案:
在該檔案裡面新增如下兩條:
nameserver 202.106.0.20
nameserver 8.8.8.8
從上到下,分別表示主DNS,備DNS。配置完畢後,不需要重啟網絡卡,DNS立即生效。
可以ping www.baidu.com 看看效果:

IP配置完畢後,我們可以通過遠端工具來連線Linux伺服器,常見的Linux遠端連線工具有:putty、secureCRT(主流)、xshell、xmanger等工具。
下載安裝secureCRT,開啟工具,然後如圖配置:
點選左上角quick connect快速連線,彈出介面,然後輸入IP,使用者名稱,埠預設是22,然後點選下方的connect連線,會提示輸入密碼,輸入即可。

彈出輸入密碼框:

進入遠端介面,與伺服器真實登入一樣,然後可以執行命令:

通過這幾章的學習,我們已經熟練了Linux常用命令的操作,許可權網路、網路配置、遠端連線等知識,那接下來我們還能做什麼呢?我們已經差不多入門了,接下來就是更進一步的服務配置,Linux系統到底用來做什麼呢?接下來的章節將跟大家一起來學習。  
Linux系統的應用,我們最開始介紹的時候簡單介紹過,目前大中型企業都用它來承載web網站、資料庫、虛擬化平臺等,那接下來我們將在Linux系統安裝各種服務和軟體來實現Linux真正的價值。

2.1. 5         Linux軟體包管理必備命令

2.   Linux服務篇

3.1            Linux服務部署

3.1. 1         構建NTP時間伺服器

NTP伺服器是用於區域網伺服器時間同步使用的,可以保證區域網所有的伺服器與時間伺服器的時間保持一致,某些應用對時間實時性要求高的必須統一時間。
網際網路的時間伺服器也有很多,例如ntpdate ntp.fudan.edu.cn 復旦大學的NTP免費提供網際網路時間同步。
NTP伺服器監聽埠為UDP的123,那就需要在本地防火牆開啟執行客戶端訪問123埠,vi /etc/sysconfig/iptables新增如下規則:
-A INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT
NTP時間伺服器配置:
yum install ntp ntpdate -y 即可!
修改ntp.conf配置檔案
cp  /etp/ntp.conf /etc/ntp.conf.bak
vi /etc/ntp.conf 只修改如下兩行,把#號去掉即可!
server 127.127.1.0     # local clock
fudge  127.127.1.0 stratum 10
以守護程序啟動ntpd
/etc/init.d/ntpd start 即可
(注意*: ntpd啟動後,客戶機要等幾分鐘再與其進行時間同步,否則會提示“no server suitable for synchronization found”錯誤。)
配置時間同步客戶機
crontab -e
增加一行,在每天的6點10分與時間同步伺服器進行同步
10 06 * * * /usr/sbin/ntpdate ntp-server的ip >>/usr/local/logs/crontab/ntpdate.log
備註:如果客戶機沒有ntpdate,可以yum –y install ntp 即可!
以下是ntp伺服器配置檔案內容(區域網NTP,如果需要跟外網同步,新增外網server即可)
driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
server  127.127.1.0     # local clock
fudge   127.127.1.0 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
下面是引數詳解:

restrict default ignore# 關閉所有的 NTP 要求封包
restrict 127.0.0.1# 開啟內部遞迴網路介面 lo
restrict 192.168.0.0 mask 255.255.255.0 nomodify#在內部子網裡面的客戶端可以進行網路校時,但不能修改NTP伺服器的時間引數。
server 198.123.30.132#198.123.30.132作為上級時間伺服器參考
restrict 198.123.30.132#開放server 訪問我們ntp服務的許可權
driftfile /var/lib/ntp/drift在與上級時間伺服器聯絡時所花費的時間,記錄在driftfile引數後面的檔案內
broadcastdelay 0.008#廣播延遲時間

 
自此NTP服務搭建完畢,然後在所有客戶端crontab裡面新增如下語句:
0  0   *  *  * /usr/sbin/ntpdate  10.0.0.155 >>/data/logs/ntp.log 2>&1

3.1. 2         構建DHCP伺服器

DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)是一個區域網的網路協議,使用UDP協議工作,主要用途:給內部網路或網路服務供應商自動分配IP地址,DHCP有3個埠,其中UDP67和UDP68為正常的DHCP服務埠,分別作為DHCP Server和DHCP Client的服務埠。
DHCP可以部署在伺服器、交換機或者伺服器,可以控制一段IP地址範圍,客戶機登入伺服器時就可以自動獲得DHCP伺服器分配的IP地址和子網掩碼。其中DHCP所在伺服器的需要安裝TCP/IP協議,需要設定靜態IP地址、子網掩碼、預設閘道器。
正式安裝DHCP服務:
Yum  install  dhcp dhcp-devel –y 即可,然後修改DHCP /etc/dhcpd.conf配置檔案內容如下:
ddns-update-style interim;
ignore client-updates;
next-server  192.168.0.79;
filename "pxelinux.0";
allow booting;
allow bootp; 
subnet 192.168.0.0 netmask 255.255.255.0 {
# --- default gateway
option routers          192.168.0.1;
option subnet-mask      255.255.252.0;
#   option nis-domain       "domain.org";
#  option domain-name "192.168.0.10";
#   option domain-name-servers  192.168.0.11;
#   option ntp-servers      192.168.1.1;
#   option netbios-name-servers  192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
#   option netbios-node-type 2;
range  dynamic-bootp  192.168.0.100 192.168.0.200;
host ns {
hardware ethernet  00:1a:a0:2b:38:81;
fixed-address 192.168.0.101;}
}
引數解析如下:

選    項解    釋
ddns-update-style interim|ad-hoc|none 引數用來設定DHCP伺服器與DNS伺服器的動態資訊更新模式:interim為DNS互動更新模式,ad-hoc為特殊DNS更新模式,none為不支援動態更新模式。
next-server ippxeclient遠端安裝系統,指定tftp server 地址
filename開始啟動檔案的名稱,應用於無盤安裝,可以是tftp的相對或絕對路徑  
ignore client-updates為忽略客戶端更新
subnet-mask為客戶端設定子網掩碼
option routers為客戶端指定閘道器地址
domain-name為客戶端指明DNS名字
domain-name-servers為客戶端指明DNS伺服器的IP地址
host-name為客戶端指定主機名稱
broadcast-address為客戶端設定廣播地址
ntp-server為客戶端設定網路時間伺服器的IP地址
time-offset為客戶端設定格林威治時間的偏移時間,單位是秒

注意如上配置,需要修改成對應伺服器網段IP,然後重啟DHCP服務,/etc/init.d/dhcpd restart即可。
客戶端要從這個DHCP伺服器獲取IP,需要做簡單的設定,如果是linux需要把/etc/sysconfig/network-scritps/ifcfg-eth0裡BOOTPROTO相改成dhcp即可,windows機器的話,需要修改本地連線,把它設定成自動獲取IP即可。
BOOTPROTO=dhcp

3.1. 3         搭建Samba伺服器

Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟體,由伺服器及客戶端程式構成,
SMB(Server Messages Block,資訊服務塊)是一種在區域網上共享檔案和印表機的一種通訊協議,它為區域網內的不同計算機之間提供檔案及印表機等資源的共享服務。
SMB協議是客戶機/伺服器型協議,客戶機通過該協議可以訪問伺服器上的共享檔案系統、印表機及其他資源。通過設定“NetBIOS over TCP/IP”使得Samba不但能與區域網絡主機分享資源,還能與全世界的電腦分享資源。
安裝SAMBA伺服器:
Yum install  samba –y
安裝完畢,然後做如下設定(過濾#號行、空行如下命令)
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak ;egrep -v "#|^$" /etc/samba/smb.conf.bak |grep -v "^;" >/etc/samba/smb.conf
檢視smb.conf配置檔案如下:
[global]
        workgroup = MYGROUP
        server string = Samba Server Version %v
        security = share
        passdb backend = tdbsam
        load printers = yes
        cups options = raw
 
[temp]
     comment=Temporary file space
     path=/tmp
     read only=no
     public=yes
 
[data]
     comment=Temporary file space
     path=/data
     read only=no
     public=yes
根據需求修改之後重啟服務:
[[email protected] ~]# /etc/init.d/smb restart
Shutting down SMB services:                                [FAILED]
Shutting down NMB services:                                [FAILED]
Starting SMB services:                                     [  OK  ]
Starting NMB services:                                     [  OK  ]
 

workgroup =WORKGROUP 設Samba Server 所要加入的工作組或者域。
server string = Samba Server Version %vSamba Server 的註釋,可以是任何字串,也可以不填。巨集%v表示顯示Samba的版本號。
 
 
 
 
security = user
1.share:使用者訪問Samba Server不需要提供使用者名稱和口令, 安全效能較低。
2. user:Samba Server共享目錄只能被授權的使用者訪問,由Samba Server負責檢查賬號和密碼的正確性。賬號和密碼要在本Samba Server中建立。
3. server:依靠其他Windows NT/2000或Samba Server來驗證使用者的賬號和密碼,是一種代理驗證。此種安全模式下,系統管理員可以把所有的Windows使用者和口令集中到一個NT系統上,使用Windows NT進行Samba認證, 遠端伺服器可以自動認證全部使用者和口令,如果認證失敗,Samba將使用使用者級安全模式作為替代的方式。
4. domain:域安全級別,使用主域控制器(PDC)來完成認證。
comment = test是對該共享的描述,可以是任意字串。
path = /home/test共享目錄路徑
browseable= yes/no 用來指定該共享是否可以瀏覽。
writable = yes/nowritable用來指定該共享路徑是否可寫。
available = yes/noavailable用來指定該共享資源是否可用
admin users = admin該共享的管理者
valid users = test允許訪問該共享的使用者
invalid users = test禁止訪問該共享的使用者
write list = test允許寫入該共享的使用者
public = yes/nopublic用來指定該共享是否允許guest賬戶訪問。

 
在瀏覽器裡面訪問方式為:\\192.168.33.10 (SMB檔案共享服務端IP),如何沒有許可權訪問,需要注意防火牆和selinux設定,可以使用如下命令關閉:
/etc/init.d/iptables stop ;sed  –i   ‘/SELINUX/s/enforcing/disabled’  /etc/sysconfig/selinux

3.1. 4         搭建NFS伺服器

NFS 是Network File System的縮寫,即網路檔案系統。一種使用於分散式檔案系統的協定,由Sun公司開發,於1984年向外公佈。功能是通過網路讓不同的機器、不同的作業系統能夠彼此分享個別的資料,讓應用程式在客戶端通過網路訪問位於伺服器磁碟中的資料,是在類Unix系統間實現磁碟檔案共享的一種方法。
NFS在檔案傳送或資訊傳送過程中依賴於RPC協議。RPC,遠端過程呼叫 (Remote Procedure Call) 是能使客戶端執行其他系統中程式的一種機制。NFS本身是沒有提供資訊傳輸的協議和功能的。
NFS應用場景,常用於高可用檔案共享,多臺伺服器共享同樣的資料,可擴充套件性比較差,本身高可用方案不完善,取而代之的資料量比較大的可以採用MFS、TFS、HDFS等等分散式檔案系統。
NFS安裝配置:
Yum  install nfs*  portmap  -y 如下圖,安裝成功即可。

NFS安裝完畢,需要建立共享目錄,共享目錄在/etc/exports檔案裡面配置,可配置引數如下:
/data/      192.168.33.11(rw,sync,no_hide,no_all_squash)
在配置檔案中新增如上一行,然後重啟Portmap,NFS服務即可,/etc/init.d/portmap restart ;/etc/init.d/nfs restart
第一列/data/表示需要共享的目錄。
IP表示允許哪個客戶端訪問。
IP後括號裡的設定表示對該共享檔案的許可權。
ro                      只讀訪問
rw                      讀寫訪問
sync                    所有資料在請求時寫入共享
hide                    在NFS共享目錄中不共享其子目錄
no_hide                 共享NFS目錄的子目錄
all_squash              共享檔案的UID和GID對映匿名使用者anonymous,適合公用目錄。
no_all_squash           保留共享檔案的UID和GID(預設)
root_squash             root使用者的所有請求對映成如anonymous使用者一樣的許可權(預設)
no_root_squas           root使用者具有根目錄的完全管理訪問許可權


Linux客戶端,如何想使用這個NFS檔案系統,需要在客戶端掛載,掛載命令為:
Mount –t  nfs  192.168.33.10:/data/    /mnt 即可。如果有報錯根據錯誤資訊排查。常見問題有rpc服務沒有啟動、防火牆沒關閉、selinux未關閉等問題。(拓展* 有興趣的童鞋可以研究MFS(分散式檔案系統)。)

3.1. 5         搭建FTP伺服器

FTP 是檔案傳輸協議,正是由於這種協議使得主機間可以共享檔案。 FTP 使用TCP 生成一個虛擬連線用於控制資訊,然後再生成一個單獨的 TCP 連線用於資料傳輸。
vsftpd是一款在Linux發行版中最主流的FTP伺服器程式;特點是小巧輕快,安全易用;能讓其自身特點得發發揮和掌握。
目前在開源作業系統中常用的FTP伺服器程式主要有vsftpd、ProFTPD、PureFTPd和wuftpd等,這麼多FTP伺服器程式,關鍵在於自己熟練哪一個就使用哪一個。今天我們來研究一下VSFTPD簡單安裝及使用。安裝命令: yum  install vsftpd*  -y

修改配置檔案如下:
#vsftpd config 2014 by wugk
anonymous_enable=NO    //禁止匿名使用者訪問
local_enable=YES  //允許本地使用者登入FTP
write_enable=YES   //執行使用者在FTP目錄有寫入的許可權
local_umask=022   //設定本地使用者的檔案生成掩碼為022,預設是077
dirmessage_enable=YES //啟用目錄資訊,當遠端使用者更改目錄時,將出現提示資訊
xferlog_enable=YES   //啟用上傳和下載日誌功能
connect_from_port_20=YES  //啟用FTP資料埠的連線請求
xferlog_std_format=YES  //是否使用標準的ftpd xferlog日誌檔案格式
listen=YES  //使vsftpd處於獨立啟動監聽埠模式
pam_service_name=vsftpd //設定PAM認證服務配置檔名稱,檔案存放在/etc/pam.d/目錄
userlist_enable=YES   //使用者列表中的使用者是否允許登入FTP伺服器,預設是不允許
tcp_wrappers=YES    //使用tcp_wrqppers作為主機訪問控制方式
 
1)    第一種方法就是使用系統使用者登入FTP,但是也是比較危險的,先測試系統使用者登入FTP,在Linux系統上建立useradd  test 使用者,併為其設定名,然後在xp客戶端開啟我的電腦資源裡面訪問 ftp://192.168.33.10,輸入使用者名稱和密碼即可訪問,進行建立和刪除操作。
2)    第二種方法比較安全,配置相對複雜一點,就是使用vsftpd虛擬使用者登入FTP伺服器進行常見的操作。
Ø       首先安裝FTP 虛擬使用者需要用到的軟體及認證模組
yum install pam* db4* --skip-broken –y
建立並生成vsftpd資料庫檔案vi /etc/vsftpd/ftpusers.txt,內容如下:
第一行為FTP虛擬使用者,登入使用者名稱,第二行為密碼,第三行為使用者名稱,依次類推。
wugk
1
wugk1
1
Ø       生成資料庫檔案命令:
db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db
chmod 700 /etc/vsftpd/vsftpd_login.db
Ø       配置PAM驗證檔案:
在配置檔案vi /etc/pam.d/vsftpd 行首加入如下兩行認證語句:(如果是32位,lib64需改成lib,如果RedHat,加入的語句不一樣,需注意)
auth    sufficient      /lib64/security/pam_userdb.so     db=/etc/vsftpd/vsftpd_login
account sufficient      /lib64/security/pam_userdb.so      db=/etc/vsftpd/vsftpd_login
Ø       建立vsftpd對映本地使用者:
所有的FTP虛擬使用者需要使用一個系統使用者,這個系統使用者不需要密碼,也不需要登入。主要用來做虛擬使用者對映使用。
useradd  –d /home/ftpuser –s /sbin/nologin ftpuser
Ø       修改完整版配置檔案內容如下:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
listen=YES
 
guest_enable=YES
guest_username=ftpuser
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/vsftpd_user_conf
virtual_use_local_privs=YES
 
   儲存重啟,/etc/init.d/vsftpd restart 即可使用虛擬使用者登入,這時候所有的虛擬使用者共同使用/home/ftpuser目錄上傳下載,如果想使用自己獨立的目錄,可以在/etc/vsftpd/vsftpd_user_conf目錄