1)共享名為shared,工作組為magedu; 2)添加組develop,添加用戶geetoo,centos和Ubuntu,其中geetoo和centos以develop為附加組,ubuntu不屬于develop組;密碼均為用戶名; 3)添加samba用戶geetoo,centos和ubuntu,密碼均為“mageedu”; 4)此samba共享shared僅允許develop組具有寫權限,其他用戶只能以只讀方式訪問,共享對應的文件系統的路徑為/mydata/data 5)此samba共享服務僅允許來自于192.168.0.0/16網絡的主機訪問;
yum install -y samba
被依賴到的安裝包為: 已安裝: samba.x86_64 0:4.4.4-12.el7_3 作為依賴被安裝: libkadm5.x86_64 0:1.14.1-27.el7_3 作為依賴被升級: krb5-libs.x86_64 0:1.14.1-27.el7_3 krb5-workstation.x86_64 0:1.14.1-27.el7_3 libsmbclient.x86_64 0:4.4.4-12.el7_3 libtalloc.x86_64 0:2.1.6-1.el7 libwbclient.x86_64 0:4.4.4-12.el7_3 pytalloc.x86_64 0:2.1.6-1.el7 samba-client.x86_64 0:4.4.4-12.el7_3 samba-client-libs.x86_64 0:4.4.4-12.el7_3 samba-common.noarch 0:4.4.4-12.el7_3 samba-common-libs.x86_64 0:4.4.4-12.el7_3 samba-common-tools.x86_64 0:4.4.4-12.el7_3 samba-libs.x86_64 0:4.4.4-12.el7_3
切換到/etc/samba目錄,目錄中的文件有: -rw-r--r-- 1 root root 20 1月 18 03:07 lmhosts -rw-r--r-- 1 root root 667 1月 18 03:07 smb.conf 主配置文件 -rw-r--r-- 1 root root 11327 1月 18 03:07 smb.conf.example 主配置文件的模板
將smb.conf文件重命名為smb.conf.backup 并且將smb.conf.example拷貝一份,重命名為smb.conf啟動samba服務 systemctl start smb.service
systemctl start nmb.service
編輯smb.conf文件,由題設:共享名為shared,工作組為magedu 在 Global Settings 中修改workgroup = magedu
在 Share Definitions 中添加 [shared]
共享名稱添加組develop,添加用戶gentoo,centos和ubuntu,其中gentoo和centos以develop為附加組,ubuntu不屬于develop組;密碼均為用戶名 退出編輯器創建用戶 : useradd geetoo ; useradd centos; useradd ubantu
創建組:groupadd develop
將gentoo,centos和ubuntu設置samba密碼,成為samba用戶 smbpasswd -a geetoo
smbpasswd -a centos
smbpasswd -a ubantu
使用pdbedit查看samba用戶 pdbedit -L geetoo:1000: ubantu:1002: centos:1001:
將gentoo和centos以develop為附加組 usermod -aG develop centos
usermod -aG develop geetoo
添加samba用戶gentoo,centos和ubuntu,密碼均為“mageedu”,刪除已經設定的samba用戶并重新添加用戶 smbpasswd -x geetoo
smbpasswd -x centos
smbpasswd -x ubantu
pdbedit -L 查看, 結果無samba用戶smbpasswd -a geetoo
密碼為“mageedu”smbpasswd -a centos
密碼為“mageedu”smbpasswd -a ubantu
密碼為“mageedu”此samba共享shared僅允許develop組具有寫權限,其他用戶只能以只讀方式訪問,共享對應的文件系統的路徑為/mydata/data 創建目錄:mkdir -pv /mydata/data
修改目錄訪問權限:setfacl -m g:develop:rwx /mydata/data/
編輯主配置文件/etc/samba/smb.conf [shared] comment = data path = /mydata/data write list = @develop writable = no browseable = yes
檢查語法并查看主配置文件的信息 testparm
在客戶端檢驗用戶訪問情況(IP:192.168.10.214) 查看共享目錄: smbclient -L 192.168.10.213 -U centos
測試centos的讀寫:smbclient //192.168.10.213/shared -U centos
(可上傳下載)測試geetoo的讀寫:smbclient //192.168.10.213/shared -U geetoo
(可上傳下載)測試ubantu的讀寫:smbclient //192.168.10.213/shared -U ubantu
(只能下載)此samba共享服務僅允許來自于192.168.0.0/16網絡的主機訪問 在全局配置中添加 hosts allow = 192.168.
1)基于虛擬用戶的訪問形式; 2)匿名用戶只允許下載,不允許上傳; 3)禁錮所有的用戶于其家目錄當中; 4)限制最大并發連接數為200:; 5)匿名用戶的最大傳輸速率512KB/s 6)虛擬用戶的賬號存儲在MySQL數據庫當中。 7)數據庫通過NFS進行共享。
anonymous_enable=YES
注意:如果需要開啟寫權限,需要write_enable=YES
,并且對遠程的本地文件系統的目錄也要有寫權限才行#anon_upload_enable
禁錮所有的用戶于其家目錄當中 local_enable=YES
注意:如果是只禁錮個別用戶,開啟以下兩個注釋,但是這兩種禁錮功能不能同時使用 #chroot_list_enable=YES #chroot_list_file=/etc/vsftpd/chroot_list
同時本地用戶不能有服務端的家目錄的文件系統有寫權限chmod -w /home/centos/
限制最大并發連接數為200,匿名用戶的最大傳輸速率512KB/s max_clients=200 anon_max_rate=512000
基于虛擬用戶的訪問形式訪問ftp服務 yum install -y pam-devel openssl-devel mariadb-devel mariadb-server
下載pam-mysql源碼包pam_mysql-0.7RC1.tar解壓,cd pam_mysql-0.7RC1./configure --with-mysql=/usr --with-openssl=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security
登入mysql創建vsftpd數據庫,并在數據庫里面創建基于虛擬用戶的認證表,授權vsftpd用戶可以訪問數據庫 create database vsftpd;
use vsftpd;
create table users ( id int auto_increment not null primary key, name char(30) not null, passWord char(48) binary not null);
insert into users(name,password) values ('tom',password('mageedu'));
insert into users(name,password) values ('jerry',password('mageedu'));
grant select on vsftpd.* to vsftpd@'localhost' identified by 'mageedu';
grant select on vsftpd.* to vsftpd@'127.0.0.1' identified by 'mageedu';
flush privileges;
重新創建pam的用戶認證配置文件 vim /etc/pam.d/vsftpd.msyqlauth required pam_mysql.so user=vsftpd passwd=mageedu host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2 account required pam_mysql.so user=vsftpd passwd=mageedu host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
在本地先創建一個數據庫users表中的用戶所映射到的本地用戶,取名為vuser useradd -s /sbin/nologin -d /ftproot vuser
chmod go+rx /ftproot
(修改vuser的家目錄權限,使得來賓用戶可以訪問)編譯vsftpd的配置文件,設定重新定義的用戶認證的配置文件的路徑,并且指定本地訪問的vuser 添加:guest_enable=yes guest_username=vuser pam_service_name=vsftpd.mysql
并且設置vuser的家目錄,不能有寫權限,如果有寫權限會報錯:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
重啟vsftpd systemctl restart vsftpd.service
(3)在客戶端(IP:192.168.10.216)檢測虛擬用戶的設置 ftp 192.168.10.215
(檢測結果為:虛擬用戶是被禁錮的,只能在/ftproot目錄下,并且沒有寫權限,只有讀權限)(4)在服務端的vuser的家目錄/ftproot下,創建pub和upload目錄,設置upload目錄的屬主為vuser, 并且可寫。再將/etc/vsftpd/vsftpd.conf中設置匿名用戶可寫, 重啟vsftpd chown vuser /ftproot/upload/
(drwxr-xr-x 2 vuser root 6 2月 12 16:56 upload/)anon_upload_enable=YES
systemctl restart vsftpd
(5)在客戶端端測試 虛擬用戶在upload中可以上傳,在pub中不能上傳(6)如果想要不同的兩個虛擬用戶一個能上傳,一個不能上傳怎么辦? 解決辦法:由于所有的虛擬用戶都是映射到本地的vuser用戶,那么不能通過屬組權限的方式解決。由于在主配置文件中支持每一個虛擬用戶可以有自己的單獨的配置文件這樣的方式解決,在/etc/vsftpd/目錄下創建一個目錄,目錄中創建不同虛擬用戶的文件名,文件里面自定義anon_upload_enable=YES
,在主配置文件中注釋anon_upload_enable=YES
, 并且加上user_config_dir=/etc/vsftpd/目錄
(7)由題設數據庫通過NFS進行共享。 在服務端(IP:192.168.10.215)下載nfs-utils 編輯/etc/exports文件 :vi /etc/exports
添加:/var/lib/mysql 192.168.0.0/16(rw,root_squash)
導出共享目錄: exportfs -r
在客戶端查看共享目錄,并掛載 showmount -e 192.168.10.215
mount -t nfs 192.168.10.215:/var/lib/mysql /mydata/data/
新聞熱點
疑難解答