使用 Linux 替代 Windows NT/2000 伺服器

來源:互聯網
上載者:User
by Sebastian Sasías

關於作者:
作為一個開發技術解決方案的支撐工具,他已經使用Linux幾年了。
他的工作包括通過Linux控制器件,訊號處理,通訊和網路安全。
他精通電子自動化和電腦技術。
他一直致力於在GNU/GPL協議下的自由軟體開發。

摘要:

這一篇文章提供了以前LinuxFocus 文章關於SAMBA用於在Unix-Windows異構網際網路共用資源的方案。 特別地,它集中在使用SAMBA運行Windows提供的服務。
這不僅是因為Linux強大靈活,還更出於經濟考慮的結果:

極大的節省了購買Windows伺服器的許可證費用。
要達到相似的效能表現,Linux比Windows使用更少的硬體資源(也就是處理器和記憶體了)。

一個運行SAMBA配置恰當的Linux伺服器可以替代Windows NT/2000伺服器, 它一般能共用目錄, 提供活動目錄服務(active directory service ,ADS) 但是它可以做為主網域控制站(Primary Domain Controller, PDC), 進行 Windows 2000/NT/98/95 作為客戶機的使用者認證 ,共用資源(目錄和印表機) 和定製使用者會話。
這篇文章主要集中到這些方面。

許多的電腦環境都以Windows 伺服器提供的功能為基礎,裝有SAMBA的Linux 伺服器會在不改變客戶機的情況下,替代所有基於Windows系統提供的功能。
以下的要討論的步驟假定:SAMBA已經安裝並且運行正確的機器將被用做伺服器。讀者需要 Linux和Windows伺服器的基本的知識。

--------------------------------------------------------------------------------
配置
遵循以下步驟:

1) 建立要在主網域服務器(Linux/Samba)待認證的使用者。
使用adduser 命令, useradd 或 userconf, 你可以使用一些使用者管理的工具,也可以 是帶有圖形介面的(Webmin,Linuxconf,Yast等).

需要確認如果使用者只進入Linux/Samba服務(如果你想), 這就是說使用者不必進入Linux命令列,這樣的話只有把home目錄設成/dev/null ,命令列設成/bin/false。

2) 把UNIX使用者轉換成Linux/Samba/Windows使用者,產生smbpasswd 檔案。

cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

另一個方法是,執行一下的SAMBA命令來建立使用者和定義密碼:

smbadduser
smbpasswd

這些命令和adduser與passwd一樣有類似的作用。

3) 編輯SAMBA的設定檔(smb.conf), 你要確定加入或減去下列標有comment的可選項:

netbios name = SMBServer
workgroup = THEDOMAIN
server string = Linux Samba NT Server
log file = /var/log/samba/%m.log
max log file = 0
security = user
encrypt password = yes
smb password file = /etc/samba/smbpasswd
ssl CA certificate = /usr/share/ssl/.... (cancel comment)
socket options = (cancel comment)
local master = yes
preferred master = yes
domain master = yes
domain logons = yes
logon script = logon.bat
wins support = yes

注意:
做為每一個使用者的特有的登陸(login), 需要使用"%U.bat"檔案替換 原先的“登陸描述”(login script)。這樣每一個使用者都有一個的帶有自 己使用者名稱的“登陸描述”, %u 也是可以使用的. 如果你想定義使用者屬於 那個組,你可以使用 %g或%G,這些參數和其他參數的定義可以在手冊 中找到。(man smb.conf)

4) 建立共用資源
編輯smb.conf 檔案 並注釋所有的“共用”的例子,加入以下 的資訊,如果沒有必要的話,不用更改:

[netlogon]
comment = Initialization Scripts
path = /home/netlogon
read only = yes
guest ok = yes
browseable = no

[home]
comment = User Directory
path = /home/%U
browseable = yes
writable = yes

[public]
comment = Public Directory
path = /home/public
browseable = yes
writable = yes
guest ok = yes
create mask = 0777
force create mask = 0777

儲存smb.conf 檔案。

5) 你可以使用如下的命令來驗證smb.conf是否正確:

testparm

這些命令分析smb.conf 檔案並報告發現的錯誤。

6) 分別使用許可權0754和0777 建立/home/netlogon 和/home/public目錄。

