File Transfer Protocol 早期的三個應用級協議之一 mysql
[root@centos7 ~]# tar xvf pam_mysql-0.7RC1.tar.gz [root@centos7 ~]# yum -y groupinstall "Development tools"#依賴工具包 [root@centos7 ~]# yum -y install mariadb-devel pam-devel openssl-devel#依賴 [root@centos7 pam_mysql-0.7RC1]# ./configure --with-mysql=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/securit [root@centos7 pam_mysql-0.7RC1]# make && make install
[root@centos7 ~]# yum -y install vsftpd
[root@centostest7 ~]# yum -y install mariadb#詳情看我前面的博客,有詳細介紹
[root@centos7test ~]# mysql MariaDB [(none)]> create database ftpdb; MariaDB [(none)]> grant all on ftpdb.* to ftpuser@'%' identified by 'centos';
[root@centos7test ~]# mysql -uftpuser -h 172.18.252.106 -pcentos MariaDB [(none)]> use ftpdb; MariaDB [ftpdb]> create table ftpvusers ( -> id int unsigned auto_increment primary key, -> username char(30), -> password char(48)); MariaDB [ftpdb]> insert into ftpvusers (username,password) values ('lishuyang',password('centos')),('wangyapeng',password('centos'));
[root@centos7 ~]# yum -y install vsftpd [root@centos7 ~]# vim /etc/pam.d/vsftpd.mysql auth required pam_mysql.so user=ftpuser passwd=centos host=172.18.252.106 db=ftpdb table=ftpusers usercolumn=username passwdcolumn=password crypt=2 account required pam_mysql.so user=ftpuser passwd=centos host=172.18.252.106 db=ftpdb table=ftpusers usercolumn=username passwdcolumn=password crypt=2
配置字段說明
• auth 表示認證
• account 驗證帳號密碼正常使用
• required 表示認證要經過
• pam_mysql.so模塊是默認的相對路徑,是相對/lib64/security/路徑而言,也能夠寫絕對路徑;後面爲給此模塊傳遞的參數
• user=vsftpd爲登陸mysql的用戶
• passwd=magedu 登陸mysql的的密碼
• host=mysqlserver mysql服務器的主機名或ip地址
• db=vsftpd 指定鏈接msyql的數據庫名稱
• table=users 指定鏈接數據庫中的表名
• usercolumn=name 當作用戶名的字段
• passwdcolumn=password 當作用戶名字段的密碼
• crypt=2 密碼的加密方式爲mysql password()函數加密linux
[root@centos7 ~]# vim /etc/vsftpd/vsftpd.conf anonymous_enable=YES local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=NO listen_ipv6=YES userlist_enable=YES tcp_wrappers=YES guest_enable=YES pam_service_name=vsftpd.mysql #使其原系統用戶沒法登錄 guest_username=ftpvuser user_config_dir=/etc/vsftpd/configdir
配置字段說明及經常使用的配置彙總
• 在centos7當中ftp用戶的根目錄不能有w權限
• listen_port (Default: 21) FTP命令通道的監
• connect_from_port_20 (Default: YES) 是否容許主動傳輸
• ftp_data_port (Default: 20) 主動模式使用的端口
• pasv_min_port=9527 (Default: 0) 被動模式,服務端開啓的隨機端口的最小值
• pasv_max_port=9529 (Default: 0) 被動模式,服務端開啓的隨機端口的最大值
• anonymous_enable=YES (Default: YES) 是否開啓匿名用戶
• local_enable=NO (Default: NO) 是否開啓Linux本地用戶登陸
• local_root=(Default: (none)) 非匿名用戶登陸時所在的目錄,默認是各自的家目錄
• write_enable=NO (Default: NO) 是否容許Linux本地用戶上傳文件
• local_umask=022 (Default: 077) 本地用戶上傳文件的默認權限
• anon_upload_enable=YES (Default: NO) 是否容許匿名用戶上傳,如啓動,還需讓ftp用戶對/var/ftp/pub及其餘須要上傳的目錄設置wx權限
• anon_mkdir_write_enable=YES (Default: NO) 是否容許匿名用戶建立目錄,如啓動,還需讓ftp用戶對/var/ftp/pub及其餘須要上傳的目錄設置wx權限
• no_anon_password=YES (Default: NO) 使用ftp客戶端登陸匿名時,是否密碼,如爲NO,即默認,則須要輸入任意密碼,如爲YES,直接登陸,不用輸入。
• anon_world_readable_only (Default: YES) 匿名用戶下載文件時,文件必定要other上也有r權限。
• anon_other_write_enable=YES (Default: NO) 匿名用戶是否能夠刪除及重命名
• anon_umask (Default: 077) 匿名用戶上傳時的默認權限。
• chown_uploads=YES (Default: NO) 匿名用戶上傳文件的所屬人是否要更改。如YES,則更改成chown_username所指定的
• chown_username (Default: root)
• chown_upload_mode=0755 (Default: 0600)在chown_uploads生效的前提下,設置匿名用戶的上傳權限,一旦設置anon_umask失效。且權限必定要權限4位
• guest_enuable (Defalt: NO) 全部的非匿名用戶都映射爲了guest用戶
• guest_username (Default: ftp) guest用戶是誰,默認ftp
• chroot_local_user=YES 將linux系統用戶的根目錄設置爲家目錄,注意在Centos7中該目錄對用戶不能有w權限,當爲YES時,全部人都不能越獄,當爲NO時,全部人都能越獄。
• chroot_list_enable=YES 越獄例外,下一行必定要有。當上一行爲YES是,爲白名單,當爲NO時,爲黑名單
• chroot_list_file=/etc/vsftpd/chroot_list
• xferlog_enable=YES (Default: no) 是否開啓上傳、下載日誌
• xferlog_std_format (Default: no) 是否使用wuftp格式
• xferlog_file (Default: /var/log/xferlog) xferlog的存放路徑
• dual_log_enable (Default: NO) 是否同時開啓vsftpd格式的日誌,該格式記錄信息更多,不僅upload/downloads
• vsftpd_log_file (Default: /var/log/vsftpd.log) vsftpd格式日誌的存放路徑
• ftpd_banner (Default: none) 登陸時的歡迎信息。不是全部客戶端均可見
• banner_file Default: (none) 登陸時的歡迎信息。不是全部客戶端均可見,當該行存在時,則優先於ftpd_banner
• dirmessage_enable (Default: NO) 每進入一個目錄時,若是該目錄下有.message文件,則將其內容展示出來,不是全部客戶端均可見
• message_file (Default: .message)
• userlist_enable=YES (Default: NO) 是否啓用用戶過濾功能。如YES,則開啓,過濾文件由userlist_file決定
• userlist_file (Default: /etc/vsftpd/user_list) 過濾文件路徑
• userlist_deny (Default: YES) 當該值爲YES時userlist爲黑名單,反之爲白名單
/etc/vsftpd/ftpuser 固定是黑名單,寫入其中的用戶必定不能登陸ftp
• max_clients (Default: 2000) 容許同時登陸的客戶端請求數
• nopriv_user (Default: nobody) 客戶端創建命令通道時,服務端與之鏈接的進程的所屬用戶
• anon_max_rate (Default: 0) 匿名用戶上傳和下載的最大速度,單位字節。
• local_max_rate (Default: 0) Linux本地用戶上傳和下載的最大速度,單位字節。
• connect_timeout (Default: 60) 主動模式數據鏈接超時時長
• accept_timeout (Default: 60) 被動模式數據鏈接超時時長
• data_connection_timeout (Default: 300) 數據鏈接無數據傳輸時的超時時長
• idle_session_timeout (Default: 300) 無命令操做超時時長
• ascii_upload_enable=NO ASCII模式上傳
• ascii_download_enable=NO ASCII模式下載sql
重啓服務而且測試數據庫
[root@centos7 ~]# systemctl restart vsftpd [root@centos7test ~]# systemctl restart mariadb.service [root@centos7 ~]# lftp 172.18.252.106 lftp 172.18.252.106:~> user wangyapeng Password: lftp wangyapeng@172.18.252.106:~> #成功登錄到ftp服務器
NFS 就是 Network FileSystem 的縮寫,最先以前是由sun 這家公司所發展出來的。 它最大的功能就是能夠透過網絡,讓不一樣的機器、不一樣的操做系統、能夠彼此分享個別的檔案 (share files)。因此,你也能夠簡單的將他看作是一個文件服務器,這個 NFS 服務器可讓你的 PC 來將網絡遠程的 NFS 服務器分享的目錄,掛載到本地端的機器當中, 在本地端的機器看起來,那個遠程主機的目錄就好像是本身的一個磁盤分區槽同樣,使用上面至關的便利。vim
###rpcinfo [root@centos7 ~]# rpcinfo -p 172.18.252.106 # 查看RPC註冊程序 [root@centos7 ~]# rpcinfo -s 172.18.252.106 ###exportfs [root@centos7 ~]# exportfs -v #查看本機全部NFS共享 [root@centos7 ~]# exportfs -r #重讀配置文件,並共享目錄 [root@centos7 ~]# exportfs -a #輸出本機全部共享 [root@centos7 ~]# exportfs -au #中止本機全部共享 ###展現遠程的共享的目錄 [root@centos7 ~]# showmount -e 172.18.252.106
咱們有時候須要使用遠程的共享目錄,咱們能夠手動掛載遠程目錄,那麼須要好多臺主機上的目錄的話咱們是否是也須要一個一個手動掛載?不知道你們有沒有注意到咱們光盤目錄,當咱們用的時候它會自動掛載,不用的他不掛載,如今我來以一個實驗模擬自動掛載目錄centos
安裝nfsbash
[root@centos7 ~]# yum -y install nfs-utils [root@centos7 ~]# vim /etc/exports.d/mage.exports #編輯配置文件 /app/homedir *(rw,sync) # 要共享的目錄 [root@centos7 ~]# exportfs -r #從新讀取文件 [root@centos7 ~]# systemctl restart nfs #從新啓動服務
配置文件說明
• 默認選項:(ro,sync,root_squash,no_all_squash)
• ro,rw 只讀和讀寫
• async 異步,數據變化後不當即寫磁盤,性能高
• sync(1.0.0後爲默認)同步,數據在請求時當即寫入共享 • no_all_squash (默認)保留共享文件的UID和GID
• all_squash 全部遠程用戶(包括root)都變成nfsnobody
• root_squash (默認)遠程root映射爲nfsnobody,UID爲65534,早期版本 是4294967294 (nfsnobody)
• no_root_squash 遠程root映射成root用戶
• anonuid和anongid 指明匿名用戶映射爲特定用戶UID和組GID,而非 nfsnobody,可配合all_squash使用服務器
[root@centos7 ~]# yum -y install autofs
[root@centos7 ~]# vim /etc/auto.master /app/homedir /etc/auto.mage #掛載目錄的目錄名 [root@centos7test ~]# vim /etc/auto.mage * -fstype=nfs 172.18.252.106:/app/homedir/& #基名與遠程目錄匹配,後向引用
[root@centos7 ~]# service autofs restart
[root@centos7 ~]# su - mage [mage@centos7 ~]#ls -a . .. .bash_logout .bash_profile .bashrc .mozilla [mage@centos7 ~]$ df 172.18.252.106:/app/homedir 186532 8 186524 1% /app/homedir
至此用戶家目錄切換成功,且自動掛載,一段時間後會自動取消掛載網絡
SMB:Server Message Block服務器消息塊,IBM發佈,最先是DOS網絡文 件共享協議
SAMBA的功能:
• 共享文件和打印,實如今線編輯
• 實現登陸SAMBA用戶的身份認證
• 能夠進行NetBIOS名稱解析
• 外圍設備共享 session
在服務器上建立用戶
[root@centos7 ~]# useradd -s /sbin/nologin xiaofan [root@centos7 ~]# useradd -s /sbin/nologin xiaochen
而且設置登錄samba服務的密碼
[root@centos7 ~]# smbpasswd -a xiaofan #設置登錄密碼 [root@centos7 ~]# smbpasswd -a xiaochen
[root@centos7 ~]# mkdir /app/smbshared [root@centos7 ~]# chcon -t samba_share_t /app/smbshared #不用關閉selinux直接給目錄設置指望值 [root@centos7 ~]# setfacl -m u:xiaofan:rwx /app/smbshared #給用戶設置讀寫權限 [root@centos7 ~]# setfacl -m u:xiaochen /app/smbshared
[root@centos7 ~]# vim /etc/samba/smb.conf [gongxiang] comment = Gongxiang path = /app/smbshare #設置的訪問目錄 browseable = yes #能夠瀏覽 writeable = no #可寫 write list = xiaofan,xiaochen #能夠寫的用戶 public = yes #是否可見 allow list = 172.18. 192.168. #表示能夠訪問的網段
[root@centos7 ~]# systemctl restart smb
[root@centos7 ~]# yum -y install cifs-utils
[root@centos7 ~]# vim /etc/fstab //172.18.254.96/gongxiang /mnt/ cifs credentials=/etc/multiuser,multiuser,sec=ntlmssp 0 0
[root@centos7 ~]# vim /etc/multiuser username=xuxian password=centos
[root@centos7 ~]# mount -a [root@centos7 ~]# df 172.18.252.106:/gongxiang 3667968 33024 3634944 1% /mnt/# [root@centos7 ~]# smbclient -L //172.18.252.106 -U xuxian
[root@centos7 ~]# useradd xiaofan [root@centos7 ~]# useradd xiaochen [root@centos7 ~]# su - xiaofan #切換用戶 [root@centos7 ~]# cifscreds add 172.18.252.106#隨便輸入服務端xiaofan.xiaochen的samba密碼
至此完成samba多用戶掛載
本實驗的場景:生活中一臺服務器提供帳號和目錄共享,而後其餘主機能夠實現這臺服務器的帳號共享及目錄的漫遊,使用對方目錄的時候自動掛載,不使用的時候自動取消掛載
[root@localhost ~]# yum -y install ypserv ypbind yp-tools
[root@localhost ~]# vim /etc/sysconfig/network # Created by anacondoa NISDOMAIN=cyn [root@localhost ~]# nisdomainname cyn
[root@centos7(nanyibo) ~]# vim /etc/ypserv.conf#最後添加內容 127.0.0.1:*:*:none 172.18.254.0/255.255.255.0:*:*:none #容許這個網段內的主機鏈接 *:*:*:deny #其餘網段拒絕
[root@localhost ~]# systemctl restart ypserv [root@localhost ~]# systemctl enable ypserv
[root@localhost ~]# mkdir /app/homedir#用戶的家目錄在這個目錄下 [root@localhost ~]# for n in {1..5};do useradd -d /app/homedir/nisuser$n nisuser$n;echo centos |passwd --stdin nisuser$n;done
[root@centos7test app]# /usr/lib64/yp/ypinit -m #先按CTRL+D,而後按Y。便可生成
[root@centos7test ~]# yum -y install nfs-utils [root@localhost ~]# vim /etc/exports.d/cynports /app/homedir *(rw,sync) [root@localhost ~]# systemctl restart nfs
[root@localhost ~]# yum -y install autofs [root@localhost ~]# vim /etc/auto.master /app/homedir /etc/auto.cyn timeout=10 [root@localhost ~]# vim /etc/auto.cyn * -fstype=nfs 172.18.254.234:/app/homedir/&
[root@localhost ~]# service autofs restart
[root@centos6 ~]# yum install -y ypbind [root@centos6 ~]# setup
這個時候會出現圖形化界面,選擇use nis ,空格肯定,選擇next,
填入你本身設置的域名和服務器IP,選擇ok,而後再會出現一個界面。選擇退出便可
[root@localhost ~]# mkdir -p /app/homedir [root@localhost ~]# su - nisuser1 [nisuser2@localhost ~]$ ls -a . .. .bash_logout .bash_profile .bashrc .mozilla [nisuser2@localhost ~]$ df 172.18.254.136:/app/homedir/nisuser1 52403200 4518272 47884928 5% /app/homedir/nisuser1
至此實驗完成,實現了服務器的用戶帳號共享及用戶家目錄的漫遊,對於所需目錄的自動掛載。