Samba:Debian上的獨立服務器

你好朋友!。 如果我們想擁有一台獨立服務器(獨立)共享資源 從我們的工作站或一小群機器; 或對於沒有Microsoft樣式域控制器的LAN,最簡單的方法是使用Samba。

有一些用於此目的的圖形工具,以及通過Web“ SWAT”管理Samba的工具。 然而, 我們推薦 手動開始在這個美好世界中的初學者。 這並不像許多人想像的那樣困難或邪惡。 在此過程中,您會學到很多有關SMB / CIFS網絡以及Linux文件系統上的權限的知識。

在繼續之前,我們建議閱讀:

我們不會看到 如何使用Samba共享打印機。 對於那些希望將此套件用於這些目的的人,我們建議閱讀隨附的文檔,如 桑巴:必要的介紹。 您還可以閱讀文章 CUPS:如何輕鬆使用和配置打印機.

要考慮的基本要點

  • 儘管圍繞Active Directory及其域控制器的光環(在很多情況下不是必需的或利用不充分的),但是安裝和配置獨立的Samba服務器是有效且可靠的選擇。
  • 根據我們的需求,獨立服務器可以是安全的,也可以是不安全的,我們可以通過簡單或複雜的方式對其進行配置。
  • 用戶身份驗證是在資源所在的服務器本身上執行的。
  • 為了使用戶能夠從遠程計算機訪問資源,還必須在Samba用戶庫中註冊他們。
  • 我們只能將服務器或台式機上已經存在的那些用戶添加到Samba用戶數據庫中。
  • 獨立的Samba服務器不像域控制器那樣提供網絡登錄。 它還不提供登錄到域。
  • 我們更改和/或向文件添加參數的次數越少 /etc/smb.conf 如果不先詳細了解我們要實現的目標,那就更好了。
  • Samba中的資源共享服務可在Linux文件系統上使用,包括其固有的安全性。 通過適當注意文件和目錄權限可以解決許多問題。
  • 必須了解如何處理文件中文件系統的行為 配置文件,並了解UNIX / Linux文件系統安全性的工作原理。
  • 我們建議不要在文件夾和共享資源的名稱中使用重音符號,空格或空格。 最好使用小寫字母命名。
  • 共享名稱不能在LAN上重複。 每個名稱都是唯一的。
  • 如果我們的局域網中沒有WINS服務器,則可以通過添加“整體»來自文件 配置文件 參數 贏得支持=是。,強烈建議您使用。

樣本服務器

:miwheezy。 :amigos.cu。 IP10.10.10.20。 用戶:至強,宙斯和特里頓。 其他組:櫃檯

安裝

通過Synaptic或控制台,我們安裝軟件包 桑巴.

sudo aptitude安裝samba

也安裝軟件包非常有用 客戶端。 我們將使用它進行檢查。

在此過程中,將安裝軟件包-但我們之前已經安裝了與套件相關的其他一些軟件包- 桑巴舞, 桑巴共賓 y tdb工具。 另外,文件已創建 /etc/samba/smb.conf中。 只要安裝了軟件包,就會創建此文件 桑巴舞 y 桑巴共賓,並且在我們卸載它們之前不會從系統中刪除它們。

smb.conf文件是Samba Suite中最重要的文件

Samba具有大量的配置選項,其中大多數未在示例中顯示 配置文件 默認情況下會安裝。 選項帶有«;»被認為足以顯示,並且它們的默認值與Samba行為默認值不同。 配置選項用“#«,具有Samba默認值,並且也顯示很重要。

如果我們想在不考慮註釋選項的情況下查看文件的內容,請使用«;“或帶有”#«,我們必須執行:

 egrep -v'#|; | ^ * $'/etc/samba/smb.conf

如果我們想查看文件內容而不考慮帶有«註釋的選項#«,我們必須執行:

egrep -v'#| ^ * $'/etc/samba/smb.conf

我們必須做的第一件事是複製文件 /etc/samba/smb.conf中。 在文件本身中,我們找到了Samba建議製作工作副本的方式,下面將對此進行詳細介紹。 如 我們執行:

cd / etc / samba mv smb.conf smb.conf.master testparm -s smb.conf.master> smb.conf
根@ miwheezy:/ etc / samba#ls -l
總數32 -rw-r-r-- 1根root 8年10月2002日gdbcommands -rw-r-r-- 1根root 805 Aug 4 12:05 smb.conf -rw-r-r-- 1根root 12173 4月12日05:XNUMX smb.conf.master

