beauty_beast

          上善若水 厚德載物

          Solaris環境下samba的安裝和配置

          Posted on 2006-03-27 11:23 柳隨風 閱讀(4098) 評論(0)  編輯  收藏 所屬分類: OS


          ?

          前斷時間我們的開發機器硬盤壞了,修復后原來的文件無法再共享了,重新配置了samba,這篇文章是同事總結的,呵呵。好東西就自己收藏一下。
          UNIX或者LINUX 服務器上安裝 samba 服務可以實現與 Windows 系統的文件共享和打印機共享。

          關于Samba

          有關 samba的資料網上很多,下面是我從網上找的一些關于samba的介紹:

          Samba 組織的目標 —— Opening Windows To A Wider World 。他們之間的數據傳輸使用 SMB(Service Message Block) 協議 . 這是一個在傳輸層之上的協議 所以他可以支持很多不同異構系統的網絡互聯 比如 Linux,Solaris,Windows ),Samba 之所以能夠工作 因為 SMB 協議模仿了 Windows 內核的文件和打印共享協議。微軟已經將SMB改名為公共因特網文件系統(CIFS,Common Internet File System ),并打算把它設計為Internet的標準協議。這在一定程度上是由于它想與最初的基于NetBIOS的SMB保持一定的距離。NetBIOS是Windows 網絡的一個偉大的工具,Microsoft使用NetBIOS實現了一個網絡文件/打印服務系統,但是為LAN設計的它卻注定了不能路由。? Samba執行了SMB/CIFS的一個版本,這個版本在很大程度上與大多數的Windows版本兼容。但是,無論是從Windows連接到Linux還是從Linux連接到Windows機器,Samba系統對于實現文件和打印服務來說總是很穩定的。我們可以通過Windows的網絡鄰居來輕松訪問安裝了Samba的UNIX/LINUX服務器。(更多的文檔見www.samba.org )。

          一、安裝 samba

          1.????????? 下載 samba for Solaris 的安裝軟件包: samba-3.0.10-sol9-sparc-local.gz

          2.????????? 解壓并安裝samba軟件包:

            #gunzip samba-3.0.10-sol8-sparc-local.gz

          #pkgadd d samba-3.0.10-sol8-sparc-local

          安裝完畢后,到默認安裝目錄/usr/local下可以看到安裝的軟件包samba目錄。

          、配置 samba

          1.??? 創建 samba 配置文件

          samba安裝完成后 需要手工在 samba安裝 目錄 lib 目錄下創建文件名為 smb.conf 的配置文件。安裝程序不會創建該配置文件。

          1.1 smb.conf文件的格式

          smb.conf文件的格式有多個段構成,每段由段名開始,段名放在方括號中,下面是smb.conf文件的例子:

          # cat /usr/local/samba/lib/smb.conf

          # Samba config file created

          # Date: 2006/03/25

          # HuYingguang

          [global]

          workgroup = WORKFLOW

          server string =??huyg??5.9

          log file = /usr/local/samba/var/log.%m

          max log size = 50

          security = user

          smb passwd file = /usr/local/samba/smbpasswd

          unix charset =GBK

          [emip]

          comment = Network Logon Service

          path = /export/home2/emip

          writeable = yes

          browseable = yes

          guest ok = yes

          [global] 段是全局變量 它設置了要加入的工作組 這里是 WORKFLOW),NetBIOS 安全參數 security 等參數 除了 [global] 段外 所有的段都可以看作是一個共享資源段可以有多組 段名是該共享資源的名字 而段里的參數就是共享資源的屬性。通過設置它的參數可以設置共享目錄路徑和訪問控制權限等。

          1.2 下面看看一些重要 參數 的說明:

          全局段參數 [global]

          workgroup 設置 samba 服務器所要加入的工作組的名稱 , 另外如果在設置了 security = domain, workgroup 可以指定域名。

          ???? netbios name ? 指定 samba NetBIOS ,即 設置出現在“網上鄰居”中的主機名。默認情況下,則使用真正的主機名。

          ???? server string 設置服務器主機的說明信息 缺省為 samba %v, samba 尾隨它的版本號

          ???? hosts allow ?? 設置允許什么樣的 IP 地址的主機訪問 Samba 服務器。默認的情況下 hosts allow 選項被注釋 表示允許所有 IP 地址的主機訪問。

          ???? guest account 設置當訪問那些被設置了“guest ok=yes”參數的資源時所要使用的帳號名。所設的帳號必須是在/etc/passwd文件中存在的用戶。

          ???? log file = /usr/local/samba/var/log.%m??? 設置日志文件。“% m”表示 Samba服務器為每一個連接的機器使用一個單獨的日志文件,指定文件的位置,名稱。Samba會自動將%m轉換成連接主機的NetBios名。

          ???? max log size ?????? 指定日志文件的最大容量(KB),設置為0,表示沒有限制。默認值為5000。

          ???? max disk size 設置能夠共享的最大磁盤空間 ( MB ) ,默認值為0,表示不作任何限制。

          ???? max open file 設置同一客戶端最多能打開文件的數目,默認值為10000個。

          ???? security ????? 設置Samba服務器的安全等級,默認 user。

          security 共有四種選項設置:

          ?????????????????? share ??? 用戶不需要帳號及密碼可以登陸Samba服務器。

          user   由提供服務的Samba服務器檢查用戶帳號及密碼。

          server  檢查帳號及密碼的工作可指定另一臺Samba服務器負責。

          domain  需要指定一臺Windows NT/2000/XP服務器(通常為域控制器),以驗證用戶輸入的帳號及密碼。

          ???? password server ??? 如果安全等級為“server”或“domain”,則使用此選項指定要驗證密碼的主機名。

          ???? encrypt passwords? 設置當Samba客戶端將帳號及密碼傳送到服務器端時,是否采取密碼加密的方式,默認值為no。

          ???? smb passwd file ??? 設置在Samba服務器上存放加密的密碼文件的位置(Samba服務器與 Unix是 采用不同的密碼文件)。

          ???? config file ?? 設置此項可以用另一個配置文件覆蓋缺省的配置文件,如果文件不存在,該項無效。這使得samba的配置更靈活,讓一臺Linux /Unix 服務器模擬多臺不同配置的NT 服務器 。可以 讓訪問 samba 服務器的客戶機使用 自己的配置文件 ,如: 先在 /usr/localsamba/lib目錄 下為 host1 配置一個名為 smb.conf.host1 的文件 ,然后 在缺省的 smb.conf 里加這行 config file = /usr/localsamba/lib/smb.conf.%m。這樣host1登錄samba服務器時就會使用smb.conf.host1配置文件,其他客戶端則使用默認的配置文件。

          ???? d eadtime 設置該 參數用于切斷一個不活動的連接。當一個沒有打開任何文件的連接的不活動的時間超過datetime指定的的時間后,samba就自動切斷這個連接。默認的值是零,samba不自動切斷任何連接。(值為整數,單位分鐘)

          共享段參數 emip]

          ???? comment ? 對共享的描述 可以是任意的字符串

          ???? path ???? 設置共享資源的服務路徑 %u %m 這樣的宏來代替路徑里的 unix 用戶和客戶機的 Netbios 名。例如 path = /home/emip/%u這樣 用戶在連接到這共享時具體的路徑會被他的用戶名代替。

          ???? writeable設置指定的共享路徑是否可以寫,yes或no

          ???? browseable ??? 指定共享是否可以瀏覽,默認是yes?

          ???? available指定共享資源是否可用,默認是yes,設為no則關閉該資源的共享服務,用戶無法連接到該資源上。

          ???? execpostexec?? root preexecroot postexec? 指定在用戶與共享資源在連接和斷開時在服務器上執行一個命令,這兩對參數很有用,區別是root preexec 和root preexec 是以root的權限運行。?

          load printers ? 指定在samba啟動時是否自動把printcap文件里的所有打印機加載,從而可以在瀏覽清單里看到所有的打印機,默認是yes?

          printable ? 指定用戶能不能打印,默認是no,要讓一個打印共享可以讓用戶使用,必須設為yes?

          print name ? 打印機名 ?

          printer drive r? 打印機的驅動類型,這個參數可以讓WINDOWS知道遠程打印機上的類型,具體的值可以參考在WINDOWS里安裝打印機出現選擇打印機類型時的打印機類型。

          admin users ?? 參數用來賦予某用戶為共享資源的管理員權限。缺省是admin users = no

          valid users ?? 指定共享資源的有效用戶,即允許訪問該資源的用戶。多個用戶用 逗號分隔

          invalid users 指定不允許訪問該共享資源的用戶

          max connections ??? 指定一個服務的最大連接數目

          samba安裝目錄:samba/doc/samba/examples/smb.conf.default文件中有詳細的參數說明。

          2.??? 測試Samba配置文件格式是否正確

          設置好smb.conf文件之后,執行下面的命令測試smb.conf的設置語法是否正確。

          # cd /usr/local/samba/bin/testparm

          Load smb config files from /usr/local/samba/lib/smb.conf

          Processing section "[emip]"

          Loaded services file OK.

          Server role: ROLE_STANDALONE

          Press enter to see a dump of your service definitions

          出現如上信息表示smb.conf文 配置 正確。

          3.??? 設置 samba密碼文件

          如果配置文件中 samba服務器的 安全等級設為:security = user就需要設置smb password file參數并創建參數值所指定的密碼文件。創建方法如下:

          #cat /etc/passwd | mksmbpasswd.sh? >? / usr/local /samba/smbpasswd

          此命令將未加密的/etc/passwd文件轉換成加密的smbpasswd文件。

          # chmod? 500? /etc/samba

          # chmod? 600? /etc/samba/smbpasswd

          創建完成之后再利用 smbpasswd 命令 設置 / usr/local/samba/smbpassword 文件中每個帳號所使用的密碼。下面以 emip用戶 為例。注意:此處設置的密碼是 emip 要訪問Samba服務器的密碼,并非登錄 Solaris 主機的密碼,默認設置 UNIX password? sync=YES , 則登錄 Solaris 主機的密碼將改變,與Samba服務器的密碼一致。如果希望這兩個密碼不一致,則設置 UNIX password sync=NO

          root@smb_server? root]# smbpasswd emip

          New SMB password: 此處輸入密碼

          Retype SMB password: 重新輸入密碼

          三、Samba服務器的啟動與停止

          1.??? 修改啟動shell腳本

          samba server 服務是 3 個守護進程組成:

          nmbd 進程  Netbios 名稱服務器 , 該進程使用 UDP 協議提供 Netbios 名稱服務和瀏覽支持,處理命名注冊和決策請求。該進程應當是被首先啟動。

          smbd 進程  SMB 服務器,使用 TCP 協議給 SMB 客戶提供文件和打印服務;應當在 nmbd 進程后立即啟動。

          Winbindd 進程 當 Samba 服務器是 windows NT ADS 域中的成員時,此時當啟動該守護進程。

          修改配置文件路徑和服務器應用程序進程為正確的位置,并加入啟動 / 停止成功的信(注意啟動的先后順序):

          /etc/init.d/samba 文件中 start stop 部分:

          start)

          ??????? [ -f /etc/sfw/smb.conf ] || exit 0

          ??????? /usr/sfw/sbin/smbd -D

          ??????? /usr/sfw/sbin/nmbd -D

          ??????? ;;

          stop)

          ??????? pkill smbd

          ??????? pkill nmbd

          修改為:

          start)

          ??????? [ -f / usr/local/samba/lib/ smb.conf ] || exit 0

          ??????? /usr/local/samba/sbin/smbd -D?? && echo "smbd started."

          ??????? /usr/local/samba/sbin/nmbd D? && echo "nmbd started."

          ??????????? /usr/local/samba/sbin/winbindd? && echo "winbindd started."

          ??????? ;;

          stop)

          ??????? pkill smbd? && echo "smbd stoped."

          ??????? pkill nmbd? && echo "nmbd stoped."

          pkill winbindd?? && echo "winbindd stoped."

          2.??? 啟動/停止samba服務器

          執行下面的命令來啟動Samba服務器:

          # /etc/init.d/samba start

          執行下面的命令來停止Samba服務器:

          # /etc/init.d/samba stop

          四、 Samba 服務管理配置工具

          1.??? Samba實用組件

          Samba 提供了幾個實用的組件 位于 /usr/local/samba/bin 目錄下面 ):?

          smbclient?? SMB 客戶程序 用來存取 SMB 服務器上的共享資源 ?

          testprns??????? 測試服務器上打印機訪問的程序 ?

          testparms?? 測試 Samba 配置文件的正確性的工具 ?

          smbstatus?? 工具可以列出當前 Samba 服務器上的連接 ?

          smbtree???? 工具來顯示共享目錄樹形結構。

          Smbpasswd?? 工具用來設定用戶密碼;?

          swat ?????? samba Web 管理工具

          通過這些工具我們可以更好的管理配置samba服務器。

          例如:

          #smbpasswd a username 添加訪問的共享資源的用戶

          #smbclient -L hostname 顯示samba server上的共享資源

          2.??? web頁面管理配置工具swat

          這個頁面管理工具可以配置幾乎所有的Samba參數,提高了Samba的使用便捷性和易用性。在首頁它還提供了命令和參數的幫助文檔手冊。

          Samba Web 管理工具 (SWAT) 是一個通過 inetd 運行的服務程序。 因此, 需要它加入inet.d守護進程:

          #Vi /etc/services

          加入 swat??????????? 901/tcp

          #vi /etc/inetd.conf

          加入 swat stream tcp nowait/400 root /usr/local/samba/bin/swat swat

          修改重新啟動 /usr/sbin/inetd 守護進程 , 這里的 Swat 使用了 TCP901 端口監聽,在瀏覽輸入: http://x.x.x.x:901 進入 web 管理頁面。 您將首先使用系統的 root 帳號登錄。只要成功 地登錄進了 Samba 配置頁面,就可以瀏覽系統的文檔,或從 Globals( 全局 ) 選項卡開始配置了。


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 婺源县| 安吉县| 盐池县| 渑池县| 呼图壁县| 枣阳市| 鄂伦春自治旗| 沂南县| 星子县| 凤冈县| 伊春市| 新宁县| 哈巴河县| 体育| 慈利县| 茶陵县| 永德县| 新龙县| 凤凰县| 铜陵市| 五寨县| 汉阴县| 巴南区| 集贤县| 客服| 纳雍县| 青阳县| 乌兰县| 肇庆市| 富裕县| 浠水县| 大同市| 西峡县| 视频| 石楼县| 文登市| 星座| 寿阳县| 房山区| 杭锦旗| 乐都县|