linux下samba伺服器的應用
http://www.51cto.com 2005-11-30 23:57 出處:網路世界
系統為fedora2,初始僅安裝了development tools。
1、安裝
samba server需要用到三個軟體包,即:samba伺服器軟體包、samba-client (samba客戶端工具)、samba-common(通用工具和庫)。 由於我這個做實驗的fedora在安裝時只安裝了development tools,所以這裡會存 在乙個軟體的依存關係,需要先安裝乙個rpmdb的軟體包(rpmdb是解決軟體安裝儲存關係的資料庫),才可以繼續安裝samba的軟體包。 插入第三張光碟,掛載,並cd到fedora/rpms路徑 ls | grep rpmdb 列出當前包括rpmdb的rpm包,即下面的rpmdb-fedora-2- 0.20040513.i386.rpm rpm -ivh rpmdb-fedora-2-0.20040513.i386.rpm /*這個軟體處在fedora的第三 張光碟fedora/rpms裡*/ rpm -ivh --aid samba*.rpm /*安裝samba軟體包,samba*.rpm處於fedora的第一張光碟fedora/rpms裡,--aid是與前面安裝rpmdb一起對應使用的,初始安裝 samba軟體包時匆必需要*/ rpm -qa |grep samba /*用rpm查詢當前安裝了的包含samba的檔案,-ql中的 q=query,a=all */ rpm -ql samba-3.0.3-5 rpm -ql samba-client-3.0.3-5 rpm -ql samba-common-3.0.3-5 /*檢查samba軟體包的內容,-ql中 q=query,l=list*/
2、介紹幾個常用的samba工具
**btree 顯示區域網中的所有共享主機和目錄列表 **bclient 顯示/登入區域網中的共享主機/目錄 用法:**bclient -l -n win2000 /*匿名登入win2000這台機器,-n表示匿名,-l 表示對共享目錄的列表*/ **bclient //win2000/share -u username%password /*用username和password這個**b使用者及口令登入win2000這台機器下的乙個share目錄,用這個工具登入成功 後會出現**b: />提示符,這裡提二個該狀態下的命令:put、get,跟unix/linux 下的ftp命令類似,注意的是put後必須跟二個引數,如: **b:/>put /root/install.log install.log,即不但指定上傳本地的某個檔案,還需要指定上傳到另一台機器的引數,這裡後面的install.log即是上傳到另一台機器時後的 名稱*/ **bmount //win2000/share /mnt -o username=username%password /*將遠端共 享目錄掛載到本地,注意完成後使用umount取消掛載*/
3、samba伺服器的配置
samba 伺服器的配置檔案是**b.conf,位於/etc/samba/**b.conf 大家得注意裡面的幾個常用改動引數,[global]裡的workgroup、security 下面來看乙個samba配置檔案裡如何設定乙個share vi /etc/samba/**b.conf 在[gobal]裡進行一些修改 workgroup = workgroup security = share 然後按shift+g(vi下的用法,即到該檔案的末尾)到達**b.conf檔案的最後,新 建乙個共享 [sharedocs] comment = share documents /*標註文件型別*/ path = /usr/share/doc /*指定共享路徑*/ public = yes /*確定發布共享*/ 儲存退出(這裡會用到vi的相關指令,大家可進行相關vi的使用方法),然後重 啟samba服務 service **b restart 用**bclient -l localhost進行samba伺服器的測試
4、samba使用者帳號
新增samba使用者,須新增乙個系統帳號,然後再加入samba帳戶 useradd redhat /*增加redhat使用者*/ **bpasswd -a redhat /*直接為redhat帳戶新增**b服務密碼,-a引數為增加**b用 戶,-x為刪除**b使用者*/ 下面來看乙個共享目錄設定有效使用者的例子: 在/etc/samba/**b.conf中新增乙個共享目錄
[redhat]
comment = redhat 's files
path = /var/redhat
public = no
valid users = tom @redhat
/*設定有效使用者為tom或者是redhat組的使用者*/
儲存退出,重啟**b服務 這裡有必要提到samba使用者帳戶對映這具概念,出於帳號安全考慮,為防止samba 使用者通過samba帳號來猜測系統使用者的資訊,所以,就出現了 samba使用者對映,如,將上面的tom帳戶對映成其他的名稱,然後用其他的名稱如jack、rhood都可以 登入,其許可權及登入密碼都與tom一樣。實現帳戶對映的方法:先在/etc/samba/**b.conf中的帳戶對映服務開啟,方法很 簡單,找到username map = /etc//samba/**busers這一行,將其前面的;去掉即可(linux中;表示關閉,#表示注釋,注意與freebsd中的#號概念區別開來),然 後修改/etc/samba/**busers vi /etc/samba/**busers 在裡面新增一行 tom = jack rhood 儲存退出,重啟**b服務,然後就可以用jack及rhood登入redhat共享目錄,其權 限及登入密碼與tom完全一致。
5、samba伺服器的許可權設定
我們用乙個samba的配置檔案的例子來說明這個問題
[redhat]
comment = redhat 's files
path = /var/redhat
public = no
valid = tom @redhat /*有效使用者*/
write list = tom @redhat /*具有寫許可權的使用者*/
create mask = 0660
/*能夠建立檔案的許可權,這裡是660,即rw-rw----許可權,即
屬主和同組人有可讀可寫許可權*/
directory mask = 0660 /*對目錄的控制許可權,這裡亦是660許可權*/
[補充一下許可權方面知識:r=讀,八進位制中是4 w=寫,八進位制**是2 x=執行,八進位制**是1,在上面的rw-rw----中,9個字元劃為三份,前三個字元為檔案屬主的許可權(即rw-,可讀可寫),中間三個字元為同組人的許可權(rw-,可讀可寫),後面則是其他人的許可權(---,不可讀不可寫不可執行),換成八進位制,r+w+- =2+1+0=6 ,所以構成了mask = 0660 之類的格式,至於770,775之類的許可權,大 家可以自行去想了]
6、舉例
場景:tom和jack為sales組的成員,rhood和joeys是技術部的成員,公司要求組建samba伺服器,每個人都有自己的samba帳戶,分別有sales組和tech二個組,各 組成員不得跨組訪問,不給成員分配shell 分析後的所需做的工作為:
1、為所有使用者建立samba帳號
2、建sales和tech二個組,並為組分配許可權
3、為所有成員設定不分配shell
4、將各自的檔案共享出來
操作:groupadd sales /*建組sales*/
groupadd tech
useradd -g sales -s /bin/false tom
/*將tom加入sales組(-g sales),並不分
配shell許可權(-s /bin/false) */
useradd -g sales -s /bin/false jack
**bpasswd -a tom
**bpasswd -a jack
useradd -g tech -s /bin/false rhood
useradd -g tech -s /bin/false joeys
**bpasswd -a rhood
**bpasswd -a joeys
mkdir /home/sales /home/tech /*分別為sales和tech建立目錄*/
chgrp sales /home/sales /*改變目錄的屬主*/
chgrp tech /home/tech
chmod 770 /home/sales /*改變目錄的許可權,為rwxrwx---*/
chmod 770 /hoem/tech
chmod g+s /home/sales /*為目錄增加程序屬主,
這一操作是為了確保該目錄永
遠地屬於屬主*/
chmod g+s /home/tech
ls -ld /home/sales /home/tech /*檢視目錄的許可權*/
然後編輯samba的配置檔案,將目錄共享出來
vi /etc/samba/**b.conf
先將[global]裡的security安全級別設為user
security = share
然後按shift+g到配置檔案的末尾設定目錄的共享
[sales]
comment = sales
path = /home/sales
public = no
valid users = @sales
write list = @sales
create mask = 0770
directory mask = 0770
[tech]
comment = tech
path = /home/tech
public = no
valid users = @tech
write list = @tech
create mask = 0770
directory mask = 0770
儲存退出
用tail -f /etc/samba/**b.conf
來確認一下剛才修改的配置
確認正確,然後重啟**b服務
service **b restart
Linux下安裝Samba伺服器
1.終端輸入 sudo apt get install samba samba common 2.新建共享目錄 sudo mkdir home share 3.設定許可權 sudo chmod 777 home share 4.修改配置檔案 sudo vim etc samba smb.conf 在...
Linux下搭建Samba伺服器
samba是在linux和unix系統上實現smb協議的乙個免費軟體,由伺服器及客戶端程式構成,smb server messages block,資訊服務塊 是一種在區域網上共享檔案和印表機的一種通訊協議,它為區域網內的不同計算機之間提供檔案及印表機等資源的共享服務。smb協議是客戶機 伺服器型協...
Linux下使用samba伺服器實現
很多情況下我們在虛擬機上安裝的linux系統通常都要用到與windows實現檔案的共享這一功能 以前我基本都是在虛擬機器 red hat enterprise linux 5 下安裝vmtools來實現這一功能,這是我第一次使用samba伺服器來實現這一功能,下面的操作已經在本人的虛擬機器上實踐通過...