注意以這種方式生成的smb.conf與原始文件之間的大小差異。 隨著尺寸的減小,服務器的性能將根據Samba團隊的指示而提高。

文件的初始內容 /etc/samba/smb.conf中 將會是(請記住,我們不會開發打印機共享):

[全球]
        工作組=朋友netbios名稱= MIWHEEZY安全=用戶
        服務器字符串=%h服務器映射到guest虛擬機=錯誤用戶遵守pam限制=是pam密碼更改=是passwd程序= / usr / bin / passwd%u passwd chat = *輸入\ snew \ s * \ spassword:*%n \ n *重新輸入\ snew \ s * \ spassword $ unix密碼sync =是syslog = 0日誌文件= /var/log/samba/log.%m最大日誌大小= 1000 dns代理=不允許用戶共享來賓=是緊急操作= / usr / share / samba / panic-action%d idmap config *:後端= tdb [homes]註釋= Home目錄有效用戶=%S創建掩碼= 0700目錄掩碼= 0700可瀏覽=否

以粗體突出顯示的值是我們最初必須修改的唯一值。 請注意,儘管是Samba的默認行為,我們還是明確聲明了該選項 安全=用戶 考慮到它的重要性。

如果我們的局域網中沒有WINS服務器,則可以通過添加“整體»來自文件 配置文件 參數 贏得支持=是。,強烈建議您使用。

黃金法則:在不首先詳細了解我們要實現的目標的情況下,更改和/或向smb.conf文件添加參數的次數越少,效果越好。

這是顯示的一些選項的簡要摘要。 有關更多信息,請運行 男子smb.conf.

  • 工作組:控制在製作網絡瀏覽器時設備將出現在哪個工作組中。 使用該選項時,此參數還控制域名 安全=域 並在其中加入一個域。 我們將在以後的文章中看到它。 默認值為 WORKGROUP.
  • netbios名稱:設置NetBIOS名稱,通過該名稱將在網絡上知道Samba服務器。 默認情況下,它與 全稱 從主機。 在我們的示例中 全稱 團隊的是 miwheezy.amigos.cu網站。 我們可以為Samba服務器使用與主機不同的名稱。 在這種情況下,建議將CNAME記錄包含在我們的 DNS.
  • 安全:該參數會影響客戶端對Samba的響應方式,並且是文件中最重要的參數之一 配置文件。 默認值為 用戶.
  • 服務器字符串:控制在團隊名稱旁邊的Web瀏覽器中顯示的註釋中顯示哪個名稱。
  • 映射給客人:僅在設置時有用的參數 安全=用戶 o 安全=域。 值“錯誤的用戶”告訴Samba拒絕無效的密碼,除非該用戶不存在,在這種情況下,它們將被視為來賓或“客人«。 如果我們不想允許訪客會話,則必須將其值更改為 決不,它恰好是默認值,並且還會更改參數 用戶共享允許訪客 a 沒有,這也是默認值。
  • 遵守pam限制:控制Samba是否必須遵守PAM自己的限制«可插拔認證模塊«,關於用戶帳戶和會話的管理指令。 默認值為 沒有.
  • pam密碼更改:告訴Samba使用PAM來更改SMB客戶端請求的密碼。 默認值為 沒有.
  • 密碼程序:用於為用戶設置UNIX密碼的程序。
  • 密碼聊天:控制惡魔之間對話的鏈 單片機 以及先前參數中定義的密碼更改本地程序。
  • Unix密碼同步:告訴Samba,只要前者更改,就將SMB密碼與UNIX密碼同步。 默認值為 沒有.
  • 有效用戶:允許登錄共享的用戶列表。

重新啟動或重新加載Samba服務

每當我們進行重大更改時,尤其是在“[全球]配置文件,我們必須重新啟動服務。 如果我們已經有用戶連接到服務器,則每次重新啟動Samba時,我們都將斷開它們的連接。 因此,從現在開始,實際上,只有在添加或修改共享資源時,我們才會重新加載服務。 要重啟服務,我們執行 :

服務samba重新啟動

充值服務:

服務桑巴重裝

我們將用戶添加到系統和Samba用戶數據庫中

