『壹』 詳解linux系統中安裝配置Samba伺服器的步驟
一、獲取源代碼包並進行解壓
從samba的官方網站可以下載最新的samba源代碼包。下面我們以samba-3.5.9.tar.gz的源代碼包作為案例進行解析。本例中,我們將源代碼包放在目錄/home/samba下,然後執行下面的命令進行解壓縮。
代碼如下:
# tar –xzvf samba-3.5.9.tar.gz
二、配置configure
對源代碼包進行解壓縮後,進入目錄
代碼如下:
# cd /home/samba/samba-3.5.9/source3
然後執行下面的命令進行配置。
代碼如下:
# ./configure
可能在剛開始時,該目錄下沒有configure文件,此時可先執行下面的命令
代碼如下:
# ./autogen-sh
此時要求系統安裝了autoconf、automake等工具。
在運行上面的配置命令之前,我們可以通過命令
代碼如下:
# ./configure –-help
來查看配置命令的一些選項。
三、生成與安裝make make install
在環境配置命令./configure成功執行後,可以運行命令
代碼如下:
# make
來生成二進制可執行文件,這可能需要兩到三分鍾。成功生成可執行文件後,可以通過下面命令
代碼如下:
#make install
來進行安裝。系統默認的安裝路徑是/usr/local/samba
四、配置動態鏈接庫路徑
安裝完成後,我們需要配置動態鏈接庫路徑,因為運行samba的進行smbd和nmbd需要到目錄/usr/local/samba/lib下的動態鏈接庫文件。但是該目錄不是系統默認的動態鏈接庫文件搜索路徑,於是我們需要將該目錄添加到文件ld.so.conf中。執行下面的命令
代碼如下:
# vi /etc/ld.so.conf
打開ld.so.conf文件,並在該文件中加入下面這一行內容。
代碼如下:
/usr/local/samba/lib
然後執行命令
代碼如下:
# ldconfig
來更新動態鏈接庫緩沖。
五、samba配置文件smb.conf
samba在運行過程中需要用到配置文件smb.conf。smb.conf配置文件是samba最重要的配置文件,該文件定義了samba的安全機制、文件共享和列印共享的目錄和參數以及其他一些系統配置功能。
配置文件smb.conf的默認路徑是/usr/local/samba/lib/smb.conf,我們可以在運行smbd進程時,通過-s選項來執行特定的smb.conf文件(具體說明見下一節),一般不推薦使用-s選項,因為其配置工具,如smbclient、testparm等默認都是讀取/usr/local/samba/lib/smb.conf文件。下面我們以一個簡單的配置文件進行說明,其路徑為/etc/samba/smb.conf。
代碼如下:
[global]
workgroup = MYGROUP
server string = Samba Server %v
security = user
log file = /var/log/samba/%m.log
passdb backend = smbpasswd
smb passwd file = /etc/samba/smbpasswd
[root]
path = /
valid users = root
writeable = yes
[public]
path = /data
guest ok = yes
read only = yes
上面配置文件定義了root和public兩個文件共享服務。關於上面這個配置文件的具體細節,我們這里不做詳細的論述。這里主要說明的一點:在samba 3.0.23版本以前驗證用戶密碼的默認backend是smbpasswd,而3.0.23版本之後的默認backend是tdbsam。我們可以通過參數passdb backend來選擇特定的backend。在使用smbpasswd時默認讀取的密碼文件時/usr/local/samba/private/smbpasswd,我們可以通過smb passwd file來指定特定的密碼文件。
在配置完smb.conf文件後,我們可以運行testparm(目錄/usr/local/samba/lib下)命令來對smb.conf文件進行語法檢查,其會檢測出哪些參數名無法識別等問題。
六、啟動samba
samba有兩個主要的進程smbd和nmbd。smbd進程提供了文件和列印服務,而nmbd則提供了NetBIOS名稱服務和瀏覽支持,幫助SMB客戶定位伺服器,處理所有基於UDP的協議。
配置smb.conf文件後,在開始運行samba的服務進程之前。我們需要先做一些准備工作。運行smbpasswd命令(在目錄/usr/local/samba/bin下)
代碼如下:
# ./smbpasswd –a root
向smb.conf文件中指定的/etc/samba/smbpasswd文件中添加root用戶以及密碼信息。關於smbpasswd文件的詳細內容介紹見相關文檔。
然後運行命令
代碼如下:
# service iptables stop
關閉防火牆,因為防火牆可能會阻止用戶訪問該機器。下面是運行samba的服務進程smbd和nmbd
代碼如下:
# /usr/local/samba/sbin/smbd –D –s /etc/samba/smb.conf
# /usr/local/samba/sbin/nmbd –D –s /etc/samba/smb.conf
上面的-D選項指定smbd和nmbd以守護進程的方式啟動,並且通過-s選項指定了特定的配置文件/etc/samba/smb.conf。以守護進程方式啟動smbd和nmbd的優勢是響應速度快,但是要關閉的話只能kill掉。當然我們可以通過腳本來執行這些操作,這里就不提供腳本了。
七、smbclient進行測試檢查
在啟動samba之後,我們可以在本機使用smbclient(目錄/usr/local/samba/bin下)來進行測試。下面命令
代碼如下:
# cd /usr/local/samba/bin
# ./smbclient –L //127.0.0.1
可以列出本samba伺服器所提供的服務列表,本例運行結果如下:
代碼如下:
[root@localhost bin]# ./smbclient –L //127.0.0.1
Enter root』s password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.9]
p Sharename Type Comment
--------- ------- -------
IPC$ IPC IPC Service (Samba Server 3.5.9)
public Disk
root Disk
pDomain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.9]
p Server Comment
----------- -------
LOCALHOST Samba Server 3.5.9
Workgroup Master
------------ -------
MYGROUP LOCALHOST
當然也可以通過smbclient來訪問samba伺服器提供的服務,其命令格式如下:
代碼如下:
# ./smbclient 「//serverAdderss/aservice」 –U username
其中serverAddress是要訪問的samba伺服器的IP地址,aservice指定samba伺服器上提供的某個服務名稱,選項-U username指定要以哪個用戶名來訪問samba伺服器。例如
代碼如下:
[root@localhost bin]# ./smbclient 「//127.0.0.1/root」 –U root
Enter root』s password: ; #這里輸入samba用戶root的密碼
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.9]
smb: ; #訪問成功,輸入相關命令進行操作
上面個smb: 表明了訪問成功,此時我們可以輸入一些命令來在samba伺服器上進行操作,比如ls、mkdir等。q或quit命令執行退出,並斷開連接。
八、在Windows客戶端訪問samba伺服器
在Windows客戶端,可以在網上鄰居中通過新建網上鄰居來訪問,或者在【開始】——【運行】中輸入192.168.1.34root來訪問samba伺服器192.168.1.34上面提供的root服務。
九、重要選項說明
全局選項:
全局選項用於[global]的
選項定義中,其用於說明samba伺服器的一些基本屬性。其有些選項可以被其他
中的選項定義覆蓋。
workgroup = MYGROUP
定義samba伺服器所在的工作組或者域(如果設置security = domain的話)。
server string = Samba server
設定samba伺服器的描述,通過網路鄰居訪問時可在備注中查看到該描述信息。
hosts allow = host (subnet)
設定允許訪問該samba伺服器的主機IP或網路,該選項的值為列表類型,不同的項目之間使用空格或逗號隔開,例如hosts allow = 192.168.3.0, 192.168.1.1,該選項設置允許主機192.168.1.1以及子網192.168.3.0/24內的所有主機訪問該samba伺服器。
hosts deny = host (subnet)
設定不允許訪問該samba伺服器的主機IP或網路,其格式與hosts allow一樣。
guest account = guest
設定了遊客的賬號,在遊客訪問guest ok = yes的共享服務時,samba伺服器將設置客戶端以該遊客賬號來訪問共享。
log file = MYLOGFILE
設定記錄文件的位置。
max log size = size
設定記錄文件的大小,單位為KB,如果設置為0則表示無大小限制。
security =
設定samba伺服器的安全級,其有四種安全級別:share、user、server和domain,默認為user。關於這四種安全級別的詳細信息,請查看相關文檔。
password server = ServerIP
設定了用戶賬號認證伺服器IP,其在設定security = server時有效。
encrypt passwords = yes | no
設定是否對密碼進行加密。如果不對密碼進行加密的話,在認證會話期間,客戶端與伺服器傳遞的是明文密碼。但有些Windows系統默認情況下,不支持明文密碼傳輸。
passdb backend = smbpasswd | tdbsam | ldapsam
設定samba伺服器訪問和存儲samba用戶賬號的後端,在samba-3.0。23之前的默認值為smbpasswd,而之後的默認值為tdbsam。
smb passwd file =
設定samba的用戶賬號文件。對於源代碼安裝的samba,在samba-3.0.23之前,其默認值為/user/local/samba/private/smbpasswd;而samba-3.0.23之後,其默認值為/usr/local/samba/private/passwd.tdb。
include = smbconfFile
通過include選項可以包含其他配置文件,通過該選項和一些samba定義的變數可以設定與不同機器相關的配置。
local master = yes | no
設定該samba伺服器是否試圖成為本地主瀏覽器,默認值為yes。若設置為no,則該samba伺服器永遠不可能成為本地主瀏覽器,而設置為yes不代表其一定能成為本地主瀏覽器,只是讓其能參與本地主瀏覽器的選舉。
os level = N
N是一個整數,設定了該samba伺服器參加本地主瀏覽器選舉時的權重,其值越大,權重越大。os level = 0時,該伺服器將失去選舉的機會。
domain master = yes | no
設定samba伺服器成為域瀏覽器。域瀏覽器從各個本地主瀏覽器處獲取瀏覽列表,並將整個域的瀏覽列表傳遞給各個本地主瀏覽器。
preferred master = yes | no
設定該samba伺服器是否為工作組里的首要主瀏覽器,如果設置為yes,則在nmbd啟動時,將強制一個瀏覽選擇。
局部選項:
局部選項為除了global外的各個
中的參數。其定義了共享服務的屬性。
comment =
設定共享服務的描述信息。
path =
設定共享服務的路徑,其中可以結合samba預定義的變數來設置。
hosts allow = host(subnet)
hosts deny = host(subnet)
與全局的hosts allow和hosts deny含義相同,其會覆蓋全局的設置。
read only = yes | no
設定該共享服務是否為只讀,該選項有一個同義選項writeable。
user = user(@group)
設定所有可能使用該共享服務的用戶,可以使用@group來設置群組group中的所有用戶賬號。該選項的值為列表,不同的項目之間使用空格或逗號隔開。在設置security = share時,客戶端要訪問某共享服務時提供的密碼會與該選項指定的所有用戶進行一一配對認證,若某用戶認證通過,則以該用戶許可權進行共享服務訪問,否則拒絕客戶端的訪問(設置security = share不是允許遊客訪問,只有guest ok = yes才是允許遊客訪問,切記!!!)。
valid users = user(@group)
設定能夠使用該共享服務的用戶和組,其值的格式與user選項一樣。
invalid users = user(@group)
設定不能夠使用該共享服務的用戶和組,其值的格式與user選項一樣。
read list = user(@group)
設定對該共享服務只有讀取許可權的用戶和組,其值的格式與user選項一樣。
write list = user(@group)
設定對該共享服務擁有讀寫許可權的用戶和組,其值的格式與user選項一樣。
admin list = user(@group)
設定對該共享服務擁有管理許可權的用戶和組,其值的格式與user選項一樣。
public = yes | no
設定該共享服務是否能夠被遊客訪問,其同義選項有guest ok。
create mode = mode
mode為八進制值,如0755,其默認值為0744。該選項指定的值用於過濾新建文件的訪問許可權,新建文件的默認許可權將與create mode指定的值進行按位與操作,將結果再與force create mode指定的值進行按位或操作,得到的結果即為新建文件的訪問許可權。
force create mode = mode
mode為八進制值,默認為0000。其作用參考選項create mode。
directory mode = mode
mode為八進制值,默認為0755。該選項指定的值用於過濾新建目錄的訪問許可權,新建目錄的默認許可權將與directory mode指定的值進行按位與操作,將結果再與force directory mode指定的值進行按位或操作,得到的結果即為新建目錄的訪問許可權。
force directory mode = mode
mode為八進制值,默認為0000。該選項的作用參考選項directory mode。
force user = user
強制設定新建文件的屬性onwer。若存在一個目錄,其允許guest可以寫,則guest就可以刪除。但設定force user為其他用戶,並設置create mode = 0755,則gues用戶不能夠刪除其新建文件。
上面只是簡單的介紹了一些重要的選項,並且沒有討論有關[printers]的選項說明,更多選項請man smb.conf進行查閱。
『貳』 如何設置linux的samba服務開機自啟動
不知道你用什麼什麼發行版.
在Arch中可以放在/etc/rc.conf 裡面的DAEMONS=(syslog-ng network netfs crond samba sshd) 中
如果是Gentoo
可以用rc-config add samba default
『叄』 伺服器Linux系統訪問Samba伺服器的步驟linux訪問samba
Linux是目前操作系統中使用最多的一種,而Samba是一個網路協議,以快速並安全的方式來處理本地系統與跨PC或網路操作系統之間的存儲文件和共享資料之間的連接。在Linux系統中訪問Samba伺服器,可以使用nmblookup及smbclient等工具。
一、用nmblookup命令查看Samba伺服器位置
nmblookup命令是網路訪問協議NetBIOS over TCP/IP的一個簡單命令-行客戶端工具,專門用於查詢網路上的Samba伺服器,格式為:
nmblookup -A [IP或主機名]
其中,IP或主機名用於指定查詢的主機,例如:
nmblookup -A 192.168.0.8
此命令用於查詢IP為192.168.0.8的Samba伺服器的位置。
二、用smbclient命令提取文件
smbclient命令用於提取Samba文件伺服器中指定目錄下的文件,格式為:
smbclient //IP地址/[共享文件夾] -U [用戶名]
例如:
smbclient //192.168.0.8/bbs -U admin
此命令用於提取IP為192.168.0.8的Samba伺服器上bbs目錄下的文件,用戶名為admin。
三、使用mount命令掛載Samba
mount命令是,Linux系統中掛載文件系統的命令,也可以用來掛載Samba伺服器上的共享文件,格式如下:
mount -t cifs -o username=[用戶名],password=[密碼] //IP地址/[共享文件夾] /mnt
例如:
mount -t cifs -o username=admin,password=123 //192.168.0.8/bbs /mnt
此命令用於將IP為192.168.0.8上的共享文件夾bbs掛載到/mnt目錄下,用戶名為admin,密碼為123。
最後,Samba服務在Linux系統中掛載,需要使用伺服器的IP地址及用戶名和密碼,可以通過nmblookup和smbclient等命令查詢和抓取Samba伺服器上的文件,也可以使用mount命令進行掛載。
『肆』 在Red Hat Linux下安裝配置Samba
Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟體,由伺服器及客戶端程序構成。通過Samba也可以快速實現Linux與Windows傳輸文件。下面由小編為大家演示在Red Hat Linux下安裝配置Samba。
1 安裝Samba
安裝samba,把samba的鏡像文件放入虛擬光碟機。
輸入命令mount /dev/cdrom /mnt/cdrom。
切換路徑,cd /mnt/cdrom。
使用命令rpm –ivh samba-3.0.4.1 rh9.386.rpm安裝samba,這里我已經安裝了。
退出掛載點並與光碟機斷開,使用命令cd和umount /mnt/cdrom。
2 配置Samba
修改samba下smb.conf文件,使用命令cd /etc/samba,並把smb.conf改名為smb.conf.old。
使用vi smb.conf創建新的samba配置文件,然後用testparm測試參數是否正確。
通過命令ntsysv關閉iptable服務,打開smb服務。
輸入命令service smb restart重啟samba。
3 配置網卡
配置IP,使用命令ifconfig檢查網卡是否啟動,若沒有啟動用netconfig命令重新配置IP。
使用命令service network restart重啟網卡。
進入/etc/sysconfig,用vi network命令修改主機名。
使用命令/etc/rc.d/init.d/network restart重啟linux,這里已經改了。
4 檢測網路
檢測網路,使用ping命令(物理機檢測虛擬機)。
Linux虛擬機檢測Windows物理機。
使用Windows物理機訪問Linux虛擬機,運行cmd,輸入\\IP(Linux虛擬機),其中的data是我共享的,在第二步的第2點可以看到共享的文件夾。 注意: 若要設置Samba 的訪問用戶名和密碼,作如下操作: 1. 創建一個Samba用戶,使用命令:smbpasswd –a username創建用戶名和密碼。 2. 在/etc/samba/smb.conf 的 [global] 段必須有:security = user 如果想不要密碼,可設為:security = share
虛擬機訪問Windows物理機,使用命令smbclient –L IP(Windows物理機) –U 用戶名(Windows物理機)。
下面就可以看到Windows物理機共享的東西,其中AAA是我Windows物理機共享的東西。
到此為止,恭喜您samba配置成功。
『伍』 在linux下如何把smb等服務加入開機啟動
SMB介紹:
用於網路文件共享。
一、下載或從光碟上找到SMB服務安裝包。
二、安裝(samba*代表其安裝包名稱):
# rpm -ivh samba*
三、配置SMB文件:
# vi /etc/samba/smb.conf
在「Share Definitions」區段添加如下內容:
[Test]
comment = Test Directories
path = /mnt/share
browseable = yes
writeable = yes
保存並退出。
添加一個用戶並設置密碼:
# useradd smbtest
# passwd smbtest
......
SMB與系統共用用戶名,但不共用密碼。也就是說,上面設置的用戶名對SMB有效,
但密碼對SMB無效,需用smbpasswd命令另外添加一個密碼。