1. 程式人生 > >Linux中Samba與NFS的共享示例

Linux中Samba與NFS的共享示例

Linux中Samba與NFS的共享示例

在這裏面所有的服務器為CentOS 6.9,samba客戶端和NFS客戶端均為CentOS 7.2
要完成以下操作需要安裝的軟件包:yum install httpd mariadb-server(CentOS6.9是mysql-server)nfs-utils samba php php-fpm php-mysql nginx
安裝完成即可進行操作;
使用samba和NFS分別共享/data目錄:
首先使用NFS共享/data目錄:
創建共享目錄:
~]# mkdir /data
在centos6中編輯文件/etc/exports
~]# vim /etc/exports
在內部添加一行內容:
/data () //第一個是要共享的目錄,“”
“”表示所能接受共享的主機地址表示所有主機都可以接受
添加完之後保存退出即可;
接下來啟動NFS進程:
~]# service nfs start
啟動 NFS 服務: [確定]
關掉 NFS 配額: [確定]
啟動 NFS mountd: [確定]
啟動 NFS 守護進程: [確定]
正在啟動 RPC idmapd: [確定]
啟動成功後完成之後 :
~]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 172.16.72.11:8000 :
LISTEN 0 64 :::2049 :::
LISTEN 0 64
:2049 :
.....
可以看到有端口號為2049的進程啟動即可;
這時我們可以在我們本地共享的目錄中創建一個文件,然後在裏面編輯一行內容:
~]# touch /data/test
~]# vim /data/test
測試成功

編輯完成後,保存退出即可;
為了測試是否共享成功,我麽可以在另一臺主機上進行如下操作:
~]# mkdir /mnt/nfs //首先創建一個可以掛載的目錄
~]# showmount -e 172.16.72.11 //查看服務器共享的目錄列表
Export list for 172.16.72.11:
/data *
~]# mount -t nfs 172.16.72.11:/data /mnt/nfs //掛載共享目錄
~]# df //查看掛載是否成功 172.16.72.11:/data 51475200 12512512 36341248 26% /mnt/nfs有這一行代表成功了
~]# cat /mnt/nfs/test //查看共享是否成功
測試成功 //顯示為我們之前所輸入的文字,所以共享成功;

接下來我們使用Samba共享/data目錄:
之前我們已經創建好了共享目錄/data所以不用在此創建了;
我們需要在共享之前修改Samba的主配置文件:
~]# vim /etc/samba/smb.conf
workgroup = MYGROUP 建議將這一行修改為 workgroup =WORKGROUP

passdb backend = tdbsam 修改:passdb backend = tdbsam:/etc/samba/test.db
然後拉到文檔最後添加內容:
[data] //共享文件名
comment = shared file //一個說明寫不寫無所謂
path = /data //共享文件目錄的路徑必須寫
valid users = li //能夠訪問的用戶
writable = yes //規定共享用戶擁有寫權限
public = no //不允許匿名訪問,必須通過身份認證後才能訪問
browsable = yes //在瀏覽頁面能夠看到
create mask = 0644 //規定了寫權限後,規定的上傳權限
編輯完之後保存退出即可;
想要查看編輯後的文件是否出現錯誤可以用下面命令實現:
~]# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[testfile]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
這樣證明沒有語法錯誤;
建出我們在配置文件中所寫到的用戶:
~]# useradd li
正在創建信箱文件: 文件已存在
~]# pdbedit -a li
new password:
retype new password:
Unix username: li
NT username:
Account Flags: [U ]
User SID: S-1-5-21-1182130408-243049493-2191779520-1000
Primary Group SID: S-1-5-21-1182130408-243049493-2191779520-513
Full Name:
Home Directory: \localhost\li
HomeDir Drive:
Logon Script:
Profile Path: \localhost\li\profile
Domain: LOCALHOST
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: 三, 06 2月 2036 23:06:39 CST
Kickoff time: 三, 06 2月 2036 23:06:39 CST
Password last set: 日, 06 5月 2018 23:56:13 CST
Password can change: 日, 06 5月 2018 23:56:13 CST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
因為我們之前的文件為.db格式的所以要用pdbedit創建出來
這是我們在查看/etc/samba文件發現多了一個之前我們在Samba文件中寫入的文件
~]# ls /etc/samba
lmhosts smb.conf smbusers test.db
想要查看這個文件中的內容要使用pdbedit -L命令而不是cat不然看到的都是亂碼;
這些完成後,我們就可以啟動服務了:
~]# service smb restart
關閉 SMB 服務: [失敗]
啟動 SMB 服務: [確定]
使用命令: ~]# ss -tnl //可以看到445號端口和139號端口開啟,這樣就可以正常完成smb的通信了
~]# smbclient -L 172.16.72.11 -U li //使用li這個用戶查看服務器smb的貢獻目錄列表,鍵入的密碼為之前設置的li的密碼
Enter SAMBA\li‘s password:

Sharename       Type      Comment
---------       ----      -------
testfile        Disk      shared file
IPC$            IPC       IPC Service (Samba Server Version 3.6.23-46el6_9)
li              Disk      Home Directories

Reconnecting with SMB1 for workgroup listing.

Server               Comment
---------            -------

Workgroup            Master
---------            -------

雖然之前我們規定了寫權限但是在文件/data可以看到:
~]# ll /data
總用量 4
-rw-r--r--. 1 root root 13 5月 6 22:42 test
-rw-r--r--. 1 root root 0 5月 6 23:36 testfile
我們可以為其賦予一個權限:
~]# chmod 1777 /data
這是我們可以在可會集中創建一個文件:
~]# vim /etc/test1
測試
保存退出
然後:
~]# smbclient -U li //172.16.72.11/testfile
Enter SAMBA\li‘s password:
Try "help" to get a list of possible commands.
smb: \> put /etc/test1 test1
putting file /etc/test1 as \test1 (1.0 kb/s) (average 1.0 kb/s)
smb: \> ls
. D 0 Mon May 7 00:23:21 2018
.. DR 0 Sun May 6 22:13:06 2018
test1 N 7 Mon May 7 00:23:21 2018
test N 13 Sun May 6 22:42:31 2018
testfile N 0 Sun May 6 23:36:46 2018

    51475068 blocks of size 1024. 36338320 blocks available
這樣就完成了將本地文件上傳到服務器操作;

然後切換到服務器主機:
~]# cat /data/test1
測試
證明上傳成功;
也可以通過像NFS一樣通過掛載實現共享
~]# mkdir /mnt/cifs
~]# mount -t cifs -o username=li //172.16.72.11/data /mnt/cifs/
Password for li@//172.16.72.11/data: **
**~]# df
df: "/run/user/0/gvfs": 沒有那個文件或目錄
文件系統 1K-塊 已用 可用 已用% 掛載點
/dev/sda1 40498872 3942252 36556620 10% /
devtmpfs 924900 0 924900 0% /dev
tmpfs 935256 84 935172 1% /dev/shm
tmpfs 935256 25496 909760 3% /run
tmpfs 935256 0 935256 0% /sys/fs/cgroup
tmpfs 187052 4 187048 1% /run/user/0
//172.16.72.11/data 51475068 12515276 36338352 26% /mnt/cifs
~]# cat /mnt/cifs/testfile
測試
共享成功成功

讓samba客戶端和NFS客戶端分別掛載samba服務器上共享的/data/至本地的/mydata目錄;本地的mysqld或mariadb服務的數據目錄設置為/mydata,要求服務能正常啟動,且可正常存儲數據:
在剛剛的Samba客戶端上創建本地目錄/mydata,然後完成掛載:
~]# mkdir /mydata
~]# mount -t cifs -o username=li //172.16.72.11/data /mydata
Password for li@//172.16.72.11/data: **

在剛剛的NFS客戶端上創建本地目錄/mydata,然後完成掛載:
~]# mkdir /mydata
~]# mount -t nfs 172.16.72.11:data /mydata

修改Samba客戶端的MariaDB的主配置文件:
~]# vim /etc/my.cnf

datadir=/var/lib/mysql 修改為datadir=/mydata

修改NFS客戶端的MariaDB的主配置文件:
~]# vim /etc/my.cnf

datadir=/var/lib/mysql 修改為datadir=/mydata

完成之後在共享服務器中完成以下操作:
~]# cp -a /var/lib/mysql /data/mysql
~]# chmod -R 1777 /data
~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

MariaDB [(none)]> create database mydb character set = utf8;
Query OK, 1 row affected (0.00 sec)
能夠成功創建出表,表示成功;

(1) 使用samba和NFS分別共享/data/application/web,部署LAMP,並在上述目錄中提供wordpress應用;
(2) 使用samba客戶端和NFS客戶端分別掛載samba server和NFS server共享的目錄至/var/www/html;
(3) 分別通過兩臺服務器驗正wordpress是否可被訪問、能否正常發文章和上傳圖片;