我們只能將本地服務器上已經存在的那些用戶添加到Samba用戶數據庫中。

在我們的示例中,用戶 至強 它是在Wheezy的安裝過程中添加的。 因此,我們不會將其添加到團隊用戶。 用戶組 存在於系統上並在安裝過程中創建。

一些命令選項 密碼 聲音:

  • -a:將指定的用戶添加到本地文件smbpasswd。
  • -x:必須從本地文件smbpasswd中刪除指示的用戶。 僅在以下情況下可用 密碼 運行為 .
  • -d:必須禁用指定的用戶帳戶。 僅在以下情況下可用 密碼 運行為 .
  • -e:與選擇相反 -d 只要用戶的帳戶被禁用。

要在我們的團隊中創建用戶,我們可以使用眾所周知的命令 添加用戶.

宙斯adduser triton

創建組 計數器:

addgroup計數器

要將用戶添加到Samba數據庫:

smbpasswd-根
smbpasswd -a至強smbpasswd -a宙斯smbpasswd -a triton

我們加入小組 計數器 給我們想要的用戶:

adduser至強計數器adduser宙斯計數器adduser triton計數器

建議將每個創建的用戶加入該組 用戶,以防我們想授予我們在特定資源上創建的所有用戶的權限。 將多個用戶加入組的一種更簡單的方法是直接編輯文件 / etc / group,並添加用逗號分隔的用戶列表。 他們可以在小組的指導下 計數器。 我們假設我們將用戶加入該組 用戶.

在工作站上,刪除使用顯示創建的顯示用戶 添加用戶,我們必須編輯文件 /etc/gdm3/greeter.gsettings 並取消註釋該選項 disable-user-list = true,以便登錄時不顯示用戶列表。 這是加入域的任何Windows客戶端計算機的標準行為。

同樣,如果我們希望創建的用戶不要通過以下方式啟動遠程會話 SSH,我們編輯文件 的/ etc / SSH / sshd_config中 並將指令添加到文件末尾 允許用戶。 範例:

[....]#和ChallengeResponseAuthentication為'no'。 UsePAM是AllowUsers至強

我們添加共享資源

1示例:我們要共享文件夾 /主頁/至強/音樂 適用於所有註冊用戶。 該權限將是只讀的。 首先我們創建文件夾 /主頁/至強/音樂 並且我們會根據需要配置其所有者和權限。 作為用戶 Xeon 我們執行:

mkdir /主頁/至強/音樂ls -l /主頁/至強| grep音樂

然後在文件末尾 配置文件 我們添加以下內容:

[music-xeon]註釋=個人音樂文件夾路徑= / home / xeon /只讀音樂=是有效用戶= @users閱讀列表= @users

修改文件後,我們執行 testparm 作為用戶 至強 我們為該服務充值 。 我們還可以運行兩個命令,例如 :

testparm服務桑巴重新加載

要檢查新配置的服務,我們可以通過在計算機本身上執行以下命令來完成:

smbclient -L本地主機-U%

2示例:我們要共享文件夾 /主頁/至強/音樂 適用於所有註冊用戶。 權限將被讀取/寫入 至強 對屬於該組的其餘用戶為只讀 用戶。 我們無需修改文件夾的所有者或權限。 我們只是稍微更改了文件中的共享設置 配置文件.

[music-xeon]註釋=個人音樂文件夾路徑= / home / xeon /音樂只讀=無有效用戶= @users寫入列表= xeon讀取列表= @users

3示例:我們要共享文件夾 /主頁/至強/會計 對於用戶組 計數器。 所有群組成員均具有閱讀權限。 用戶 海衛一 y 宙斯 他們將能夠寫入共享文件夾。

現在,如果我們必須修改文件夾的所有者和權限 會計 創建後,他們可以寫 海衛一 y 宙斯 誰是組的成員 計數器。 我們還必須注意,創建或修改文件的最後一個用戶不會成為其絕對所有者,以便其他具有寫入權限的用戶可以修改該文件。

從以下位置了解如何處理文件系統的行為非常重要。 配置文件,並了解UNIX / Linux文件系統安全性的工作原理。

在這些情況下,我們必須:

  • 在方便時聲明誰將成為所有者用戶,誰將成為共享目錄的所有者組。
  • 允許所有者組寫​​入共享目錄。
  • 聲明一點 SGID (設定群組編號)創建過程中。
  • 在文件中正確聲明 配置文件 在我們的共享資源中創建文件和目錄的方式。

