實驗環境:RHEL6.0
ServerIP:192.168.0.1
nmbd:137、138端口
smbd:139端口,可能還有445端口
ClientIP:192.168.0.2(Linux)
ClientIP:192.168.0.8(Windows)
服務端配置:
#yum install samba samba-common -y
例1、不需要密碼的Samba文件共享
#cat /etc/sysconfig/i18n (查看本機的編碼,如UTF-8)
#vim /etc/samba/smb.conf
******************************************************************************************************
#1.先設置好服務器全局環境方面的參數
[global]
#與主機名有關的設置信息
workgroup = workgroup
netbios name = samba_server
server string = This is JJF's Samba Server!
interfaces = lo eth0
hosts allow = 127.0.0. 192.168.0.
#與語言方面有關的設置項目
unix charset = utf8
display charset = utf8
dos charset = cp936
#與登錄文件有關的設置項目(%m代表客戶端的NetBIOS主機名)
log file = /var/log/samba/log.%m
max log size = 50
#與密碼有關的設置項目(share選項可以使訪問時不需要密碼)
security = share
#不加載打印機
load printers = no
#2.共享資源設置方面:主要是將舊的註釋掉並添加新的文件資源
[temp] #共享資源名稱
comment = Temporary file space #對資源的描述
path = /tmp #實際Linux共享的目錄
writable = yes #是否可以寫入?
browseable = yes #是否可以瀏覽到資源名稱
guest ok = yes #用戶隨意登陸?
*****************************************************************************************************
#testparm #檢查samba.conf設置的語法和參數[-v 包括顯示默認參數]
#/etc/init.d/smb start
#/etc/init.d/nmb start
#netstat -tulnp|grep mbd #打開端口137、138、139、(445)
客戶端配置:
#yum install samba-client cifs-utils -y
#smbclient -L 192.168.0.1 #顯示samba Server提供的資源
#mount -t cifs //192.168.0.1/temp /tmp #掛載到客戶機/tmp目錄中
例2、要登錄密碼的Samba文件共享
#cat /etc/sysconfig/i18n (查看本機的編碼,如UTF-8)
#vim /etc/samba/smb.conf
******************************************************************************************************
#1.先設置好服務器全局環境方面的參數
[global]
#與主機名有關的設置信息
workgroup = workgroup
netbios name = samba_server
server string = This is JJF's Samba Server!
interfaces = lo eth0
hosts allow = 127.0.0. 192.168.0.
#與語言方面有關的設置項目
unix charset = utf8
display charset = utf8
dos charset = cp936
#與登錄文件有關的設置項目(%m代表客戶端的NetBIOS主機名)
log file = /var/log/samba/log.%m
max log size = 50
#不加載打印機
load printers = no
#與密碼有關的設置項目,包括密碼文件所在的格式(user選項可以使訪問時需要用戶名和密碼)
security = user #修改安全等級是user
passdb backend = tdbsam #使用TDB數據庫格式
#2.共享資源設置方面:主要是將舊的註釋掉並添加新的文件資源
[homes]
#在smb.conf文件中一般沒有對這個目錄的設定特定內容比如路徑等。當客戶機發出服務請求時,就在smb.conf文件的其它部分查找有特定內容的#服務。如果沒有發現這些服務,並且提供了homes段時,那麼就搜索密碼文件得到用戶的Home目錄。通過Homes段,Samba可以得到用戶的Home 目#錄並使之共享。
comment = Home Directories
browseable = no #除用戶自己,其它人不能查看
writable = yes
create mode = 0664 #創建的數據權限是644
directory mode = 0775 #建立的目錄權限是775
[project]
comment = smbuser's project
path = /home/project
browseable = yes
writable = yes
write list = @users #擁有寫入權限的用戶組users
*******************************************************************************************************
#testparm #查看是否有語法錯誤
#mkdir /home/project #建立共享目錄project
#chgrp users /home/project
#chmod 2770 /home/project
#useradd -G users smb1 #建立可使用SAMBA的帳號及密碼
#useradd -G users smb2
#useradd -G users smb3
#echo 1234|passwd --stdin smb1
#echo 1234|passwd --stdin smb2
#echo 1234|passwd --stdin smb3
#pdbedit -a -u smb1 #添加smb1爲SAMBA賬戶
#pdbedit -a -u smb2 #添加smb2爲SAMBA賬戶
#pdbedit -a -u smb3 #添加smb3爲SAMBA賬戶
#pdbedit -L #查詢目前已經存在的Samba賬戶
#/etc/init.d/smb restart
#/etc/init.d/nmb restart
#setsebool -P samba_enable_home_dirs=1
客戶端訪問:
Linux系統:
#mount -t cifs //192.168.0.1/smb1 /mnt -o username=smb1,password=1234,codepage=cp936
Windows系統:
打開文件夾——>在地址欄輸入\\192.168.0.1\smb1——>輸入帳號密碼即可
注意:只能登錄一個賬戶!如果想登錄另一個賬戶,需要在文件夾選項中執行“工具”——>“斷開網絡驅動器”,然後再登錄即可。
利用Quota限制用戶磁盤使用
1>/etc/fstab加入/home掛載點選項usrquota,grpquota;
2>重新掛載/home,讓Quota實際被支持;
3>以quotacheck -avug建立Quota的數據庫文件
4>啓動Quota
5>edquota -u smb1 給smb1用戶進行磁盤配額
#edquota -p smb1 smb2
#edquota -p smb1 smb3
6>requota -ua查看配額情況
注:
1.SAMBA使用的NetBIOS協議在局域網內共享文件,而非TCP/IP協議在Internet上共享文件;
2.NetBIOS over TCP/IP技術可以實現SAMBA在跨路由開放;
3.FTP服務無法實現在線更改文件;
4.NFS僅限於Linux之間的文件共享;
5.CIFS僅限於Windows之間的文件共享(網上鄰居);
6.常見的局域網連接模式:Peer/Peer(對等模式)、Domain model(主控模式);
7.nmbd:管理工作組、NetBIOS Name等解析,採用UDP協議傳輸數據;
8.smbd:管理SAMBA主機共享的目錄、文件與打印機、權限等,使用TCP協議傳輸數據;
9.用戶的帳號與密碼採用數據庫文件/var/lib/samba/private/{passdb.tdb,secrets.tdb};
10.smb.conf是不區分大小寫的;
11.如果沒有安裝cifs-utils,則日誌文件報錯如下:CIFS VFS: cifs_mount failed w/return code = -22
12.SAMBA.conf中常用的變量:
%S:替代當前設置項目的值(即[]中的值)
%m:代表Client端的NetBIOS主機名
%M:代表Client端的hostname
%L:代表SAMBA主機的NetBIOS主機名
%H:代表用戶的用戶主目錄
%U:代表當前登錄的用戶的用戶名
%g:代表登錄的用戶的組名
%h:代表目前這部SAMBA主機的hostname
%l:代表Client端的IP
%T:代表當前的日期與時間
13.在SAMBA上面的用戶帳號必須要是Linux帳號中的一個;
14.#pdbedit -a|-r|-x -u 帳號 #添加/修改/刪除帳號
15.#pdbedit -a -m -u 機器賬號 #與PDC有關的機器碼
16.#smbpasswd smb3 #修改賬戶smb3在Samba上的密碼
17.在權限方面,不但要考慮SAMBA文件的權限,還應該考慮Linux系統權限,SELinux權限、防火牆等!!!
18.#可以使用getsebool -a|grep samba查看與Samba相關的SELinux選項。
19.#nmblookup可以查看NetBIOS Name的IP及其他信息;
20.#smbtree 網上鄰居瀏覽器顯示模式
21.#smbstatus觀察SAMBA的狀態