Linux下samba伺服器在企業網路中應用
1. Samba服務基礎:
Windows與Linux文件共享的方法,建議使用 Samba 伺服器!
Samba應用環境 :
文件和印表機共享; 身份驗證和許可權設置; 名稱解析; 瀏覽服務. c/s server:windows linux(samba)client: windows:\\ 網上鄰居 net use
linux
文件傳輸:ssh ftp smb
SMB協議:Server Message Block,服務消息塊
CIFS協議:Common Internet File System,通用互聯網文件系統
Samba網站:http://www.samba.org/
Samba官方下載:http://ftp.samba.org/pub/samba/
Smb進程: tcp:smbd 139 445
2. Samba 配置簡介:
Samba的軟體包組成:(包很大)
samba-3.0.33-3.14.el5.i386.rpm samba-client-3.0.33-3.14.el5.i386.rpm samba-common-3.0.33-3.14.el5.i386.rpm samba-swat-3.0.33-3.14.el5.i386.rpmsamba: 這個軟體主要提供了 SMB 伺服器所需的各項服務程序 (smbd 及 nmbd)、 的文件檔、以及其他與 SAMBA 相關的 logrotate 配置文件及開機默認選項檔案等;
samba-client: 這個軟體則提供了當 Linux 做為 SAMBA Client 端時,所需要的工具指令,例如掛載 SAMBA 文件格式的 mount.cifs、 取得類似網芳相關樹形圖的 smbtree 等等;
samba-common: 這個軟體提供的則是伺服器與客戶端都會使用到的數據,包括 SAMBA 的主要配置文件 (smb.conf)、語法檢驗指令 (testparm) 等等;
samba-swat: 埠tcp901, 是通過瀏覽器對 Samba 進行管理的工具之一.通過 SWAT ,可以在 Samba 允許訪問範圍內的客戶端,用瀏覽器對服務端的 Samba 進行控制.在線文檔的閱覽、smb.conf 的確認和編輯,以及密碼的變更、服務的重啟等等都可以通過 SWAT 來完成,它的直觀讓 Samba 變得溫和化,對那些不喜歡文本界面管理伺服器的朋友來說,是一個強大的工具.
system-config-samba圖形配置包
samba安裝:
[root@junjie ~]# mount /dev/cdrom /mnt/cdrom/
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@junjie ~]# rpm -qa |grep samba samba-common-3.0.33-3.7.el5 samba-client-3.0.33-3.7.el5[root@junjie ~]# cd /mnt/cdrom/Server/
[root@junjie Server]# ls samba*
samba-3.0.33-3.14.el5.i386.rpm samba-client-3.0.33-3.14.el5.i386.rpm samba-common-3.0.33-3.14.el5.i386.rpm samba-swat-3.0.33-3.14.el5.i386.rpm[root@junjie Server]# rpm -ivh samba-3.0.33-3.14.el5.i386.rpm
error: Failed dependencies:
perl(Convert::ASN1) is needed by samba-3.0.33-3.14.el5.i386
samba-common = 0:3.0.33-3.14.el5 is needed by samba-3.0.33-3.14.el5.i386
[root@junjie Server]#
Installed: samba.i386 0:3.0.33-3.14.el5 samba-swat.i386 0:3.0.33-3.14.el5
Dependency Installed: perl-Convert-ASN1.noarch 0:0.20-1.1
Updated: samba-client.i386 0:3.0.33-3.14.el5 samba-common.i386 0:3.0.33-3.14.el5
Complete!samba配置說明:
可以用 rpm –ql samba 查看samba的可配置文件[root@junjie Server]# rpm -qc samba
/etc/logrotate.d/samba /etc/pam.d/samba /etc/rc.d/init.d/smb /etc/samba/smbusers /etc/sysconfig/samba[root@junjie Server]# rpm -qc samba-common
/etc/samba/lmhosts /etc/samba/smb.conf /etc/security/pam_winbind.conf[root@junjie ~]# ll /etc/samba/
total 20-rw-r--r-- 1 root root 20 May 29 2009 lmhosts
-rw-r--r-- 1 root root 9733 May 29 2009 smb.conf
-rw-r--r-- 1 root root 97 May 29 2009 smbusers
Samba的服務腳本
/etc/init.d/smbSamba的配置目錄及文件
/etc/samba/Samba 的主配置文件叫/etc/samba/smb.conf
/etc/sysconfig/samba: 提供啟動 smbd, nmbd 時,你還想要加入的相關服務參數.
Samba主配置文件smb.conf詳解:
[root@junjie ~]# rpm -ql samba |grep smb.conf
/usr/share/doc/samba-3.0.33/htmldocs/manpages/smb.conf.5.htm[root@junjie ~]# rpm -ql samba-common |grep smb.conf
/etc/samba/smb.conf /usr/share/man/man5/smb.conf.5.gz [root@junjie ~]# cp /etc/samba/smb.conf /etc/samba/smb.conf.bak[root@junjie ~]# grep -v "^#" /etc/samba/smb.conf |grep –v “^;”
默認主配置在/etc/samba/目錄下.這個目錄下還存放著我們稍後用密碼訪問時的口令文件.smb.conf 含有多個段,每個段由段名開始,直到下個段名.每個段名放在方括弧中間.配置文件中一行一個段名和參數,段名和參數名不分大小寫.除了[global]段外,所有的段都可以看作是一個共享資源.段名是該共享資源的名字,段里的參數是該共享資源的屬性.
Samba 安裝好后,使用testparm 命令可以測試smb.conf 配置是否正確.使用testparm –v命令可以詳細的列出smb.conf 支持的配置參數.
57 [global]全局配置參數:
74 workgroup = MYGROUP75 server string = Samba Server Version %v
77 ; netbios name = MYSERVER79 ; interfaces = lo eth0 192.168.12.2/24 192.168.13.2 /24
80 ; hosts allow = 127. 192.168.12. 192.168.13.
89 log file = /var/log/samba/%m.log 91 max log size = 50101 security = user
74行:workgroup:設置所在工作組名稱,設定 Samba Server 所要加入的工作組或者域.75行:server string:伺服器描述信息,可以是任何字元串,也可以不填.宏%v 表示顯示
77行:netbios name:設置Samba Server 的NetBIOS 名稱.如果不填,則默認會使用該伺服器的DNS 名稱的第一部分.netbios name 和workgroup 名字不要設置成一樣了.
79行:interfaces:設置Samba Server 監聽哪些網卡,可以寫網卡名,也可以寫該網卡的IP 地址
80行:hosts allow = 127. 192.168.1. 192.168.10.1
說明:表示允許連接到Samba Server 的客戶端,多個參數以空格隔開.可以用一個IP 表示,也可以用一個網段表示.hosts deny 與hosts allow 剛好相反.
設置客戶機訪問授權:一般用在全局配置[global]部分
hosts allow配置項:僅允許特定的客戶機 hosts deny配置項:僅拒絕特定的客戶機客戶機地址表示形式:以空格分隔多個地址
主機名或IP地址,例如: 192.168.168.11 或者 prtsvr
網路地址,例如:173.17. 或者 173.17.0.0/255.255.0.0
例如:hosts allow=172.17.2.EXCEPT172.17.2.50
表示容許來自172.17.2.*.*的主機連接,但排除172.17.2.50
hosts allow=172.17.2.0/255.255.0.0表示容許來自172.17.2.0/255.255.0.0 子網中的所有主機連接
hosts allow=M1,表示容許來自M1 和M2 兩台計算機連接
hosts allow=@xq表示容許來自XQ 網域的所有計算機連接
89行:log file設置Samba Server 日誌文件的存儲位置以及日誌文件名稱.在文件名后加個宏%m(主機名),表示對每台訪問Samba Server 的機器都單獨記錄一個日誌文件.如果pc1、pc2 訪問過
91行:max log size = 50設置Samba Server 日誌文件的最大容量,單位為kB,0 代表不限制.
101行:security = user說明:設置用戶訪問Samba Server 的驗證方式,一共有四種驗證方式.
1. share2. user:Samba Server 共享目錄只能被授權的用戶訪問,由Samba Server 負責檢查賬號和密碼
的正確性.賬號和密碼要在本Samba Server 中建立.
3. server:依靠其他Windows NT/2000 或Samba Server 來驗證用戶的賬號和密碼,是一種代理
驗證.此種安全模式下,系統管理員可以把所有的Windows 用戶和口令集中到一個NT 系統
上,使用Windows NT 進行Samba 認證, 遠程伺服器可以自動認證全部用戶和口令,如果認證
221行:表示是否容許印表機中的所有印表機,在開機時自動載入瀏覽列表,以支持客戶端的瀏覽功能
224-225行:是用來設置開機時自動載入的印表機配置文件名稱和路徑227行:用來指定列印系統的類型
248 [homes]個人主目錄配置參數:
249 comment = Home Directories 250 browseable = no255 [printers]印表機配置參數:
256 comment = All Printers 257 path = /var/spool/samba 258 browseable = no 259 guest ok = no 260 writable = no 261 printable = yes[
comment:對共享目錄的註釋、說明信息
path:共享目錄在伺服器中對應的實際路徑 browseable:該共享目錄在“網上鄰居”中是否可見guest ok:是否允許所有人訪問,等效於“public”
writable:是否可寫,與read only的作用相反
Samba服務設置的讀取、寫入許可權,優先順序要低於文件系統中設置的許可權
建立Samba用戶資料庫文件
默認資料庫文件位於:/etc/samba/smbpasswd
系統用戶帳號 -> Samba用戶帳號
smbpasswd -a user1 #添加
smbpasswd -d user1 #禁用
smbpasswd -e user1 #啟用
smbpasswd -x user1 #刪除
Samba帳號的別名設置在smb.conf文件中需要啟用如下配置
username map = /etc/samba/smbusers默認的別名映射文件:/etc/samba/smbusers
配置文件語法檢測工具:testparm
狀態查看工具:smbstatus
[root@junjie ~]# smbstatus
3. Samba客戶端訪問方法:
使用Windows客戶端訪問文件共享服務網上鄰居、UNC路徑
windows 下:斷開連接的方法:註銷系統或輸入以下命令.
使用Linux客戶端訪問文件共享服務:smbclient
smbclient命令,查看及登錄使用共享
smbclient -L 192.168.168.1 smbclient //192.168.168.1/movie -U user1 smbclient -L //伺服器地址 –U smb賬號 smbclient //伺服器地址/共享名稱 –U smb賬號掛載:
mount命令,將共享目錄掛載到本地使用
#mount -o username=vina //192.168.168.1/movie /mnt
#mount –t cifs –o username=smb賬號,password=‘密碼’//伺服器地址/共享資源名稱 /掛載點smbmount //192.168.5.100 /mnt/dir1 –o username=user1
自動掛載:vim /etc/fstab
//192.168.2.100/qq /mnt/qq cifs defaults, credentials=/etc/samba/account.txt 0 0
安全控制: vim /etc/samba/account.txt chmod 600 /etc/samba/account.txt4.
samba安裝:
[root@junjie ~]# mount /dev/cdrom /mnt/cdrom/
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@junjie ~]# rpm -qa |grep samba samba-common-3.0.33-3.7.el5 samba-client-3.0.33-3.7.el5[root@junjie ~]# cd /mnt/cdrom/Server/
[root@junjie Server]# ls samba*
samba-3.0.33-3.14.el5.i386.rpm samba-client-3.0.33-3.14.el5.i386.rpm samba-common-3.0.33-3.14.el5.i386.rpm samba-swat-3.0.33-3.14.el5.i386.rpm[root@junjie Server]# rpm -ivh samba-3.0.33-3.14.el5.i386.rpm
error: Failed dependencies:
perl(Convert::ASN1) is needed by samba-3.0.33-3.14.el5.i386
samba-common = 0:3.0.33-3.14.el5 is needed by samba-3.0.33-3.14.el5.i386
[root@junjie Server]# yum install -y samba samba-swat
Installed: samba.i386 0:3.0.33-3.14.el5 samba-swat.i386 0:3.0.33-3.14.el5
Dependency Installed: perl-Convert-ASN1.noarch 0:0.20-1.1
Updated: samba-client.i386 0:3.0.33-3.14.el5 samba-common.i386 0:3.0.33-3.14.el5
Complete![root@junjie ~]# useradd user1
[root@junjie ~]# useradd user2
[root@junjie ~]# echo "123" |passwd --stdin user1
Changing password for user user1.
passwd: all authentication tokens updated successfully.
[root@junjie ~]# echo "123" |passwd --stdin user2
Changing password for user user2.
passwd: all authentication tokens updated successfully.
[root@junjie ~]# smbpasswd -a user1
New SMB password:Retype new SMB password:
Added user user1.[root@junjie ~]# smbpasswd -a user2
New SMB password:Retype new SMB password:
Added user user2.[root@junjie ~]# mkdir /public
[root@junjie ~]# touch /public/p1
[root@junjie ~]# mkdir /soft
[root@junjie ~]# touch /soft/f1
[root@junjie ~]# mkdir /smbuser2
[root@junjie ~]# touch /smbuser2/f1.user2
[root@junjie ~]# chmod 777 /public/ /soft/ /smbuser2/
[root@junjie ~]# ll -d /public/ /soft/ /smbuser2/
drwxrwxrwx 2 root root 4096 Apr 15 18:03 /public/
drwxrwxrwx 2 root root 4096 Apr 15 18:12 /smbuser2/
drwxrwxrwx 2 root root 4096 Apr 15 18:04 /soft/
[root@junjie ~]# vim /etc/samba/smb.conf
89 log file = /var/log/samba/%m.log 91 max log size = 50 101 security = user 289 [public] 290 comment = this public dir 291 path = /public 292 public = yes 293 [smb-user1] 294 comment = this user1's dir 295 path = /soft 296 valid users = user1 297 writable = yes 298 [smb-user2] 299 comment = this user2's dir 300 path = /smbuser2#檢查語法:
[root@junjie ~]# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[public]"
Processing section "[smb-user1]"
Processing section "[smb-user2]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global] workgroup = MYGROUP server string = Samba Server Version %v passdb backend = tdbsam log file = /var/log/samba/%m.log max log size = 50 cups options = raw [homes] comment = Home Directories read only = No browseable = No#重啟samba的服務smb
[root@junjie ~]# service smb restart
Shutting down SMB services: [ OK ]
Shutting down NMB services: [ OK ]
Starting SMB services:
Starting NMB services: [ OK ]
#user1登錄測試
使用命令關閉user1的連接,接下來使用user2訪問測試!
#user2登錄測試
在Linux下:查看連接信息和日誌信息 #日誌信息 附錄1:源碼安裝samba伺服器:[root@junjie ~]# ll samba-3.5.14.tar.gz
-rw-r--r-- 1 root root 30368829 Apr 1 10:49 samba-3.5.14.tar.gz
[root@junjie ~]# tar -zxvf samba-3.5.14.tar.gz -C /usr/local/src/
[root@junjie ~]# cd /usr/local/src/samba-3.5.14/source3/
[root@junjie source3]# ls
[root@junjie source3]# ./autogen.sh
[root@junjie source3]# ./configure --help
[root@junjie source3]# ./configure && make && make install
==============================================================MO files for pam_winbind are installed.
============================================================== ==============================================================All MO files for Samba are installed. You can use "make uninstall"
or "make uninstallmo" to remove them.
==============================================================make: warning: Clock skew detected. Your build may be incomplete.
#make installbin && make installman && make revert(可選)
#其它配置略.
附錄2:圖形化管理samba伺服器
本文出自 「xjzhujunjie」 博客,請務必保留此出處http://xjzhujunjie.blog.51cto.com/3582724/835357
[火星人 ] Linux下samba伺服器在企業網路中應用已經有690次圍觀