在實踐中,如果有一個簡單可行的解決方案 我們執行為 :

mkdir /主頁/至強/會計chown -R root:計數器/主頁/至強/會計chmod -R g + ws /主頁/至強/會計ls -l /主頁/至強

然後,將以下內容添加到smb.conf文件的末尾:

[會計]註釋=會計文件夾路徑= / home / xeon /會計只讀=沒有有效用戶= @會計寫列表= triton,zeus讀列表= @會計強制創建模式= 0660強制目錄模式= 0770

我們會立即檢查 配置文件 通過 testparm 我們通過以下方式為服務充值 服務桑巴重裝。 我們也可以跑 smbclient -L本地主機-U%。 在本地服務器上,以及 smbclient -L miwheezy -U% o smbclient -L miwheezy.amigos.cu -U% 從遠程計算機。

時間是從遠程計算機我們連接到共享資源並進行所有必要的測試。 建議檢查在資源中創建文件夾和文件的用戶的更改方式。

重要事項: 用戶 或用戶 至強 一般而言,該組的任何成員 計數器,您可以從在同一台計算機上啟動的本地會話或通過 SSH,即不使用SMB / CIFS協議。 如果您在本地創建文件夾或文件,請記住要重新分配適當的權限。 檢查方式 ls -l。 不執行上述操作會引起很多混亂。

