搭建FTP/NFS服務(vsftpd基於虛擬用戶的訪問形式)
題目:搭建一套文件vsftp文件共享服務,共享目錄為/ftproot,要求:(描述完整的過程)
1)基於虛擬用戶的訪問形式;
2)匿名不允許上傳;
3)禁錮所有的用戶於其家目錄當中;
4)限制最大並發連接數為200;
5)匿名用戶的最大傳輸速率512KB/s;
6)虛擬用戶的賬號存儲在mysql數據庫當中。
7)數據庫通過NFS進行共享。
搭建環境:
FTP/NFS服務器:192.168.10.99 (CentOS 7)
搭建FTP/NFS詳細過程:
1、配置vsftpd基於pam_mysql的虛擬用戶的訪問形式,虛擬用戶的賬號存儲在mysql數據庫當中。其中已創建的虛擬用戶有tom和jerry,密碼分別為123和321
這一步驟詳細過程參考博客《vsftpd基於pam_mysql的虛擬用戶機制》。
2、編輯vsftpd配置文件/etc/vsftpd/vsftpd.conf
[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf # 設置匿名用戶不允許上傳 anonymous_enable=YES anon_upload_enable=NO # 禁錮所有的用戶於其家目錄當中 chroot_local_user=YES # 限制最大並發連接數為200 max_clients=200 # 設置匿名用戶的最大傳輸速率512KB/s anon_max_rate=512000
3、重啟vsftpd服務
[[email protected] ~]# systemctl restart vsftpd.service [[email protected]
4、數據庫通過NFS進行共享
#由mysql主配置文件/etc/my.cnf可知,mysql數據庫目錄為/var/lib/mysql,通過NFS進行共享
[[email protected] ~]# vim /etc/exports /var/lib/mysql 192.168.0.0/16(rw,no_root_squash)
此處之所以需要添加no_root_squash這個選項,是因為mysql服務在第一次啟動時需要以管理員root身份進行初始化,因此在第一次啟動之後就可以去掉no_root_squash選項了。
#啟動NFS服務
[[email protected] ~]# systemctl start nfs.service
#確保NFS客戶端和NFS服務端的mysql用戶的UID一致
#客戶端查看NFS共享
[[email protected] ~]# showmount -e 192.168.10.99 Export list for 192.168.10.99: /var/lib/mysql 192.168.0.0/16
#客戶端掛載NFS共享文件系統
[[email protected] ~]# mkdir -p /mydata/data [[email protected] ~]# chown -R mysql.mysql /mydata/data # 修改權限使mysql有rwx權限 [[email protected] ~]# mount -t nfs 192.168.10.99:/var/lib/mysql /mydata/data
#客戶端下載mariadb-server,編輯配置文件/etc/my.cnf,修改如下配置項
[[email protected] ~]# yum -y install mariadb-server [[email protected] ~]# vim /etc/my.cnf [mysqld] datadir=/mydata/data socket=/mydata/data/mysql.sock
#啟動mysql服務
[[email protected] ~]# systemctl start mariadb
需要註意的是,mysql命令行客戶端工具默認的socket路徑是/var/lib/mysql/mysql.sock,所以在使用mysql時會出現如下問題:
[[email protected] ~]# mysql ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2)
解決方法如下。
方法一:使用-S選項指明socket文件路徑
[[email protected] ~]# mysql -S /mydata/data/mysql.sock
方法二:創建鏈接socket文件
[[email protected] ~]# ln -s /mydata/data/mysql.sock /var/lib/mysql/mysql.sock # 之後就可以直接使用mysql了
另外需要註意的是,當有多個主機的數據庫通過NFS共享數據時,只能啟動其中的一個數據庫服務,其它的主機上的數據庫服務必須關閉。
經過測試,在任何一臺主機上的數據庫中創建的數據都能夠同步。
本文出自 “Tab” 博客,請務必保留此出處http://xuweitao.blog.51cto.com/11761672/1934223
搭建FTP/NFS服務(vsftpd基於虛擬用戶的訪問形式)