samba伺服器安裝和配置
作為後臺開發人員,在程式碼開發過程中,我們開發流程一般是本地開發->同步到伺服器編譯->svn提交。如何在團隊開發中高效處理這些步驟是個很基本的問題。通常我們的本地環境大多是Windows,通過ssh客戶端遠端連線到伺服器,一般由於後臺程式碼的龐大,我們的都會有自己的編譯環境,如何在開發過程中及時的將程式碼編譯,更新到版本庫有很多種方法,例如有sshclient,securecrt都可以支援ftp協議進行檔案傳輸,還有rsync for windows。但這種更新檔案的方法第一需要手動進行,第二是全量更新,最後有時候會忘記更改了那些檔案,只能把不確定的全部更新了。
為了能夠在Windows和unix之間進行檔案的共享,支援檔案的直接修改,而不是通過拷貝檔案來進行更新,samba 誕生了。我們都知道unix之間可以NFS伺服器來實現檔案的共享,Windows之間通過CIFS,即網路上的芳鄰來進行共享,samba的誕生就是為了能夠使Windows能夠訪問Unix的資源,包括檔案,印表機等。
1.samba安裝和啟動
samba的原始碼安裝採用最新版本samba-4.1.14,官網下載。安裝過程如下:
$ sudo mkdir /usr/local/samba-4.1.14 $ ./configure --prefix=/usr/local/samba-4.1.14 ... Checking for program xsltproc : not found Checking for program python : /usr/bin/python Checking for program python : /usr/bin/python Checking for program python : /usr/bin/python Checking for Python version >= 2.5.0 : ok 2.7.6 Checking for library python2.7 : not found Checking for library python2.7 : yes Checking for program python2.7-config : not found Checking for program python-config-2.7 : not found Checking for custom code : Could not find the python development headers /home/anonymalias/Downloads/samba-4.1.14/wscript:100: error: the configuration failed (see '/home/anonymalias/Downloads/samba-4.1.14/bin/config.log')
上面錯誤的原因是samba必須依賴python,執行
$ sudo apt-get install python-dev
後面就是make && sudo make install,安裝ok後,安裝目錄結構如下:
/usr/local/samba-4.1.14$ ls
bin etc include lib private sbin share va
- 將原始碼檔案下預設的conf檔案拷貝到安裝目錄下的etc目錄中
/usr/local/samba-4.1.14$ cp /home/anonymalias/Downloads/samba-4.1.14/examples/smb.conf.default etc/smb.conf
- 修改smb.conf中配置
global段新增如下欄位
[global]
...
netbios name = ubuntu
共享資源欄位採用預設配置
[homes]
comment = Home Directories
browseable = no
writable = yes
# NOTE: If you have a BSD-style print system there is no need to
# specifically define each individual printer
[printers]
comment = All Printers
path = /usr/spool/samba
browseable = no
# Set public = yes to allow user 'guest account' to print
guest ok = no
writable = no
printable = yes
- 新增使用者名稱為ubuntu的賬戶,
/usr/local/samba-4.1.14$ sudo bin/smbpasswd -a ubuntu
New SMB password:
Retype new SMB password:
samba伺服器的使用者是依賴於linux的使用者,只能新增linux中已存在的使用者,否則會出現如下錯誤:
/usr/local/samba-4.1.14$ sudo bin/smbpasswd -a user1
New SMB password:
Retype new SMB password:
Failed to add entry for user user1.
- 啟動samba 服務
/usr/local/samba-4.1.14$ sudo sbin/nmbd
/usr/local/samba-4.1.14$ sudo sbin/smbd
在windwos檔案管理器或直接win+R,輸入server ip,可以看到如下介面:
2.smb.conf配置引數
下面解釋一下conf中比較重要的引數的含義。smb.conf配置包含兩部分:全域性配置和共享資源配置。全域性配置包括:工作組、主機的 NetBIOS 名稱、字元編碼的顯示、登入檔案的設定、 是否使用密碼以及使用密碼驗證的機制等等。共享資源配置主要是對各個共享資源的許可權進行限定。
引數配置中可以使用的特殊字元
%m:代表 Client 端的 NetBIOS 主機名喔!,即Windows的主機名
%M:代表 Client 端的 Internet 主機名喔!就是 HOSTNAME。
%L:代表 SAMBA 主機的 NetBIOS 主機名。
%H:代表使用者的家目錄。
%U:代表目前登入的使用者的使用者名稱
%g:代表登入的使用者的組名。
%h:代表目前這部 SAMBA 主機的 HOSTNAME 喔!注意是 hostname 不是NetBIOS name 喔!
%I :代表 Client 的 IP 咯。
%T:代表目前的日期與時間
#======================= Global Settings =====================================
[global]
// samba server要加入的工作組
workgroup = mygroup
// samba伺服器的描述
server string = Samba Server
// netbios主機名,對於windows是其hostname,netbios name不能相同
netbios name = ubuntu
//伺服器可擔任主域控制器、獨立域伺服器和域成員伺服器等角色
server role = standalone server/member server
//所有samba系統主機所不能正確識別的使用者都對映成guest使用者
map to guest = bad user
//對每一個登入使用者使用不同配置檔案來覆蓋預設的配置檔案。如果檔案不存在,則該項無效。這個引數很有用,可以使得samba配置更靈活,讓一臺samba伺服器模擬多臺不同配置的伺服器
config file = /usr/local/samba/etc/smb.conf.%m
//log檔案路徑
log file = /usr/local/samba/var/log.%m
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
說明:設定Samba Server監聽哪些網絡卡,可以寫網絡卡名,也可以寫該網絡卡的IP地址。
hosts allow = 127. 192.168.1. 192.168.10.1
說明:表示允許連線到Samba Server的客戶端,多個引數以空格隔開。可以用一個IP表示,也可以用一個網段表示。hosts deny 與hosts allow 剛好相反。
# 密碼資料庫格式,之前samba伺服器的使用者資訊都是以資料檔案資訊存放,為了加快速度, 目前密碼檔案已經轉為使用資料庫了!
# 預設的資料庫格式為tdbsam ,存放在private/passwd.tdb,早期使用smbpasswd命令來管理使用者密碼,
# 後來使用 TDB 資料庫,因此建議使用新的 pdbedit 指令來管理使用者資料,smbpasswd仍然可以使用
passdb backend = tdbsam
# 使用以Client端的NetBIOS主機名命名的配置檔案,
; include = /usr/local/samba/lib/smb.conf.%m
#=============== Share Definitions ==============================
共享資源的配置如下:
[分享資源的名稱]
引數 = 內容
最常用的引數內容有:
//目錄的說明,只起到註釋作用
comment = 任意字串
//共享目錄的路徑
path = linux路徑
//是否允許該目錄被所有人看到,預設是yes
browseable = yes/no
//是否可寫入
writable = yes/no
//只讀,與writable同時設定為yes時,遵循覆蓋原則
read only = yes/no
//允許/禁止登入的使用者,使用者之前用逗號分隔,組名前要加@
valid users = user1, user2, @group1
invalid users = user1, user2, @group1
//允許寫入該共享的使用者
write list = user1, user2, @group1
//是否允許guest訪問,public和guest ok 與valid users引數是互斥的,有valid users回覆蓋public和guest ok的yes選項
public = yes/no
guest ok = yes/no
下面是預設smb.conf中提供的幾個示例:
# 這是一個很特殊的共享目錄配置,最新的samba中,該共享目錄的配置表示,每個使用者登入都會進入自己的home目錄,不需要配置valid users = %S
[homes]
comment = Home Directories
browseable = no
writable = yes
#用於所有使用者共享資源的目錄
[tmp]
comment = Temporary file space
path = /tmp
read only = no
public = yes
#用於使用者向其他使用者共享資源的目錄,只有staff中的使用者可以修改該目錄
[public]
comment = Public Stuff
path = /home/samba
public = yes
writable = no
printable = no
write list = @staff
#fred的私有使用者
[fredsdir]
comment = Fred's Service
path = /usr/somewhere/private
valid users = fred
public = no
writable = yes
printable = no
引數配置完後可以通過bin目錄下testparm來測試一下smb.conf的配置,testparm -v可以檢視global域中未配置的引數的預設值:
[email protected]:/usr/local/samba-4.1.14$ bin/testparm -v
Load smb config files from /usr/local/samba-4.1.14/etc/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[public]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
dos charset = CP850
unix charset = UTF-8
workgroup = MYGROUP
realm =
netbios name = UBUNTU
netbios aliases =
netbios scope =
server string = Samba Server
interfaces =
bind interfaces only = No
server role = standalone server
security = USER
auth methods =
encrypt passwords = Yes
client schannel = Auto
server schannel = Auto
allow trusted domains = Yes
map to guest = Bad User
null passwords = No
obey pam restrictions = No
password server = *
smb passwd file = /usr/local/samba-4.1.14/private/smbpasswd
...
global域中有一個很強悍的引數map to guest = bad user,這個配置的意思是將所有samba系統主機所不能正確識別的使用者都對映成guest使用者,這樣其他主機登入samba伺服器首先就不需要輸入使用者名稱密碼,可以看到所有browseable = yes 的共享資源目錄。如下配置:
[global]
...
map to guest = bad user
...
[tmp]
comment = Temporary file space
path = /tmp
read only = no
public = yes
[public]
comment = Public Stuff
path = /home/samba
valid users = ubuntu
public = yes
writable = no
printable = no
通過上面配置,重啟smbd程序,可以得到如下圖,不需要輸入密碼就可以看到可以瀏覽的tmp和public,當如需要檢視public資源時,才會提示輸入密碼:
3.samba伺服器的其他
SAMBA 服務主要通過兩個daemon服務來進行管理:nmbd :用來管理工作組、NetBIOS name 等等的解析。主要利用 UDP 協議開啟 port 137, 138 來負責名稱解析的任務;
smbd :用來管理 SAMBA 主機分享的目錄、檔案與印表機等等。 主要利用可靠的 TCP 協議來傳輸資料,開放的埠口為 139及 445(不一定存在)
參考文章:
相關推薦
samba伺服器安裝和配置
作為後臺開發人員,在程式碼開發過程中,我們開發流程一般是本地開發->同步到伺服器編譯->svn提交。如何在團隊開發中高效處理這些步驟是個很基本的問題。通常我們的本地環境大多是Windows,通過ssh客戶端遠端連線到伺服器,一般由於後臺程式碼的龐大,我們的都會有
Ubuntu 16.04 文件服務器--samba的安裝和配置
放置 chmod 免費 update 執行 訪問服務器 ubuntu 並保存 虛擬 參考:http://one.ifof1.cn/ Samba是在Linux系統上實現的SMB(Server Messages Block,信息服務塊)協議的一款免費軟件。它實現在局域網內共享文
Linux-mysql伺服器安裝和配置
Linux 安裝mysql服務一 、yum安裝 1、檢視yum倉庫中可以安裝的mysql-server: yum list | grep mysql 2、安裝mysq
RedHat 安裝和配置samba伺服器
# ----------------------- Standalone Server Options ------------------------ # # Security can be set to user, share(deprecated) or server(deprecated) # # B
Window 7安裝和配置Apache2 4伺服器(by 星空武哥)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
安裝和配置TOMCAT伺服器
1.下載apache-tomcat-6.0.39.zip 2.解壓 3.配置環境變數 TOMCAT_HOME=E:\e\apache-tomcat-6.0.39 在path中加上TOMCAT_HOME ;%TMCAT_HOME%/b
Ubuntu 14.04 Web伺服器--Apache的安裝和配置
命令列安裝Apache 開啟"終端視窗",輸入"sudo apt-get install apache2"-->回車-->輸入"root使用者的密碼"-->回車-->輸入"y"-->回車,安裝完成
Domino整合Portlet開發----安裝和配置Domino 6.5伺服器
Domino整合Portlet開發 企業內的工作流產品較多,例如Domino、BPM等。據我們統計,其中70%以上的企業採用的工作流產品是基於Domino的定製開發或基於Domino衍生產品的定製開發,例如,神州數碼公司、慧點科技公司的工作流產品就是在Domino基礎上二次開發而生成的。本節
如何在Ubuntu 18.04上安裝和配置Apache 2 Web伺服器
什麼是Apache Web Server? Apache或Apache HTTP伺服器是一個免費的開源Web伺服器,由Apache軟體基金(Apache Software Foundation)開發和維護。它的受歡迎程度可以通過以下事實來判斷:全球約有46%的網站由Apache提供支援。 Apache允許網
Ubuntu FTP伺服器--vsftpd的安裝和配置
方法/步驟 更新源列表 開啟"終端視窗",輸入"sudo apt-get update"-->回車-->"輸入當前登入使用者的管理員密碼"-->回車,就可以了。如果不執行該命令,直接安裝vsftpd,會出現"有 幾個軟體包無法下載,您可以執行apt-get up
Centos7命令列下安裝和配置Apache伺服器
第一步: 首先安裝centos系統,這個比較簡單,只是注意安裝的時候不要最小化安裝,否則系統內容比較少,需要自己重新配置。新手的話建議安裝帶有圖形介面的centos系統,方便自己檢查和驗證,KDE介面做的還是不錯的。 第二步: 安裝Apache服務。Apache在c
Linux DNS 伺服器安裝、配置和維護
每個 IP 地址都可以有一個主機名,主機名由一個或多個字串組成,字串之間用小數點隔開。有了主機名,就不要死記硬背每臺 IP 裝置的 IP 地址,只要記住相對直觀有意義的主機名就行了。這就是 DNS 協議所要完成的功能。 今天我們將討論DNS伺服器,特別是Linux
IIS伺服器的安裝和配置
IIS:全稱(Internet information services) 用處:釋出一個web網站 安裝步驟:控制面板--》程式--》啟用或關閉Windows功能--》Internet information services(勾選) 檢驗是否安裝成功的方法是使用瀏覽器訪問:localho
ubuntu14.04 samba伺服器安裝配置
Author: cjh Theme: samba install andconfiguration 在介紹如何安裝配置samba之前,先簡單介紹linux中兩個命令的區別分別是update和upgrade。 update update是同步 /etc/apt/sourc
【Apache-Server】安裝和配置Apache2.4伺服器(在Windows下)
一、版本介紹及安裝過程 首先我們要先下載Apache2.4伺服器:http://httpd.apache.org/。 關於現在那個版本的伺服器我這裡要說明一下,Apache有本身的伺服器是不能使用的,必須要先編譯才可以使用的。但是在他的官網上也提供了第三方編
Ubuntu遠端登入伺服器——SSH的安裝和配置
1、安裝sshsudo apt install openssh-server需要下載 636 kB 的歸檔。解壓縮後會消耗 5,145 kB 的額外空間。您希望繼續執行嗎? [Y/n] y2、檢視ssh服務是否啟動sudo ps -e |grep ssh有sshd,說明ssh
BT伺服器的在linux安裝和配置
BT是BitTorrent(位元流)的簡稱,BT的特點是使用者下載的同時,也在為其它使用者提供上傳,所以不會像FTP伺服器那樣隨著使用者數的增加而導致下載速度降低。恰恰相反,對於BT下載而言,下載的人越多速度越快。 BT下載首先在第一個共享端(或稱為Downloader)把一個檔案分成N個部分,A使用者可以從
james3.0郵件伺服器的安裝和配置
1.先在官網下載apache-james-3.0-beta4-app.zip; 2.解壓該壓縮包 為 apache-james-3.0-beta4; 3.開啟cmd.exe.輸入命令列進入該檔案。 4.執行結束後會出現各個埠的埠號。 5.然後再執行james instal
010 Linux 下通過yum、apt、dnf方式安裝和配置Nginx伺服器
一、安裝 Centos系統 1、安裝Nginx源。 Centos7下:#rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
fastdfs檔案伺服器的基本安裝和配置
感謝各位的分享:說明: 系統:阿里雲的centos 7 nginx:nginx-1.13.9 fastdfs:fastdfs-5.11一、準備工作安裝相關依賴yum -y install make cmake gcc gcc-c++ bison-devel