朋友,請原諒我的篇幅,希望對您有所幫助。 直到下一次冒險!


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   拉夫 他說:

    一如既往的出色。 當我們使用服務器時,會喜歡這些類型的文章。 😉

  2.   塞薩爾 他說:

    很好的freeke,但對我來說,最好使用FreeNAS
    😉

  3.   費德里科·安東尼奧·瓦爾德斯·圖加格 他說:

    感謝您的意見!!!。 Freeke,FreeBSD的FreeNAS是Freeke的又一個狂野故事,我可能會為它寫一篇文章。 最後是FreeBSD上的Samba。

  4.   埃里克 - 他說:

    我必須說的是非常好的帖子,就像我幾年前一直說的,如果您在幾年前發布了這篇文章,這會為我省去很多問題,但是很高興有人有興趣展示如何配置samba,Greetings

    1.    費德里科·安東尼奧·瓦爾德斯·圖加格 他說:

      俗話說“幸福好就永遠不晚”,而另一句話“遲來總比沒有好”。 感謝您的評論。 我大約在2007年開始使用Samba。直到現在,我還無法發布任何有關它的信息。

      1.    埃里克 - 他說:

        同樣,我幾乎在同一時間使用samba,但我發現您已經做了很多改進,並且您說“幸福就永遠不會太晚”是對的,在我看來,我必須說某人分享他們的知識非常好,很多時候有時候一個人不敢或沒有時間,在我看來,這是第一個,問候語

  5.   Giskard 他說:

    朋友@fico,我真的很喜歡您的文章。 它們被很好地解釋和詳細說明。 謝謝。

    1.    費德里科·安東尼奧·瓦爾德斯·圖加格 他說:

      我希望它們對您有用。 這就是目的!

      1.    Giskard 他說:

        是的,是

        順便說一句,我剛剛看到您的文章張貼在另一頁上(http://www.infognu.com.ar/2013/08/samba-servidor-independiente-en-debian.html),並且對來源的引用很小。 還沒完成值得擁有的功績,該死! 我不知道他們是否可以從這裡讓那些做事的人大為改觀。 在未經訓練的人看來,它就像是創建並發布一樣。

  6.   奧斯卡 他說:

    該帖子的作者先生,如果您撰寫一篇有關如何通過samba為普通用戶共享文件的文章,我的意思是說範圍更廣,圖形更多的東西,例如如何在linux與linux之間以及從linux與Windows共享,而不是從一個共享。如此專業的方式,但喜歡在家中PC之間共享文件。

    1.    費德里科·安東尼奧·瓦爾德斯·圖加格 他說:

      對於這種情況,我建議對Linux(Linux)使用ssh,對於Windows(Linux)使用winscp。 在同一網站上有幾篇文章。
      這篇文章雖然看起來很複雜,但是如果您複製並粘貼其中包含的一些命令,它也適用於家庭網絡。

      1.    埃利奧時間3000 他說:

        儘管使用SMB / CIFS系統為Windows使用相同的文件共享協議(或簡稱為共享文件夾)更為實用。

        我將做一些實驗,以便能夠提供有關如何在GNU / Linux中創建共享文件夾的教程(以我為例,Debian Wheezy),以便Windows網絡將其識別為共享文件夾。

  7.   一個等級 他說:

    很好,而且長度值得,但是也許您應該在與Windows交互之前提早使用oslevel參數。
    問候

    1.    費德里科·安東尼奧·瓦爾德斯·圖加格 他說:

      請注意,這是一個沒有Windows域控制器的網絡。 當我們處理加入域的計算機時,將使用該參數。

  8.   Lastnewbie 他說:

    當我有時間的時候我會
    [offtopic]我想發布GIMP教程。 它可以?
    [/ offtopic]

  9.   費德里科·安東尼奧·瓦爾德斯·圖加格 他說:

    朋友@giskard,我剛剛去過 http://www.infognu.com.ar/2013/08/samba-servidor-independiente-en-debian.html,但我沒有看到任何有關此帖子的參考。 他們做了一個複製品/粘貼到臉頰,哈哈哈哈哈哈。 它表明,至少,該職位是高質量的。 我說不,哈哈哈哈哈哈。

    1.    Giskard 他說:

      末尾用小寫字母表示“源”並指向此站點的鏈接。 但是在我看來,這樣做似乎完全是一種謹慎和缺乏尊重。 幸運的是,在這裡我們知道作者是誰

    2.    凱撒大帝 他說:

      他們確實提供了參考,但幾乎沒有註意到他們在文章開始時已經提到過

  10.   特魯科22 他說:

    在arch Wiki中,它說從3.4版開始,建議使用pdbedit而不是smbpasswd。

    一位朋友說,一個問題,在將用戶添加到Samba之前,必須在系統中創建一個用戶,但必須使用/ bin / false
    useradd -s / bin / false myuser
    是0.o嗎?

  11.   費德里科·安東尼奧·瓦爾德斯·圖加格 他說:

    朋友@ truko22,通常來說,是那些問類似問題的人。 請記住,我們一直說過,我們只會給 入口點 主題。 我們還建議您閱讀隨附的文檔。 最後,服務的個性化是實施服務的人的責任,以對他們的需求和滿足他們的安全級別做出響應的方式進行。

    例如,如果我們允許任何人使用以下方式寫入共享,則可以避免權限問題 CHMOD 777的。 當然,這不是一個安全的解決方案。

    如果我們通過創建本地會話,則可以阻止用戶啟動本地會話或通過ssh adduser用戶–shell / bin / false。 換句話說,這樣創建的用戶無法訪問終端或控制台。

    換句話說,可以以多種方式配置Samba,從最簡單到最複雜。

    怎麼了?。 如果我們寫這篇文章時不允許添加到Samba的用戶在本地登錄,他們肯定會問為什麼。 這就是為什麼我們更喜歡以最經典的方式編寫它,並讓每個人得出自己的結論。

    @ truko22,感謝您給我正確的意見,以進行先前的評論!

    1.    特魯科22 他說:

      現在非常感謝您,我了解😀關於–shell / bin / false

  12.   費德里科·安東尼奧·瓦爾德斯·圖加格 他說:

    朋友@ truko22,我忘記了pdbedit。 自從Etch我就習慣了 密碼。 該命令可由系統上的任何用戶執行,並且其行為和結果會有所不同。 編輯,也可以使用,但只能由root用戶調用。

    關於Samba,您可以在其許多命令上撰寫整篇文章。

  13.   獅子座 他說:

    這很好!!
    問候

  14.   馬科斯 他說:

    很好的文章。 祝賀並感謝您的貢獻

  15.   約瑟金 他說:

    我想問你是否有一篇關於samba作為域控制器的文章,它是否已經可以使用Windows服務器之類的組策略控制域,我的意思是防止更改網絡地址的屬性,使用pendrives等。

  16.   里卡多·梅加斯 他說:

    您好,Fico,我已經在LDAP和LAM 3.6上安裝了Samba 3.7-我想知道您是否知道在啟動部分時如何允許用戶更改密碼,因為它告訴我“您無權更改密碼”問候 ...