轉載自:http://www.centoscn.com/CentOS/2015/0528/5555.html 1. 1 Linux操作系統簡介 Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNI ...
轉載自:http://www.centoscn.com/CentOS/2015/0528/5555.html
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必備命令
預設進入系統,我們會看到這樣的字元: [root@localhost ~]#,其中#代表當前是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組,其他用戶這裡預設不標出。
[root@node1 ~]# ls -l monitor_log.sh
-rw-r--r-- 1 root root 91 May 7 20:21 monitor_log.sh
[root@node1 ~]#
如果我們想改變某個文件的所有者或者所屬的組,可以使用命令chown
chown –R test:test monitor_log.sh即可。
每個Linux文件具有四種訪問許可權:可讀(r)、可寫(w)、可執行(x)和無許可權(-)。
利用ls -l命令可以看到某個文件或目錄的許可權,它以顯示數據的第一個欄位為
準。第一個欄位由10個字元組成,如下:
[root@node1 ~]# ls -l monitor_log.sh
-rw-r--r-- 1 root root 91 May 7 20:21 monitor_log.sh
[root@node1 ~]#
第一位表示文件類型,-表示文件,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 ip | pxeclient遠程安裝系統,指定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
根據需求修改之後重啟服務:
[root@node1 ~]# /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 %v | Samba 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/no | writable用來指定該共用路徑是否可寫。 |
available = yes/no | available用來指定該共用資源是否可用 |
admin users = admin | 該共用的管理者 |
valid users = test | 允許訪問該共用的用戶 |
invalid users = test | 禁止訪問該共用的用戶 |
write list = test | 允許寫入該共用的用戶 |
public = yes/no | public用來指定該共用是否允許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目錄創建各自的配置文件,如給wugk創建獨立的配置文件:
vi /etc/vsftpd/vsftpd_user_conf/wugk ,內容如下,建立自己的FTP目錄。
local_root=/home/ftpsite/wugk
write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
重啟,使用客戶端登錄FTP,測試即可。關於FTP講解就到此,windows還可以使用Server-U來搭建FTP伺服器端,有興趣的童鞋可以研究一下。
Ø FTP主被動模式
FTP主動模式:客戶端從一個任意的非特權埠N(N>1024)連接到FTP伺服器的port 21命令埠。然後客戶端開始監聽埠N+1,併發送FTP命令“port N+1”到FTP伺服器。接著伺服器會從它自己的數據埠(20)連接到客戶端指定的數據埠(N+1)。
FTP被動模式:客戶端從一個任意的非特權埠N(N>1024)連接到FTP伺服器的port 21命令埠。然後客戶端開始監聽埠N+1,同時客戶端提交 PASV命令。伺服器會開啟一個任意的非特權埠(P >1024),併發送PORT P命令給客戶端。然後客戶端發起從本地埠N+1到伺服器的埠P的連接用來傳送數據。