首先在服務器中使用samba和NFS共享/data/application/web,個上面操作是一樣的只是將文件名進行修改即可;
服務器中的操作:
~]# vim /etc/exports
/data/application/web (rw) //為了能夠讓NFS客戶端上傳文章和圖片要賦予其寫權限

~]# vim /etc/samba/smb.conf
[web]
comment = shared file
path = /data/application/
valid users = li
writable = yes
public = no
browsable = yes
create mode = 0644
directory mode = 0755
~]# chmod 777 /data/application/web //為了能夠讓Samba客戶端上傳文章和圖片要賦予其相應權限

t ~]# vim /etc/samba/smb.conf
~]# service nfs restart
關閉 NFS 守護進程: [確定]
關閉 NFS mountd: [確定]
關閉 NFS quotas: [確定]
關閉 NFS 服務: [確定]
Shutting down RPC idmapd: [確定]
啟動 NFS 服務: [確定]
關掉 NFS 配額: [確定]
啟動 NFS mountd: [確定]
啟動 NFS 守護進程: [確定]
正在啟動 RPC idmapd: [確定]
[root@localhost ~]# service smb restart
關閉 SMB 服務: [確定]
啟動 SMB 服務: [確定]

~]# mount -t nfs 172.16.72.11:/data/application/web /var/www/html
~]# mount -t cifs -o username=li //172.16.72.11/data/application /var/www/html
Password for li@//172.16.72.11/data/application: **

將wordpress文件從電腦主機中發送到虛擬機服務器主機/data/application/web下面,這是我們需要用到的工具是xftp工具以及軟件包wordpress-4.2-zh_CN.tar.gz解壓縮後裏面的wordpress文件

完成操作之後,在samba客戶端和NFS客戶端中進行如下操作:

~]# setenforce 0
~]# systemctl disable firewalld.service
~]# systemctl stop firewalld.service
~]# iptables -F
~]# systemctl start httpd.service
~]# systemctl status httpd.service
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since 四 2018-05-17 21:59:02 CST; 29min ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 22428 (httpd)
Status: "Total requests: 2; Current requests/sec: 0; Current traffic: 0 B/sec"
CGroup: /system.slice/httpd.service
├─22428 /usr/sbin/httpd -DFOREGROUND
├─22430 /usr/sbin/httpd -DFOREGROUND
├─22431 /usr/sbin/httpd -DFOREGROUND
├─22432 /usr/sbin/httpd -DFOREGROUND
├─22433 /usr/sbin/httpd -DFOREGROUND
├─22434 /usr/sbin/httpd -DFOREGROUND
├─22436 /usr/sbin/httpd -DFOREGROUND
└─22451 /usr/sbin/httpd -DFOREGROUND

5月 17 21:59:02 localhost.localdomain systemd[1]: Starting The Apache HTT...
5月 17 21:59:02 localhost.localdomain httpd[22428]: AH00558: httpd: Could...
5月 17 21:59:02 localhost.localdomain systemd[1]: Started The Apache HTTP...
Hint: Some lines were ellipsized, use -l to show in full.

然後在自己電腦主機上分別訪問172.16.72.1/wordpress和172.16.72.10/wordpress技術分享圖片
出現這個證明服務器能夠被訪問;

接下來我們就在服務器中建立起數據庫:
~]# mysql -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 62
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
mysql> create database word charset = utf8; //建立數據庫
Query OK, 1 row affected (0.00 sec)

mysql> grant all on word.* to ‘root‘@‘%‘ identified by ‘123456‘; //授權並設置密碼
Query OK, 0 rows affected (0.00 sec)

mysql> \q //退出
Bye

在服務器中修改wordpress的配置文件:
~]# cd /data/application/web/wordpress/
wordpress]# vim wp-config-sample.php //修改下面的部分即可
技術分享圖片
然後通過NFS客戶端主機地址訪問172.16.72.1/wordpress,進入界面輸入以下內容:
技術分享圖片
提交;技術分享圖片
出現上面的情況後,我們進入到服務器例進行如下操作:
wordpress]# vim wp-config.php
復制圖片中提示內容,保存退出,然後點擊網站上的進行安裝,出現下面這個界面:
技術分享圖片
自己進行配置:技術分享圖片
點擊安裝wordpress出現下面這個頁面:技術分享圖片
點擊登錄,下面使用你剛剛建好的用戶:技術分享圖片
進入下面這個頁面:
技術分享圖片
點擊撰寫一篇文章,然後發布,發布成功,證明共享成功。

Linux中Samba與NFS的共享示例