SAMBA服務的配置.
SAMBA簡介
NFS只能實現在linux和unix系統之間實現文件共享,而CIFS(公共網際網路文件系統)只能實現windows系統之間的文件共享.那麼linux或unix系統怎麼和windows系統之間共享文件呢?這就要用到
Samba核心有兩守護進程:
smbd:監聽139埠,實現主機之間的文件和印表機的共享.
nmbd:監聽137,138埠,實現主機之間可以利用NetBios名互相訪問.
SAMBA
配置IP地址:
[root@rhel3 ~]# ifconfig eth0 192.168.100.30 netmask 255.255.255.0
安裝軟體:
[root@rhel3 ~]# rpm -ivh /misc/cd/Server/samba-common-3.0.33-3.7.el5.i386.rpm
提供samba的配置文件和語法檢驗工具,伺服器和客戶端都要安裝.
[root@rhel3 ~]# rpm -ivh /misc/cd/Server/samba-client-3.0.33-3.7.el5.i386.rpm
客戶端軟體.
[root@rhel3 ~]# rpm -ivh /misc/cd/Server/perl-Convert-ASN1-0.20-1.1.noarch.rpm //在安裝
[root@rhel3 ~]# rpm -ivh /misc/cd/Server/perl-Convert-ASN1-0.20-1.1.noarch.rpm //安裝samba前要裝上這個軟體.
[root@rhel3 ~]# rpm -ivh /misc/cd/Server/samba-3.0.33-3.7.el5.i386.rpm
伺服器端軟體.
[root@rhel3 ~]# rpm -ivh /misc/cd/Server/xinetd-2.3.14-10.el5.i386.rpm
安裝下面的網頁配置軟體時要先把xinetd軟體先裝上.
[root@rhel3 ~]# rpm -ivh /misc/cd/Server/samba-swat-3.0.33-3.7.el5.i386.rpm
samba的
SAMBA服務配置文件詳解.
[global]
# ----------------------- Network Related Options -------------------------
workgroup = MYGROUP
設置工作組名稱.
server string = Samba Server Version %v
; netbios name = MYSERVER
設置NetBios名稱.
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
後面可以跟介面或IP地址,如果伺服器不想用默認的IP地址時或想用多個IP地址時設置 此項.
; hosts allow = 127. 192.168.12. 192.168.13.
設置允許訪問主機的IP
# --------------------------- Logging Options -----------------------------
; log file = /var/log/samba/%m.log
設置日誌文件的存放位置,伺服器會每個用戶保存一個日誌文件,%m表示使用用戶訪問的NetBios名來命令日誌文件.
; max log size = 50
指定日誌文件的大小,單位(KB)
# ----------------------- Standalone Server Options ------------------------
security = share
設置Samba共享安全級別:
share: 共享級別,伺服器不對客戶機進行身份驗證.
user: 用戶級別,伺服器對客戶機進行身份驗證.
server: 伺服器級別,Samba伺服器必須通過另一台伺服器對客戶機進行身份驗證.如果設置為此值,需另加一行:password Server = IP才行.
domain: 域級別,Samba伺服器要通過windows server的域控制器對客戶機進行身份驗證,同樣,如果設置為此值,需另加一行:
passdb backend = tdbsam
指定Samba伺服器對用戶帳戶和密碼的管理方式.一般默認即可.
# ----------------------- Browser Control Options ----------------------------
; local master = no
如果不想Samba伺服器成為區域網內的主瀏覽伺服器,此項選擇no.
; os level = 33
設置刻伺服器在區域網內訪問的優先順序.
使Samba啟動時選擇一個本地瀏覽器,並給它獲得選擇較高的機會.
#----------------------------- Name Resolution -------------------------------
; wins support = yes
是否支持WINS伺服器,Samba可以成為WINS伺服器,也可以成為WINS客戶端,但不能兩者兼得.
; wins server = w.x.y.z
; wins proxy = yes
表示一個非WINS用戶通知Samba響應名稱解析,本身不為客戶端提供查詢.
; dns proxy = yes
同上.
# --------------------------- Printing Options -----------------------------
load printers = yes
設置是否允許印表機共享,並加裁印表機.
指定印表機使用的方式.
; printcap name = /etc/printcap
設置印表機配置文件的位置.
; printcap name = lpstat
; printing = cups
設置列印系統類型,一般默認.只有在列印系統不是標準系統時才指定.
#============================ Share Definitions ================
[homes]
描述信息.
browseable = no
設置其他用戶是否可以瀏覽此共享文件.
writable = yes
設置此用戶是否可寫.
valid users = %S
設置可訪問的用戶和組.多個用戶用逗號分開,指定組時要在組名前加@.
設置不能訪問的用戶和組,用法同上.
Samba定義的變數:
%S 當前伺服器名.
%P 當前伺服器的根目錄.
%u 當前伺服器的用戶名.
%g
%U 當前對話的用戶名.
%G 當前對話的用戶我主工作組.
%H 當前伺服器用戶的home目錄.
%v Samba伺服器的版本號.
%h 運行Samba伺服器的主機名.
%m 客戶機的
%L 伺服器的NetBios名.
%M 客戶機的主機名.
%N NIS伺服器名.
%p NIS伺服器的Home目錄.
%R 所採用的伺服器等級.
%d 當前服務進程的
%a 客戶機和結構.
%I 客戶機的IP.
%T 當前日期和時間.
SAMBA基於共享的簡單配置.
編輯配置文件:
[root@rhel3 ~]# vi /etc/samba/smb.conf
# ----------------------- Standalone Server Options ------------------------
security = share //不需要用戶名和密碼的共享模式.
passdb backend = tdbsam
下面是共享目錄和許可權的設置:(在最后添加)
[share]
comment = linux share
public = yes
writable = yes
printable = no
write list = staff
如果共享目錄是複製例子的,別忘了把前面的;去掉哦!如果還不能訪問那就是防火牆在搗亂了.
[root@rhel3 ~]# mkdir /rhel3
[root@rhel3 ~]# touch /rhel3/linux.txt
[root@rhel3 ~]# vi /rhel3/linux.txt
This is linux server!
查看一下文件夾的許可權:
[root@rhel3 ~]# ll /
drwxr-xr-x 2 root root 4096 Jun 8 21:56 rhel3
在共享時設置的是可寫的,而在這裡除了root用戶其他人是沒有許可權寫入,所有還是不能寫入,修改一下:
[root@rhel3 ~]# chmod 777 /rhel3
[root@rhel3 ~]# ll /
drwxrwxrwx
許可權已經修改完成.
[root@rhel3 ~]# service smb restart
現在來測試一下:
windows系統在運行里輸入:
linux系統:
[root@rhel2 ~]# mount //192.168.100.30/share /mnt //mount 後面跟主機名或IP地址,後面是共享名.最后跟掛載點.
Password: //這裡不需要輸入密碼.
[root@rhel2 ~]# ls /mnt
liunx.txt
[root@rhel2 ~]# smbclient //192.168.100.30/share //smbclient後面跟共享主機名或IP地址再加上共享名.
Password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.33-3.7.el5]
Server not using user level security and no password supplied.
從這裡也可以看到伺服器是沒有使用身份驗證的.
smb: \> help
? altname archive blocksize cancel
case_sensitive cd chmod chown close
del dir du exit get
getfacl hardlink help history lcd
link lock lowercase ls mask
md mget mkdir more
newer open posix posix_open posix_mkdir
posix_rmdir posix_unlink print prompt put
pwd q queue quit rd
recurse reget rename reput rm
rmdir showacls
tar tarmode translate unlock volume
vuid wdel logon listconnect showconnect
!
這裡顯示的是一些客戶端使用的命令.如:
smb: \> dir
. D 0 Wed Jun
.. D 0 Wed Jun 9 14:41:23 2010
liunx.txt 22 Wed Jun 9 14:42:23 2010
61880 blocks of size 65536. 25838 blocks available
有寫的許可權,寫個文件試試:
smb: \> mkdir rhel2
smb: \> dir
.. D 0 Wed Jun 9 14:41:23 2010
liunx.txt 22 Wed Jun 9 14:42:23 2010
rhel2 D 0 Wed Jun 9 15:43:18 2010
61880 blocks of size 65536. 25838 blocks available
沒問題,可以寫入.下載文件:
smb: \> get liunx.txt /share.txt //get後面第一個參數是遠程伺服器的文件名,第二個參數是保存到本地的文件名.
getting file \liunx.txt of size 22 as /share.txt (0.2 kb/s) (average 0.2 kb/s)
smb: \> q //退出
[root@rhel2 ~]# ls /
bin dev lib misc opt sbin srv usr
boot
chenbin home media net root share.txt tmp
[root@rhel2 ~]# cat /share.txt
This is linux server!
沒問題,關於每個命令的使用這裡就不一一演示,詳細說明可以使用幫助.命令如下:
[root@rhel2 ~]# man smbclient
接著上面的做:
修改配置文件:
# ----------------------- Standalone Server Options ------------------------
security = user
共享目錄也就不改了.是基於用戶的共享,這裡需要建立用戶.
[root@rhel3 ~]# useradd samba //要建立本地用戶.
[root@rhel3 ~]# passwd samba
Changing password for user samba.
New UNIX password:
BAD PASSWORD: it is too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@rhel3 ~]# smbpasswd -a samba //創建Samba用戶.創建的用戶必須也存在於本地用戶資料庫中.
New SMB password:
Retype new SMB password:
[root@rhel3 ~]# service smb restart
可以測試一下samba的配置文件.如下:
測試:
在windows系統下:
連接過了,現在連接的話系統不提示輸入用戶名和密碼了,清除一下:在命令提示符下操作:
會記錄新的網路連接.
狀態 本地 遠程 網路
-------------------------------------------------------------------------------
OK
OK \\RHEL3\IPC$ Microsoft Windows Network
命令成功完成.
D:\Users\chenbin>net use \\192.168.100.30\IPC$ /delete
\\192.168.100.30\IPC$ 已經刪除.
D:\Users\chenbin>net use \\RHEL3\IPC$ /delete
\\RHEL3\IPC$ 已經刪除.
再連接:
打開后如下圖:
出現輸入用戶名和密碼對話框,輸入后確定.
出現了共享文件夾.samba目錄是一個用戶目錄,後面再說明.關於許可權問題這裡這不測試了.
在windows下為了方便,可以使用網路映射,在本地映射一個網路磁碟,這樣只要訪問這個磁碟就可以訪問共享文件了,也省去了每次輸入地址,用戶名和密碼.如下:
接下來選擇一個共享目錄:
完成後,在資源管理器里會多出一個Z盤,雙擊這個磁碟就能訪問共享文件了,很方便,如果不想用了,只要在這個磁碟上右擊-屬性-斷開.
接下來在linux系統下測試:
列出共享目錄:
連接:
關於用法就不演示了.
[火星人 ] LINUX-SAMBA服務配置已經有585次圍觀