7) 編輯logon描述檔案logon.bat。
重要提示: 使用DOS/Windows文字編輯器 (比如Notepad或Edit)來建立logon.bat檔案 (所以儲存的文字檔是微軟相容的形式), 你也可以在Linux上做這件事但是你必須轉換成正確的文本形式。 你可以使用比如 Vim的命令":set textmode"得到有微軟行結尾符的檔案。
net time SMBServer /y (you can also use: /yes instead of /y )
net use H: SMBServerhome -y (you can also use: /yes or /y instead of -y )
net use P: SMBServerpublic -y

8) 加入SMBServer資訊到lmhosts檔案中。
編輯/etc/samba/lmhosts 檔案後 /etc/lmhosts)檔案並且 加入關於SMBServer資訊的一行。

SMB伺服器, 比如: 192.168.0.10 SMBServer

9) 重啟動SAMBA的背景程式(smbd)。

service smb restart

如果在你的Linux版本中上面的命令不工作,你可以使用如下命令:
ps -auxgx | grep smb
kill -9smbd

10) 使用smbclient來驗證以上的配置是正確的。

smbclient -L //SMBServer

如果"Password:"顯示出來, 按"Enter" 鍵,伺服器的共用的 資源會顯示出來。

11) 使用Windows 95/98/NT 電腦在域THEDOMAIN中進行客戶登陸, 使用Linux/Samba建立的使用者(看步驟1和2)。

在95/98/ME中, 配置可以按照一下的順序:

開始 => 設定 => 控制台=> 網路 =>微軟網路客戶 => 屬性。

Windows NT/2000(工作站/專業版)中也是類似的用法, 可能順序不是一樣。

單擊選項"Start session in Windows NT/2000 domain" 並寫下網域名稱 THEDOMAIN (WORKGROUP)。

一個設定檔的執行個體
一個完整的SAMBA設定檔羅列如下,這個檔案在不通的Linux分發版本中測試通過。 讀者可以修改它以達到自己想要的結果。其中每條指令都被恰當的注釋。

最後,給那些的想快速配置SAMBA的人的建議是安裝 Webmin或者SWAT,這些工具可以讓你配置時輕鬆一點。

