1. 程式人生 > >centos6.5使用原始碼安裝samba

centos6.5使用原始碼安裝samba

本人也是剛剛開始接觸linux,學習到rpm包這個知識點時,用samba來練習安裝。其中也是遇到了許多問題,最後選擇了用原始碼來安裝samba。下面就把我的安裝過程記錄一下。

我的linux版本:centos6.5
這裡寫圖片描述
samba版本:samba-3.6.25(原始碼包連結:http://pan.baidu.com/s/1qXQixtE 密碼:911q)

1.使用原始碼來安裝samba

1.下載 samba 原始碼檔案到目錄 /data1 下並解壓:
這裡寫圖片描述
解壓之後出現samba-3.6.25資料夾
進入該資料夾下的source3資料夾
這裡寫圖片描述
2.進行原始碼編譯安裝
這裡寫圖片描述


如果編譯過程出現Error,看清楚什麼錯誤,我的出現了沒有gcc的錯誤,於是
yum -y gcc
解決問題後繼續安裝
這裡寫圖片描述
3.安裝完成之後進行配置動態連結庫
這裡寫圖片描述
編輯samba.conf檔案,並輸入所安裝的 samba 庫位置的絕對路徑(/usr/local/samba/lib)即可;之後執行命令 #ldconfig 重新讀取 /etc/ld.so.conf.d 目錄下的配置檔案
這裡寫圖片描述
ldconfig命令的用途,主要是在預設搜尋目錄(/lib、/lib64和 /usr/lib)以及動態庫配置目錄 /etc/ld.so.conf內的檔案,搜尋出可共享的動態連結庫(lib*.so*),進而創建出動態裝入程式(ld.so)所需的連線和快取檔案。
4. 建立 samba的配置檔案 smb.conf
進入到samba的主資料夾下
這裡寫圖片描述

注意要改名為smb.conf , 不然是無法識別的
(安裝目錄下有很多smb.conf的例子,但/usr/local/samba/lib下卻沒有,所以必須copy.
也可以用連結的方法:
建立配置檔案
mkdir /usr/local/samba/etc
vim /usr/local/samba/etc/smb.conf
編輯完配置檔案後,儲存。
ln –s /usr/local/samba/etc/smb.conf /usr/local/samba/lib/smb.conf )

5 配置smb.conf
這裡寫圖片描述
配置資訊根據個人情況,我會在下方貼出配置選項的解釋。這裡暫時先不做改動。(#/usr/local/samba/bin/testparm 來測試smb.conf是否配置成功)
6 增加一個使用者
這裡寫圖片描述


增加 smb使用者
這裡寫圖片描述
7啟動服務
(1)關閉防火牆和 selinux( 通過命令 #/etc/rc.d/init.d/ iptables stop 關閉防火牆,#setenforce 0臨時關閉selinux)

(2)配置生產環境實現當初設計功能並測試成功

(3)開啟 selinux 安全機制並配置服務的安全上下文,使相應服務的功能符合當初的生產環境設計。

(4)開啟防火牆,開啟相應服務的埠

這裡先把防火牆SELinux關閉。然後啟動服務
#/usr/local/samba/sbin/smbd -D
#/usr/local/samba/sbin/nmbd -D
通過命令 #ps -ef | grep smbd 和 #ps -ef | grep nmbd 檢查啟動的服務。
這裡寫圖片描述

啟動完成,到Windows上輸入伺服器IP,如\\192.168.1.3\test。輸入“test"和密碼,就可以看到Linux上/home/test的資料夾內容了。

最後一步,需要做的就是把smb服務設為開機啟動。
vi /etc/rc.d/rc.local
加入/usr/local/samba/sbin/smbd -D
;/usr/local/samba/sbin/nmbd -D 就可以了。

Samba的主配置檔案為/etc/samba/smb.conf

主配置檔案

Global Settings (55-245行)
  該設定都是與Samba服務整體執行環境有關的選項,它的設定專案是針對所有共享資源的。

Share Definitions (246-尾行)
  該設定針對的是共享目錄個別的設定,只對當前的共享資源起作用。

全域性引數:

==================Global Settings ===================

[global]

config file = /usr/local/samba/lib/smb.conf.%m
說明:config file可以讓你使用另一個配置檔案來覆蓋預設的配置檔案。如果檔案不存在,則該項無效。這個引數很有用,可以使得samba配置更靈活,可以讓一臺 samba伺服器模擬多臺不同配置的伺服器。比如,你想讓PC1(主機名)這臺電腦在訪問Samba Server時使用它自己的配置檔案,那麼先在/etc/samba/host/下為PC1配置一個名為smb.conf.pc1的檔案,然後在 smb.conf中加入:config file = /etc/samba/host/smb.conf.%m。這樣當PC1請求連線Samba Server時,smb.conf.%m就被替換成smb.conf.pc1。這樣,對於PC1來說,它所使用的Samba服務就是由 smb.conf.pc1定義的,而其他機器訪問Samba Server則還是應用smb.conf。

workgroup = WORKGROUP
說明:設定 Samba Server 所要加入的工作組或者域。

server string = Samba Server Version %v
說明:設定 Samba Server 的註釋,可以是任何字串,也可以不填。巨集%v表示顯示Samba的版本號。

netbios name = smbserver
說明:設定Samba Server的NetBIOS名稱。如果不填,則預設會使用該伺服器的DNS名稱的第一部分。netbios name和workgroup名字不要設定成一樣了。

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 剛好相反。
例如: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,M2
表示容許來自M1和M2兩臺計算機連線
hosts [email protected]
表示容許來自pega網域的所有計算機連線

max connections = 0
說明:max connections用來指定連線Samba Server的最大連線數目。如果超出連線數目,則新的連線請求將被拒絕。0表示不限制。

deadtime = 0
說明:deadtime用來設定斷掉一個沒有開啟任何檔案的連線的時間。單位是分鐘,0代表Samba Server不自動切斷任何連線。

time server = yes/no
說明:time server用來設定讓nmdb成為windows客戶端的時間伺服器。

log file = /var/log/samba/log.%m
說明:設定Samba Server日誌檔案的儲存位置以及日誌檔名稱。在檔名後加個巨集%m(主機名),表示對每臺訪問Samba Server的機器都單獨記錄一個日誌檔案。如果pc1、pc2訪問過Samba Server,就會在/var/log/samba目錄下留下log.pc1和log.pc2兩個日誌檔案。

max log size = 50
說明:設定Samba Server日誌檔案的最大容量,單位為kB,0代表不限制。

security = user
說明:設定使用者訪問Samba Server的驗證方式,一共有四種驗證方式。
1. share:使用者訪問Samba Server不需要提供使用者名稱和口令, 安全效能較低。
2. user:Samba Server共享目錄只能被授權的使用者訪問,由Samba Server負責檢查賬號和密碼的正確性。賬號和密碼要在本Samba Server中建立。
3. server:依靠其他Windows NT/2000或Samba Server來驗證使用者的賬號和密碼,是一種代理驗證。此種安全模式下,系統管理員可以把所有的Windows使用者和口令集中到一個NT系統上,使用 Windows NT進行Samba認證, 遠端伺服器可以自動認證全部使用者和口令,如果認證失敗,Samba將使用使用者級安全模式作為替代的方式。
4. domain:域安全級別,使用主域控制器(PDC)來完成認證。

passdb backend = tdbsam
說明:passdb backend就是使用者後臺的意思。目前有三種後臺:smbpasswd、tdbsam和ldapsam。sam應該是security account manager(安全賬戶管理)的簡寫。
1.smbpasswd:該方式是使用smb自己的工具smbpasswd來給系統使用者(真實使用者或者虛擬使用者)設定一個Samba密碼,客戶端就用這個密碼來訪問Samba的資源。smbpasswd檔案預設在/etc/samba目錄下,不過有時候要手工建立該檔案。
2.tdbsam: 該方式則是使用一個數據庫檔案來建立使用者資料庫。資料庫檔案叫passdb.tdb,預設在/etc/samba目錄下。passdb.tdb使用者資料庫 可以使用smbpasswd –a來建立Samba使用者,不過要建立的Samba使用者必須先是系統使用者。我們也可以使用pdbedit命令來建立Samba賬戶。pdbedit命令的 引數很多,我們列出幾個主要的。
  pdbedit –a username:新建Samba賬戶。
  pdbedit –x username:刪除Samba賬戶。
  pdbedit –L:列出Samba使用者列表,讀取passdb.tdb資料庫檔案。
  pdbedit –Lv:列出Samba使用者列表的詳細資訊。
  pdbedit –c “[D]” –u username:暫停該Samba使用者的賬號。
  pdbedit –c “[]” –u username:恢復該Samba使用者的賬號。
3.ldapsam:該方式則是基於LDAP的賬戶管理方式來驗證使用者。首先要建立LDAP服務,然後設定“passdb backend = ldapsam:ldap://LDAP Server”

encrypt passwords = yes/no
說明:是否將認證密碼加密。因為現在windows作業系統都是使用加密密碼,所以一般要開啟此項。不過配置檔案預設已開啟。

smb passwd file = /etc/samba/smbpasswd
說明:用來定義samba使用者的密碼檔案。smbpasswd檔案如果沒有那就要手工新建。

username map = /etc/samba/smbusers
說明:用來定義使用者名稱對映,比如可以將root換成administrator、admin等。不過要事先在smbusers檔案中定義好。比如:root = administrator admin,這樣就可以用administrator或admin這兩個使用者來代替root登陸Samba Server,更貼近windows使用者的習慣。

guest account = nobody
說明:用來設定guest使用者名稱。

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
說明:用來設定伺服器和客戶端之間會話的Socket選項,可以優化傳輸速度。

domain master = yes/no
說明:設定Samba伺服器是否要成為網域主瀏覽器,網域主瀏覽器可以管理跨子網域的瀏覽服務。

local master = yes/no
說明:local master用來指定Samba Server是否試圖成為本地網域主瀏覽器。如果設為no,則永遠不會成為本地網域主瀏覽器。但是即使設定為yes,也不等於該Samba Server就能成為主瀏覽器,還需要參加選舉。

preferred master = yes/no
說明:設定Samba Server一開機就強迫進行主瀏覽器選舉,可以提高Samba Server成為本地網域主瀏覽器的機會。如果該引數指定為yes時,最好把domain master也指定為yes。使用該引數時要注意:如果在本Samba Server所在的子網有其他的機器(不論是windows NT還是其他Samba Server)也指定為首要主瀏覽器時,那麼這些機器將會因為爭奪主瀏覽器而在網路上大發廣播,影響網路效能。
如果同一個區域內有多臺Samba Server,將上面三個引數設定在一臺即可。

os level = 200
說明:設定samba伺服器的os level。該引數決定Samba Server是否有機會成為本地網域的主瀏覽器。os level從0到255,winNT的os level是32,win95/98的os level是1。Windows 2000的os level是64。如果設定為0,則意味著Samba Server將失去瀏覽選擇。如果想讓Samba Server成為PDC,那麼將它的os level值設大些。

domain logons = yes/no
說明:設定Samba Server是否要做為本地域控制器。主域控制器和備份域控制器都需要開啟此項。

logon script = %u.bat
說明:當使用者用windows客戶端登陸,那麼Samba將提供一個登陸檔。如果設定成%u.bat,那麼就要為每個使用者提供一個登陸檔。如果人比較多, 那就比較麻煩。可以設定成一個具體的檔名,比如start.bat,那麼使用者登陸後都會去執行start.bat,而不用為每個使用者設定一個登陸檔了。 這個檔案要放置在[netlogon]的path設定的目錄路徑下。

wins support = yes/no
說明:設定samba伺服器是否提供wins服務。

wins server = wins伺服器IP地址
說明:設定Samba Server是否使用別的wins伺服器提供wins服務。

wins proxy = yes/no
說明:設定Samba Server是否開啟wins代理服務。

dns proxy = yes/no
說明:設定Samba Server是否開啟dns代理服務。

load printers = yes/no
說明:設定是否在啟動Samba時就共享印表機。

printcap name = cups
說明:設定共享印表機的配置檔案。

printing = cups
說明:設定Samba共享印表機的型別。現在支援的列印系統有:bsd, sysv, plp, lprng, aix, hpux, qnx

共享引數:

================== Share Definitions ==================

[共享名]

comment = 任意字串
說明:comment是對該共享的描述,可以是任意字串。

path = 共享目錄路徑
說 明:path用來指定共享目錄的路徑。可以用%u、%m這樣的巨集來代替路徑裡的unix使用者和客戶機的Netbios名,用巨集表示主要用於[homes] 共享域。例如:如果我們不打算用home段做為客戶的共享,而是在/home/share/下為每個Linux使用者以他的使用者名稱建個目錄,作為他的共享目 錄,這樣path就可以寫成:path = /home/share/%u; 。使用者在連線到這共享時具體的路徑會被他的使用者名稱代替,要注意這個使用者名稱路徑一定要存在,否則,客戶機在訪問時會找不到網路路徑。同樣,如果我們不是以用 戶來劃分目錄,而是以客戶機來劃分目錄,為網路上每臺可以訪問samba的機器都各自建個以它的netbios名的路徑,作為不同機器的共享資源,就可以 這樣寫:path = /home/share/%m 。

browseable = yes/no
說明:browseable用來指定該共享是否可以瀏覽。

writable = yes/no
說明:writable用來指定該共享路徑是否可寫。

available = yes/no
說明:available用來指定該共享資源是否可用。

admin users = 該共享的管理者
說明:admin users用來指定該共享的管理員(對該共享具有完全控制權限)。在samba 3.0中,如果使用者驗證方式設定成“security=share”時,此項無效。
例如:admin users =david,sandy(多個使用者中間用逗號隔開)。

valid users = 允許訪問該共享的使用者
說明:valid users用來指定允許訪問該共享資源的使用者。
例如:valid users = david,@dave,@tech(多個使用者或者組中間用逗號隔開,如果要加入一個組就用“@組名”表示。)

invalid users = 禁止訪問該共享的使用者
說明:invalid users用來指定不允許訪問該共享資源的使用者。
例如:invalid users = root,@bob(多個使用者或者組中間用逗號隔開。)

write list = 允許寫入該共享的使用者
說明:write list用來指定可以在該共享下寫入檔案的使用者。
例如:write list = david,@dave

public = yes/no
說明:public用來指定該共享是否允許guest賬戶訪問。

guest ok = yes/no
說明:意義同“public”。

幾個特殊共享:
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
; valid users = MYDOMAIN\%S

[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes

[netlogon]
comment = Network Logon Service
path = /var/lib/samba/netlogon
guest ok = yes
writable = no
share modes = no

[Profiles]
path = /var/lib/samba/profiles
browseable = no
guest ok = yes

Samba安裝好後,使用testparm命令可以測試smb.conf配置是否正確。使用testparm –v命令可以詳細的列出smb.conf支援的配置引數

2.使用rpm包來安裝samba不成功
首先rpm -qa | grep samba 查詢本機是否安裝samba
我查詢到我的已經安裝了samba
使用rpm -e –nodepes 包名刪除(由於已經刪除圖片就不貼了)
之後選擇安裝linux映象當中的rpm包來進行安裝
首先掛載
這裡寫圖片描述
進入 /mnt/cdrom/Packages
這裡寫圖片描述
查詢samba的rpm包,之後將其複製到/tmp 目錄下
這裡寫圖片描述
(改天在補)

相關推薦

Centos6.5安裝 samba服務

unix系統 tab 協議 create hang pub 通信 reat conf samba介紹 在 Windows網絡環境中,主機之間進行文件和打印機共享是通過微軟公司自己的SMB/CIFS網絡協議實現的。SMB( Server Message Block,服務消息塊

centos6.5 原始碼安裝mysql5.6.40

由於mysql5.6在單機執行多例項時需要原始碼安裝mysql. 特此記錄下如何在centos中原始碼安裝mysql. 實驗環境: centos6.5 mysql5.6.40 準備工作: 下載mysql原始碼包:https://dev.mysql.com/downloads/file/

Centos6.5原始碼安裝MySQL5.6

騰訊雲CentOS6.5,安裝mysql,之前一直遇到一個問題:libc.so.6(GLIBC_2.14)(64bit) is needed by xxxxx 的問題。查後發現,有人說是yum的原因。因此轉向原始碼安裝。 “如果你yum或者rpm升級mysql中,可能跟我

CentOS6.5原始碼安裝zabbix4.0

最新公司需要上一套監控系統,一番調研下來,決定使用zabbix,下班時間搭了一套出來,過程如下 環境如下: OS CentOS6.5zabbix 4.0 4.0.2apche 1.3.12或以上 mysql 5.0.3或以上 5.1.73php 5.4.0或以上 5.6 建議先搭建lamp環境,環境搭建

centos6.5 原始碼安裝gcc-4.8.5

1、下載gcc-4.8.5.tar.bz22、tar-xvf gcc-4.8.5.tar.bz2 解壓到為gcc-4.8.53、cd gcc-4.8.5 進入檔案目錄4、./contrib/download_prerequisites 在gcc-4.8.5目錄下執行該命令,該

centos6.5使用原始碼安裝samba

本人也是剛剛開始接觸linux,學習到rpm包這個知識點時,用samba來練習安裝。其中也是遇到了許多問題,最後選擇了用原始碼來安裝samba。下面就把我的安裝過程記錄一下。 我的linux版本:centos6.5 samba版本:samba-3

centos6.5 原始碼方式安裝python2.7.8

./configure make Python build finished, but the necessary bits to build these modules were not found: _curses            _curses_panel  

centOS6.4 原始碼安裝Mysql 5.6.39

1、關閉防火牆 service iptables stop chkconfig iptables off setenforce 0 vi /etc/selinux/config SELINUX=permissive 2、配置sysctl.c

centos6.5安裝docke過程

centos devel x86 修改 版本 span yum ice 順序 由於需要到使用到docker,centOs6.5的內核是 2.6.32-431.el6.x86_64,需要更新到3.0以上。 安裝過程。 1 下載 kernel-ml-aufs-3.10.5-3.

Centos6.5 編譯安裝Mysql 5.5.3.7

oca eight file ont libxml kconfig 最大值 fig toc 1、準備依賴包 yum install gcc* c++ * bison autoconfautomakezlib* libxml* ncurses-devellibmcrypt*

linux CentOS6.5 yum安裝mysql 5.6

linux centos6.5 yum安裝mysql 5.6直接按步驟安裝# wget # rpm -ivh mysql-community-release-el6-5.noarch.rpm [[email protected]/* */ ~]# yum repolist all | grep

centos6.5安裝python3安裝、python3虛擬環境創建venv

替代品 虛擬環境 由於 需要 tools python2.6 ipy模塊 python2 pip3   原因:在安裝完centos6.5後,通過命令行鍵入python時,默認為python2.6.6版本,系統並沒有安裝python3版本。又想學習python3,因此需要在c

centos6.5離線安裝pandas

das .rpm 虛擬機 ref eve x86_64 std .gz 網上   由於筆記本跑不動很多大賽的數據,遂轉至申請的虛擬機(centos6.5)中,奈何學校的虛擬機沒網,就開始了離線安裝pandas的道路,當中有踩了好些坑,於是便產生了這篇文章~   首先,自帶的

CentOS6.5 yum安裝mysql5.7.18

target 密碼 ssl align -1 下載 targe log eas 由於最近工作要做MySQL集群,所以需要安裝MySQL,本機可以聯網,如不能聯網可參看rpm安裝方法,廢話不多,具體安裝步驟如下: 1,下載MySQL   wget https://repo.m

centos6.5 編譯安裝pgsql9.4.4 和主從流復制

postgresql 編譯安裝 主從流復制## postgresql yum 源網站https://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/repoview/依賴包readline readline-devel zlib zlib-devel ncurses-

centos6.5 yum安裝

get .rpm oot 系統 ase 下載 report col com 查看、卸載已安裝的yum包 查看已安裝的yum包 [[email protected] ~]# rpm -qa|grep yum yum-metadata-parser-1.1.2-16

centos6.5編譯安裝nginx

php 相關 oca module eve tar 瀏覽器 reat nss 一、下載nginx安裝包,官網下載中心http://nginx.org/download [[email protected] software]# wget http://nginx

Centos6.5安裝cacti-0.8.7i

cacti安裝(初學者)(因為我是新手,在安裝時有很多大大小小的問題,我都在這裏備註上了,歡迎萌新們參考)Cacti功能Cacti是通過 snmpget來獲取數據,使用 RRDtool繪畫圖形,而且你完全可以不需要了解RRDtool復雜的參數。它提供了非常強大的數據和用戶管理功能,可以指定每一個用戶能查看樹狀

centos6.5 mysql 安裝

serve kcon ati code mysql- release x86 mysqld ase 1.檢測系統是否自帶安裝mysql yum list installed | grep mysql 2.刪除系統自帶的mysql及其依賴 yum -y remove mys

記錄Centos6.5安裝vsftp服務及配置文件說明

linux 運維 vsftp 參考文章:http://blog.csdn.net/zwhfyy/article/details/1547454 http://www.linuxidc.com/Linux/2015-06/118442.htmvsftp 的優點:除了安全、高速、穩定之外,vsftpd