DAS、NAS、SAN
DAS:直接附加存儲,磁盤和服務器直接通過數據線或光纖連接(磁盤和服務器都在一台機器上),速度快
NAS:網絡附加存儲,服務器和存儲通過交換機連接,在存儲上事先准備好磁盤,分好區,格式化文件系統,掛載,然后通過協議,把分區掛載的目錄共享到網絡
SAN:存儲區域網絡,服務器和存儲離的特別遠,中間還需要交換機來相連,需要走一些協議(iscsi協議),一一旦連接成功,就會在服務器上出現一個新的硬盤,而服務器就感覺這個硬盤就像在本機一樣,但是這個存儲空間是在遠程,然后服務器就可以對這個硬盤創建分區,格式化文件系統,掛載,就可以存儲數據了
ftp
文件傳輸協議(FTP)(一定要確保防火牆和selinux是關閉的)
File Transfer Protocol 早期的三個應用級協議之一
命令(控制):客戶端:隨機port ---服務器:tcp21
命令(控制):客戶端:隨機port ---服務器:tcp21
數據:客戶端:隨機port+1 ---服務器:隨機port
服務器被動模式數據端口示例:(被動模式,服務器通過命令通道告訴客戶端自己打開的端口,不是直接告訴,而是發給客戶端兩個數字,讓客戶端通過運算來得出端口,例如:端口號為:m*256+n)
227 Entering Passive Mode (192,168,175,138,224,59)
客戶端連接ftp服務器,走命令通道,ftp服務器打開了21端口,客戶端打開的隨機端口
下載文件數據,走數據通道,ftp有兩種模式,ftp服務器主動模式打開了20端口,被動模式打開了隨機端口,而客戶端打開了隨機端口,這里是針對ftp服務器,主動模式是ftp服務器連接客戶端,被動模式是客戶端連接服務器
傳輸數據時,如果要是主動模式,就是服務器連接客戶端,但是是主動模式,服務器不知道ftp客戶端打開的端口,就無法連接,這時客戶端就會走命令通道告訴ftp服務器,自己打開的端口,接着服務器就知道了客戶端打開的端口就可以通過主動模式連接客戶端,傳輸數據了
傳輸數據時走被動模式,就是客戶端連接ftp服務器,被動模式,服務器打開了隨機端口,客戶端並不知道,就無法連接,這時ftp服務器就會通過命令通道告訴客戶端自己打開的端口,接着客戶端就知道了服務器打開的端口,就可以通過被動模式連接ftp服務器,傳輸數據了
但是客戶端和服務器都有防火牆,只允許自己出,自己進,不允許別人進,這時上面傳輸數據的方式就失效了。對於ftp服務器的搭建的防火牆是硬件防火牆,有連接跟蹤功能,可以分析命令通道21端口的數據包。假如客戶端通過命令通道21端口,連接到了ftp服務器,如果想要走主動模式,服務器去連接客戶端,客戶端有防火牆,這時不行的,只能走被動模式,客戶端通過命令通道已經知道了ftp服務器要打開的端口,就會連接這個端口,而ftp服務器的防火牆有連接跟蹤功能,已經知道了將來客戶端要連接這個端口,就會在防火牆上打開這個端口,從而實現被動模式,客戶端連接服務器,傳輸數據。
FTP軟件介紹
Wu-ftpd,Proftpd,Pureftpd,ServU,IIS
vsftpd:VerySecure FTP Daemon,CentOS默認FTP服務器
ftp,redhat.com數據:單機最多可支持15000個並發
ftp -A ftpserverport -A主動模式–p 被動模式
lftpgetftp://ftpserver/pub/file
gftp: GUI centos5 最新版2.0.19 (11/30/2008)
filezilla,CuteFtp,FlashFXP,LeapFtp
IE ftp://username:password@ftpserver
FTP服務
匿名用戶:ftp,anonymous,對應Linux用戶ftp,隨便輸密碼,都能登錄
系統用戶:Linux用戶,用戶/etc/passwd,密碼/etc/shadow
nsswitch:networkservice switch名稱解析框架
pam:pluggableauthentication module 用戶認證
/lib64/security /etc/pam.d/ /etc/pam.conf
vsftpd服務
服務腳本:/usr/lib/systemd/system/vsftpd.service
匿名用戶(映射為系統用戶ftp )共享文件位置:/var/ftp(用戶ftp的家目錄),不能切根
連接ftp服務器時,會議root的身份運行了vsftpd程序,連進去之后,還沒輸入賬戶密碼,就會開一個子進程,是以nobody的身份運行,當輸入賬戶密碼時,就會又開了一個子進程,該子進程是以ftp的身份運行
命令端口
主動模式端口
connect_from_port_20=YES 主動模式端口為20
ftp_data_port=20 指定主動模式的端口,可以認為指定主動模式端口
連接到ftp服務器默認傳輸文件是以被動模式傳輸的,想要以主動模式傳輸,敲passive,關閉被動模式就行了,再敲一遍passive就開啟了別動模式
del表示刪除上傳的文件,不過要在ftp配置文件中配置才允許
被動模式端口范圍
使用當地時間
use_localtime=YES 使用當地時間(默認為NO,使用GMT)
匿名用戶
注意:匿名登錄,ftp服務器根目錄/var/ftp是不能有寫權限的,否則匿名登錄失敗
anonymous_enable=YES 支持匿名用戶 改為no,不支持匿名用戶
no_anon_password=YES(默認NO) 匿名用戶略過口令檢查
anon_world_readable_only(默認YES)只能下載全部讀的文件,當我們匿名上傳一個文件f1時,這個文件的權限在其他人上是沒有讀權限的,其所屬人和所屬組都是ftp,而下載文件是以nobody的身份下載的,只有在其他人上有讀權限時才能下載上傳的f1文件
anon_upload_enable=YES 匿名上傳,注意:文件系統權限,匿名上傳文件是以ftp的身份上傳的,如果/var/ftp/pub這個目錄的其他人上沒有wx權限,就不能上傳文件,有兩種方式能夠上傳文件,一是修改/var/ftp/pub這個目錄其他人上的權限,二是對這個目錄設置acl權限setfacl -m u:ftp:rwx /var/ftp/pub/
anon_mkdir_write_enable=YES 可創建文件夾
anon_other_write_enable=YES 可刪除和修改上傳的文件
anon_umask=077 指定匿名上傳umask,默認是077,所以上傳的文件權限為600,之所以不能夠下載上傳的文件就是因為設置上傳umask為077,導致匿名上傳的文件其他人上沒有讀權限,當把上傳umask設置為033,這樣上傳的文件權限就為644,其他人上就有了讀權限,這樣就能下載上傳的文件了
指定上傳文件的默認的所有者和權限
chown_username=wang 設置上傳文件的所屬人為wang
chown_upload_mode=0644設置上傳文件的權限為644
Linux系統用戶
guest_enable=YES 所有系統用戶都映射成guest用戶
guest_username=ftp 配合上面選項才生效,指定guest用戶
local_enable=YES 是否允許linux用戶登錄
write_enable-YES 允許linux用戶上傳文件
local_umask=022 指定系統用戶上傳文件的默認權限
local_root=/ftproot非匿名用戶登錄所在目錄
禁錮所有系統用戶在家目錄中
chroot_local_user=YES(默認NO,不禁錮)禁錮系統用戶
禁錮或不禁錮特定的系統用戶在家目錄中,與上面設置功能相反
chroot_list_file=/etc/vsftpd/chroot_list
當chroot_local_user=YES時,則/etc/vsftpd/chroot_list中用戶不禁錮
當chroot_local_user=NO時,則/etc/vsftpd/chroot_list中用戶禁錮
wu-ftp日志:默認啟用
xferlog_enable=YES (默認)啟用記錄上傳下載日志
xferlog_std_format=YES (默認)使用wu-ftp日志格式
xferlog_file=/var/log/xferlog(默認)可自動生成
vsftpd日志:默認不啟用
dual_log_enable=YES 使用vsftpd日志格式,默認不啟用
vsftpd_log_file=/var/log/vsftpd.log(默認)可自動生成
登錄提示信息
ftpd_banner="welcometo mage ftp server"
banner_file=/etc/vsftpd/ftpbanner.txt 優先上面項生效
目錄訪問提示信息
message_file=.message(默認)信息存放在指定目錄下.message
你要訪問哪個目錄,就在哪個目錄下面建一個.message,里面寫着目錄訪問的提示信息,當你訪問這個目錄時,就會顯示.message里的提示信息
如圖,我訪問upload目錄時,就會提示紅色的upload dir信息
使用pam(Pluggable Authentication Modules)完成用戶認證
如果/etc/pam.d/vsftpd中是deny,/etc/vsftpd/ftpusers默認文件中用戶拒絕登錄
是否啟用控制用戶登錄的列表文件
userlist_deny=YES(默認值)黑名單,不提示口令,NO為白名單
userlist_file=/etc/vsftpd/users_list此為默認值
/etc/pam.d/ftpusers和/etc/vsftpd/users_list中的用戶是不能登陸ftp服務器的,只有同時滿足/etc/pam.d/vsftpd中是allow和userlist_deny=no,/etc/pam.d/ftpusers和/etc/vsftpd/users_list中的用戶才能登陸ftp服務器
連接限制
vsftpd服務指定用戶身份運行
傳輸速率:字節/秒
連接時間:秒為單位
connect_timeout=60 主動模式數據連接超時時長
accept_timeout=60 被動模式數據連接超時時長
data_connection_timeout=300 數據連接無數據輸超時時長
idle_session_timeout=60 無命令操作超時時長
優先以文本方式傳輸(默認是以二進制方式傳輸,文本方式傳輸會造成數據丟失)
配置ftp服務為非獨立服務
配置FTP服務以非獨立服務方運行:listen=NO,默認為獨立方式
yum install telnet-server 安裝telnet服務自動會給你安裝xinetd服務,因為telnet服務是依賴xinetd服務的
我先關了ftp服務,然后再開啟xinetd服務,依然打卡了21端口
是xinetd監聽21端口,一旦有人來訪問,就會自動激活ftp服務
實現基於SSL的FTPS
ldd `which vsftpd` 查看到libssl.so
(2)創建自簽名證書
force_local_logins_ssl=YES 本地用戶登錄加密
force_local_data_ssl=YES 本地用戶數據傳輸加密
rsa_cert_file=/etc/vsftpd/vsftpd.pem
cat -A /etc/vsftpd/vsftpd.conf可以檢查空格
實現基於文件驗證的vsftpd虛擬用戶
vim ftpusers.txt 在這個文件中創建虛擬賬號,格式是奇數行是賬號名,偶數行是口令,如圖:
(2)將存放賬號的文件編碼為hash格式,需要用db_load命令
db_load -T -t hash -f ftpusers.txt ftpusers.db 生成一個tpusers.db數據庫文件
chmod 600 ftpuser.db 為了安全,不讓其他人查看該文件,原來存放賬號的文件就可以刪掉了
(3)創建一個系統賬號,所有虛擬賬號會統一映射為一個指定的系統帳號,訪問共享位置,即為此系統帳號的家目錄
useradd -r -d -m /app/ftpuser -s /sbin/nologin ftpuser
chown ftpuser /app/ftpuser/upload
(4)創建pam配置文件,讓ftp通過數據庫文件來驗證身份,需要用到pam模塊
(5)將虛擬賬號映射為系統賬號,指定pam配置文件,修改ftp配置文件
mdkir /etc/vsftpd/ftpusers.d/ 創建配置文件存放的路徑
user_config_dir=/etc/vsftpd/ftpusers.d/
cd /etc/vsftpd/ftpusers.d/ 進入此目錄
現在想允許ftp1能夠上傳文件和創建目錄和刪除修改上傳的文件,ftp2登陸的目錄為/app/ftpuser1,
chown ftpuser /app/ftpuser1/f1
chown ftpuser /app/ftpuser2/f2
實驗:實現基於MYSQL驗證的vsftpd虛擬用戶
環境:兩台主機,一台A(IP地址為192.168.10.135):mariadb server 一台B(IP地址為192.168.10.186):ftp server
create table ftpusers(name char(30),pass char(50));
insert ftpusers values('ftp1',password('centos')),('ftp2',password('magedu'));
grant select on vsftpd.ftpusers to 'ftp'@'192.168.10.186' identified by 'centos';
mysql -uftp -pcentos -h 192.168.10.135
yum groupinstall "development tools" -y
yum install mariadb-devel pam-devel -y
tar xvf pam_mysql-0.7RC1.tar.gz
./configure --with-pam-mods-dir=/lib64/security --with-pam=/usr
(3)准備兩個共享目錄/app/ftpdir和/app/ftpdir2,將來ftp1連接ftp服務器,登陸的是/app/ftpdir目錄,而ftp2連接ftp服務器,登陸的是/app/ftpdir2目錄
useradd -d /app/ftpdir -r -m ftpuser
auth required pam_mysql.so user=ftp passwd=centos host=192.168.10.135 db=vsftpd table=ftpusers usercolumn=name passwdcolumn=pass crypt=2
account required pam_mysql.so user=ftp passwd=centos host=192.168.10.135 db=vsftpd table=ftpusers usercolumn=name passwdcolumn=pass crypt=2
pam_service_name=vsftpd.mysql 修改
user_config_dir=/etc/vsftpd/conf.d/
anon_upload_enable=yes 將來ftp1登陸了可以上傳文件
local_root=/app/ftpdir2 將來ftp2登陸了,共享目錄是/app/ftpdir2
(5)測試,用另外一台機器來連接ftp服務器(192.168.10.186)
ftp://172.16.0.1/pub/Sources/6.x86_64/axel/axel-2.4-1.el6.rf.x86_64.rpm
ftp://172.16.0.1/pub/ISOs/CentOS-7-x86_64-Everything-1511.iso
axel -n 10 -o ftpfile ftp://192.168.10.135/f1 從ftp服務器上並行下載f1文件到本機的ftpfile中
NFS服務
NFS:Network File System 網絡文件系統,基於內核的文件系統。Sun公司開發,通過使用NFS,用戶和程序可以像訪問本地文件一樣訪問遠端系統上的文件,基於RPC(Remote Procedure Call Protocol遠程過程調用)實現
RPC采用C/S模式。客戶機請求程序調用進程發送一個有進程參數的調用信息到服務進程,然后等待應答信息。在服務器端,進程保持睡眠狀態直到調用信息到達為止。當一個調用信息到達,服務器獲得進程參數,計算結果,發送答復信息,然后等待下一個調用信息,最后,客戶端調用進程接收答復信息,獲得進程結果,然后調用執行繼續進行。
NFS優勢:節省本地存儲空間,將常用的數據如:home目錄,存放在一台NFS服務器上且可以通過網絡訪問,那么本地終端將可以減少自身存儲空間的使用
/dev/sda2是ext4文件系統,/app/nfsdir是在/dev/sda2上,通過nfs服務器共享出去,當通過nfs方式訪問/app/nfsdir時,可以將遠程的/app/nfsdir目錄掛載到本機的一個目錄下,然后就可以訪問/app/nfsdir的數據了,就像在本機一樣
NFS各個版本的對比
NFS服務介紹
端口:2049(nfsd), 其它端口由portmap(111)分配
配置文件:/etc/exports,/etc/exports.d/*.exports
CentOS7不支持同一目錄同時用nfs和samba共享,因為使用鎖機制不同
相關軟件包:rpcbind(必須),tcp_wrappers
每次啟動nfs服務,打開的端口都是變化的,這樣別人怎樣才可以連接你呢?每次開啟nfs服務,會把打開的端口號注冊到一個特殊的服務中,這個服務叫fpcbind,這個服務就起着監控nfs服務端口的作用,在centos6上,如果把這個服務停了,那么nfs服務起不來,在centos7上,把這個服務停了,nfs服務還會起來,這是因為開啟nfs服務,會自動激活rpcbind服務,而centos6就不會激活。
配置防火牆
•防火牆除開放上述端口,還需開放TCP和UDP的111和2049共4個端口
NFS配置文件
/dir主機1(opt1,opt2) 主機2(opt1,opt2)...
•wildcards:主機名通配,例如*.magedu.com,IP不可以
•netgroups:NIS域的主機組,@group_name
•默認選項:(ro,sync,root_squash,no_all_squash)
•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使用
NFS工具
rpcinfo
exportfs
showmount -e hostname
mount.nfs 掛載工具
NFSv4支持通過掛載NFS服務器的共享"根",從而瀏覽NFS服務器上的共享目錄列表
客戶端NFS掛載
基於安全考慮,建議使用nosuid,nodev,noexec掛載選項
rsize和wsize一次讀和寫數據最大字節數,rsize=32768
mount -o rw,nosuid,fg,hard,intr172.16.0.1:/testdir/mnt/nfs/
172.16.0.1:/public mnt/nfs nfs defaults 0 0
自動掛載
系統管理器指定由/etc/auto.master自動掛載器守護進程控制的掛載點
為所有導出到網絡中的NFS啟用特殊匹配-host 至"browse"
間接匹配
假如說將共享目錄/app/test掛載到/app/nfsdir上,那么dirname就是/app,basename就是nfsdir
basename -fstype=nfs 192.168.10.187:/app/test
* -fstype=nfs 192.168.10.187:/app/&
假如說將共享目錄掛到本地的/home目錄下,會影響家目錄的結構,導致其他用戶登錄沒有了家目錄
直接匹配
假如說將共享目錄/app/test掛載到/app/nfsdir上
/app/nfsdir 192.168.10.187:/app/nfsdir
實現nfs服務共享
(1)編輯nfs服務的配置文件,設置共享哪個目錄和誰可以訪問共享目錄
/app/nfsdir1 * (ro)共享/app/nfsdir1目錄,允許所有人訪問,共享目錄只讀
/app/nfsdir2 * (rw)共享/app/nfsdir2目錄,允許所有人訪問,共享目錄可讀可寫
mount 192.168.10.200:/app/nfsdir1 /mnt/nfs1
mount 192.168.10.200:/app/nfsdir2 /mnt/nfs2
(4)在前面我們設置了共享目錄/app/nfsdir1是只讀的,而共享目錄/app/nfsdir2是可讀可寫的,所能在掛載到/app/nfsdir2上的目錄里創建文件,掛載到/app/nfsdir1上的目錄里不能創建,下面來測試:
cd /mnt/nfs2 然后創建文件,也不能創建文件,但是報錯提示是權限拒絕,所以是共享目錄沒有創建文件的權限
我們再來修改一nfs服務器的共享目錄/app/nfsdir2的權限,chmod 777 /app/nfsdir2,再來創建文件,成功
由上圖知道,創建文件是以nfsnobody的身份來創建的,所以不需要對/app/nfsdir2設置滿權限,只需要對/app/nfsdir2設置acl權限,只讓nfsnobody用戶有創建文件的權限,就可以來創建文件了
setfacl -m u:nfsnobody:rwx /app/nfsdir2
由上面實驗知道客戶端root到共享目錄里創建文件,不是以原來的身份創建文件,而是被壓榨成nfsnobody身份來創建權限
改成root不壓榨,就要修改nfs服務的配置文件,默認是壓榨的
如果既有root不壓榨,又有所有壓榨,此時root不壓榨將失效,在共享目錄里面創建的文件還是以nfsnobody的身份創建的
對於普通用戶是不壓榨身份的,例如,客戶端在nfs共享目錄創建一個文件,在nfs服務器是以和客戶端用戶的uid,gid相同的用戶顯示其所屬人,所屬組,如果nfs服務器沒有該用戶的話,就會顯示uid和gid。
實驗:實現NFS偽根
mount -b /data/123 /app/nfsdir2 將/data/123掛載到/app/nfsdir2上
/data/123 /app/nfsdir3 none bind 0 0
/app/nfsdir2 *(rw)(將來客戶端將該共享目錄掛載到本地目錄上,實際上掛載的是/data/123目錄)
NFS相關SELinux設置
CentOS7默認SELinux 的布爾值nfs_export_all_ro和nfs_export_all_rw都啟用. 這允許NFS服務可以讀寫任意文件,基於安全考慮可關閉.
對於只讀的NFS目錄SELinux安全上下文件應設為public_content_t或nfs_t.
對於讀寫的NFS目錄SELinux安全上下文件應設為public_content_rw_t或nfs_tcontext,並且布爾值nfsd_anon_writeBoolean 必須啟用,以允許寫操作.
幫助參考nfsd_selinux(8)(selinux-policy-devel包)nfs(5),mount(8),mount.nfs(8),exportfs(8),exports(5), nfsd_selinux(8)
SAMBA
SAMBA服務簡介
windos的計算機名是具有網絡意義的,能夠ping通這就需要計算機名是不能夠沖突的,而linux中的主機名是不具有網路意義的
SMB:Server Message Block服務器消息塊,IBM發布,最早是DOS網絡文件共享協議
Cifs:common internet file system,微軟基於SMB發布
SAMBA:1991年Andrew Tridgell,實現windows和UNIX相通
•工作組WORKGROUP:計算機對等關系,帳號信息各自管理
語法檢查:testparm[-v] [/etc/samba/smb.conf]
SAMBA服務器配置
smb.conf繼承了.ini文件的格式,用[ ] 分成不同的部分
%m 客戶端主機的NetBIOS名 %M 客戶端主機的FQDN
%L samba服務器的NetBIOS名 %I 客戶端主機的IP
samba服務有兩個服務,一個smb(samba的核心服務),一個是nmb(用來實現名字解析的,將NetBIOS名解析成IP地址)
systemctl start smb 開啟兩個端口,都是tcp協議
systemctl start nmb 也開啟兩個端口,都是udp協議
SAMBA服務器全局配置
hosts allow 可用"," ,空格,或tab分隔,默認允許所有主機訪問,也可在每個共享獨立配置,如在[global]設置,將應用並覆蓋所有共享設置
IPv4 network/prefix: 172.25.0.0/24 IPv4前綴: 172.25.0.
IPv4 network/netmask: 172.25.0.0/255.255.255.0
以example.com后綴的主機名: .example.com
hosts allow = 172.25. .example.com
configfile=/etc/samba/conf.d/ %U 用戶獨立的配置文件
Log file=/var/log/samba/log. %m不同客戶機采用不同日志
max log size=50 日志文件達到50K,將輪循rotate,單位KB
user:samba用戶(采有linux用戶,samba的獨立口令)
domain:使用DC(DOMAINCONTROLLER)認證
samba用戶須是Linux用戶,建議使用/sbin/nologin
管理SAMBA用戶
/var/lib/samba/private/passdb.tdb
在windos登陸linux系統的samba共享目錄,是需要輸入samba服務自身的賬號和密碼,和linux系統用戶無關,而且默認登陸的共享目錄是samba用戶的家目錄
1.useradd -s /sbin/nologin smb1
1.useradd -s /sbin/nologin smb1
(3)現在想訪問別的共享目錄,但是重新登進去,直接不用輸賬戶密碼,就登陸了共享目錄,這個共享目錄還是上一次登陸的smb1賬戶的家目錄,這是因為windos已經記住了上一次登陸的賬戶和密碼,默認下一次還登陸該賬號,所以此時應該在windos清除上一次登陸的賬號和密碼,才能登陸新的共享目錄
smbclient //192.168.10.187/smb1 -U smb1%centos
samba服務常用的配置
1.通過NetBIOS名來訪問共享目錄
2.通過IP地址來控制訪問
如圖:只允許本機和127.網段訪問,和192.168.10.135訪問
3.記錄日志
log level = number 2表示記錄的日志更加詳細
現在我在IP地址為192.168.10.135的主機來訪問共享目錄
4.配置共享目錄
public 能否被guest訪問的共享,默認no,和guest ok 類似 public = yes 允許匿名登錄
browsable是否允許所有用戶瀏覽此共享,默認為yes,no為隱藏 browsable = no 表示允許用戶查看到共享目錄
writable=yes 可以被所有用戶讀寫,默認為no,訪問的共享目錄默認是不可寫的
read only=no 和writable=yes等價,如與以上設置沖突,放在后面的設置生效,默認只讀
注意:以上兩種方式都可以控制賬戶對共享目錄是否可寫,但是如果共享目錄自身的其他人上沒有寫權限,那么用戶也是不能往共享目錄里面寫東西的
write list 三種形式:用戶,@組名,+組名,用,分隔
如writable=no,列表中用戶或組可讀寫,不在列表中用戶只讀
valid users 特定用戶才能訪問該共享,如為空,將允許所有用戶,用戶名之間用空格分隔
valid users后面也可以跟組,+組名或@組名表示組,不加+或者@,就會把其當做是用戶
valid users = smb1 smb2允許smb1和smb2訪問
browsable = smb3 不允許用戶smb3查看到共享目錄
我將用戶smb1和smb2添加到admin組中,也可以這樣寫如圖:
SMB客戶端訪問
UNC路徑: Universal Naming Convention,通用命名規范(在windos里面訪問共享目錄)
smbclient -L instructor.example.com 查看共享目錄
smbclient -L instructor.example.com -U wang
smbclient //instructor.example.com/shared -U wang%centos
可以使用-U選項來指定用戶%密碼,或通過設置和導出USER和PASSWD環境變量來指定
例如"smbclient //192.168.10.187/publicnfshare1 -U smb1%centos
掛載CIFS文件系統
mount -t cifs -o user=wang,password=magedu //server//shared /mnt/smb(可以省略-t cifs,默認是cifs)
//server/homes /mnt cifs user=wang,passward=magedu 0 0
寫到/etc/fstab里面,開機自動掛載,但是這樣寫不安全,因為/etc/fstab這個文件,其他普通用戶也有權限查看,就能看見samba共享目錄的賬號和密碼,可以用文件代替用戶名和密碼的輸入,這樣其他普通用戶就看不了共享目錄的賬號和密碼
//server/homes /mnt cifs credentials=/etc/smb.txt 0 0
•chmod600 /etc/smb.txt 給這個文件也設置好權限,使其他人不能查看
多用戶掛載
客戶端掛載samba共享目錄后,在客戶端登錄的不同用戶訪問同一個samba的掛載點,可獲得不同權限
實驗:實現多用戶掛載
實驗環境:兩台機器:A:192.168.10.187 samba服務器 B:192.168.10.200 客戶端
允許訪問共享目錄的用戶有admin組中的用戶和用戶smb2和用戶smb3
cifscreds add –u smb1 192.168.10.187
cifscreds add –u smb2 192.168.10.187
實驗:實現圖形化管理
only_from= 127.0.0.1 此行改成172.16.0.0/16
http://127.0.0.1:901 以root用戶登錄
注意:commit changes后會自動重新加載配置,且自動將/etc/samba/smb.conf中原有的注釋全刪除