#============================================================#
# /etc/smb.conf
#------------------------------------------------------#
# SAMBA主設定檔
# 設定檔的骨架,根據你的需求選擇其中的參數。
#------------------------------------------------------#
# 測試通過的系統: Solaris系統和 Linux各個發布版本
# RedHat 6.0, 7.0 和 7.1
# Solaris 7
# Slackware 7.x
# Mandrake 6.1, 7.0 和 8.1
# SuSe 7.2
#------------------------------------------------------#
# 最近一次更改時間: 08/12/2001
# 作者:Sebastian Sasias - sasias@Linuxmail.org
#============================================================#
#
# 這個檔案按照SAMBA規範來開發的,可以參見smb.conf(5)手冊。
#
# OBS: 更改本檔案以後,使用"testparm"命令來測試。
#
#======================== Global Options =======================#
#
# 總配置
#
[global]
#.....................................................#
# workgroup = NT-Domain-Name o Workgroup-Name,比如: THEDOMAIN
# PDC域
workgroup = THEDOMAIN
#......................................................#
# 在其他的機器中聲明的本機器的名稱
netbios name = SMBServer
#......................................................#
# 這個聲明會出現在Windows的“近端分享”中
server string = Samba Server de este lugar
#......................................................#
# 這一行由於安全的原因很關鍵,只許在區域網路中特定的電腦的串連。
# 在這個例子中,是192.168.8.0(C級網路)的網路
# 和“環路”(loopback)的介面是可以串連的。
# 更多的細節,請閱讀smb.conf man手冊。
# 比如:只有從規定開始的ip以後的地址才能共用資源。
# 192.168.8 和 127 (以後的注釋)
; hosts allow = 192.168.8. 127.
#......................................................#
# 如果你想自動載入一個印表機的清單,這樣就不必一個一個手動錄入,可以使用:
; load printers = yes
#......................................................#
# 覆蓋printcap的路徑是可能的。
; printcap name = /etc/printcap
#......................................................#
# 在SystemV系統中 printcap對lpstat名稱屬性一定允許
# 自動地從SystemV(這麼個詞!:-))的spool系統中取得印表機列表。
; printcap name = lpstat
#......................................................#
# 如果印表機系統是非標準的,就需要指定是什麼列印系統。
# 現在支援的列印系統有:
# bsd, sysv, plp, lprng, aix, hpux, qnx
; printing = bsd
#......................................................#
# 如果你需要一個guest帳戶,你不要注釋掉下面這行。
# 你一定麼加入這條到/etc/passwd裡,否則這個使用者無“人”可用。
; guest account = pcguest
#......................................................#
# 下面這條就是使得每台電腦都有一個不同的log檔案,
# 通過這個檔案和SAMBA伺服器相連。
log file = /var/log/samba/log.%m
#......................................................#
# 設定log檔案長度的限制(單位 Kb)。
max log size = 50
#......................................................#
# 閱讀security_level.txt for得到更多的細節
# 指定驗證密碼的方式
# 使用者級的安全性原則=每個使用者都有自己的密碼 (SAMBA密碼)
security = user
#......................................................#
# 如果使用伺服器級的安全性原則,驗證過程在另一個機器上進行。
# 只有在使用伺服器級的安全性原則時,才使用值"password server"
# 密碼伺服器等於【證明伺服器地址】。
; password server =
#......................................................#
# 如果你想使用加密的密碼,請閱讀Samba文檔中的ENCRYPTION.TXT,
# Win95.txt和WinNT.txt。
# 你只有清楚的瞭解這個屬性的足夠多的資訊才能使用它。
# 資訊:Win95,Win98和 WinNT 可以發送加密的密碼。
encrypt passwords = yes
#......................................................#
# 使用下列的行來定製你的配置。
# 在網路中的每個電腦,%m 取代了自身netbios的名字。
; include = /usr/local/samba/lib/smb.conf.%m
#......................................................#
# 在你會發現文檔和一些流行的“提示”會告訴你下面的選項可以得到更好的效能。
# 試試!
# 閱讀speed.txt和手冊來知道更多的細節。
socket options = TCP_NODELAY
#......................................................#
# Samba 可以配置多種的網路介面。
# 如果你使用多種網路介面,你一定要在下面列出來。
# 閱讀手冊來知道更多的細節。
; interfaces = 192.168.8.2/24 192.168.12.2/24
#......................................................#
# Browser 控制選項:
# 如果你不想讓samba做為網路中的主browser, 設定"local master = no"。
local master = yes
#......................................................#
# 在OS 水平上,本伺服器當選主browser優先權的設定。
# 一般地,預設值可能就可以了。
; os level = 33
#......................................................#
# 域主機指定Samba成為域中主Browser。
# 這樣允許Samba運行網域控制站和在不同的TCP/IP子網中能被“看成”一台機器。
# 如果你使用了 Windows NT/2000網域控制站,你就不應該使用它。
domain master = yes
#......................................................#
# 更進階的域主在啟動中使得Samba成為一個局域的Browser,
# 這使得它有更多的機會(選舉成為域主)。
# 如果我們有2個以上的伺服器,層級高的伺服器會更受“歡迎”,
# 客戶機會在一個列表中搜尋到一台伺服器的。
preferred master = yes
#......................................................#
# 只有你使用NT/2000 伺服器在以一個主網域控制站(PDC)在運行,你才能使用下條。
; domain controller =
#......................................................#
# 如果你想把SAMBA當成Windows 9x/Me 工作站的“域登陸伺服器”,你要使用下條。
domain logons = yes
#......................................................#
# 如果你使用了“域登陸”,你一定要使用一個登陸指令碼,
# 在Windows網路中的每台機器或者每個使用者。

# 每個工作站的特定登陸批處理是
; logon script = %m.bat

# 每個使用者的特定登陸批處理是
; logon script = %U.bat
#......................................................#
# 那裡存放零星的profiles檔案 (只對Win95和 WinNT有效)
# %L 取代這個伺服器的NetBIOS名字, %U 取代使用者名稱
# 如果你使用它,一定不要注釋掉下面的Profiles共用
; logon path = %LProfiles%U
#......................................................#
# Windows互連網解析伺服器:
# WINS支援 — 告知NMBD使能它的WINS 伺服器。
# WINS協議 把機器名轉換成IP地址,
# 它象TCP/IP中DNS那樣工作。
; wins support = yes
#......................................................#
# WINS伺服器-告知Samba的NMBD組件成為WINS的一個客戶。
# SAMBA伺服器可以成為其中的一個:WINS 伺服器或 WINS客戶機,
# 但是不可以同時2者皆是。
# 這裡WINS IP伺服器一定要指定。
; wins server = 192.168.8.1
#......................................................#
# WINS代理-告知Samba回應那些沒有WINS能力的客戶的名字解析的請求,
# 這個情況只有在網路中至少有一台WINS伺服器時才有效。
# 預設是不。
; wins proxy = yes
#......................................................#
# DNS代理-告知Samba是否解析NetBIOS名字
# 版本1.9.17 內建的預設是“是”, 從版本1.9.18 變成了“否”
# 這裡我們可以告知SAMBA名字解析使用DNS或者不。
# dns proxy = yes
# dns proxy = no (name resolution will be made by using the file lmhosts )
#......................................................#
# 如果登陸的驅動盤沒有被指定,Z:單元會自動登陸的。
logon drive = P:
#......................................................#
# 當一個登陸出現時,這個指令碼被執行: /etc/samba/netlogon/SAMBA.BAT
# 並且使用"netuse"來登陸磁碟單元
logon script = SAMBA.BAT

#====================== Share Definitions ========================#

# 每個使用者的私人目錄
# 單位 P:

[homes]
comment = Home Directories
browseable = no
writable = yes
readonly = no
force create mode = 0700
create mode = 0700
force directory mode = 0700
directory mode = 700

#------------------------------------------------------#
# 臨時檔案目錄
# 單位 T:

[tmp]
comment = Tempora Files
path = /tmp
readonly = no
public = yes
writable = yes
force create mode = 0777
create mode = 0777
force directory mode = 0777
directory mode = 0777

#------------------------------------------------------#
# 伺服器的CD-ROM
# 單位 L:

[cdrom]
comment = CD-ROM
path = /mnt/cdrom
public = yes
writable = no

#------------------------------------------------------#
# 組,根據/home/grp.name_group來的
# /home/user/group 是 /home/grp.name_group一個連結
# grp.name_group 使用許可權770
# 單位 G:

[group]
comment = Directory of Group
path = /home/%u/group
writable = yes
readonly = no
force create mode = 0770
create mode = 0770
force directory mode = 0770
directory mode = 0770

#------------------------------------------------------#
# 這個單元存放應用軟體,安裝軟體,專用軟體等。
# /net 和 /net/install的許可權是 755, 比如這裡, root是它的擁有者
# 單位 N:

[net]
comment = Directory Net
path = /net
writable = yes
readonly = no
force create mode = 0750
create mode = 0750
force directory mode = 0750
directory mode = 0750

#------------------------------------------------------#
[netlogon]
comment = Logon Services in the Network
path = /etc/samba/netlogon
guest ok = yes
writable = no
locking = no
public = no
browseable = yes
share modes = no

#------------------------------------------------------#
#============================================================#

最後的考慮
SAMBA包和其他的一些在Linux上使用的工具在不斷的發展中,因此 有可能這裡講的一些細節會失去效用。實際上在SAMBA的發展中一些參 數名字在設定檔中變化很小,並且保持了更最佳化的結構。

如果你在SAMBA配置中發現一些未知參數的錯誤資訊,你可能有2個 簡單的辦法解決它:

閱讀預設的smb.conf檔案,裡面相同的行一般會有注釋,可以提供 一些“可能產生問題的參數”的資訊。
閱讀SAMBA文檔, 從描述最近一次的版本變化的檔案開始。

參考:書目和軟體工具
SAMBA,官方網址: http://www.samba.org
Webmin,官方網址: http://www.webmin.com a remote administration tool for computers running UNIX systems.
GNU 項目 和自由軟體基金會:http://www.gnu.org
一個有意思的網址,那裡可以得到RPM包: href=http://www.rpmfind.net
LinNeighborhood 網址: href=http://www.bnro.de/~schmidjo, 一個有意思的Linux工具,使用它可以通過“SAMBA網路”共用資源。

來源:Linuxfocus

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.