samba配置詳解

以下是samba 的配置方法。(RH9)
首先要安裝幾個軟件包
第一個是rpm -ivh rpmdb-redhat*.rpm(第三張光盤)
再裝rpm -ivh --aid samba*.rpm
第一個是基本的軟件包,
只有裝了第一個軟件包時,第二條才能生效。
第二條的作用是安裝包含samba的所有軟件包。
包括rpm -ql samba
rpm -ql samba-common
rpm -ql samba-client
(這幾個都在第一張光盤裏)
安裝好後用VI編輯/etc/samba/smb.conf
其中workgroup=這裏我們可以填你的工作組名也可以填你所在的域控制器的名字。
security=這是安全級別的意思。和下面的public一起用。如果要共享的話填share,那麼別的用戶不用密碼就可以登錄
相當於匿名登錄,
剩下的我們自己編輯了
[docs]     共享的目錄名
      path=/user/share/doc    你本地服務器上的共享目錄的路徑
      comment= share docummentaiton    這是共享目錄的註釋
      public=yes   和上面的share一起允許匿名訪問,如果填no,上面的security=user,那就要輸入用戶和口令。
重啓samba服務器
service smb restart
chkconfig smb on
測試smbclient -L localhost
這樣做你會覺的所有的用戶都可以訪問共享目錄
我們可以把public設爲no
再加上一句
valid users=用戶名或@組名
但用戶名必須是系統用戶纔可以
但這樣又出現問題了,***可能知道你的用戶名後猜你的密碼。
所謂矛有多尖,盾就有多固。
linux提供了一種用戶帳號映射的辦法。
先要用VI編輯/etc/samba/smb.conf
將username map=/etc/samba/smbusers啓用
然後用vi 編輯/etc/samba/smbusers
假如redhat用戶是你的系統用戶,你寫了一句redhat=lin dong
那麼你給別人lin 或者dong 這兩個帳號
當別人用lin 或者用dong 這兩個帳戶登陸服務器是其實是用redhat這個系統帳戶登陸的
lin 和dong這只是個虛擬給windows 主機的帳號,(密碼還是redhat 帳號的密碼)。
下面說一個綜合的應用
假如我們在/etc/samba/smb.conf中編輯如下
[redhat]
    path=/var/redhat
    comment=share documentations
    public=no
    valid users= lin dong
    write list=lin
    create mask =0660
    directory mask =0770
這時,我們要在客戶機上訪問linux服務器上的/var/redhat就可以用lin 和dong  這兩個帳號
(假設lin和dong 是系統帳號)但還要保證訪問redhat這個目錄本身必須的權限。
但只有 lin這個帳號可以寫,而dong 這個帳號只有訪問的權限,沒有寫的權限
create mask = 0660是指,在 /var/redhat中些一個文件,這個文件自身的權限
directory mask =0770,理所當然新建的目錄權限是770
如果一個文件是從客戶機寫進服務器的那麼在客戶機和服務器上訪問時會有兩種不同的方式,
因爲客戶機和服務器是兩套不同的帳號。帳號的關係會影響到服務器的安全性。
舉個例子吧:
我們把遠端服務器上的一個目錄掛載到本地目錄下,有lin登陸
smbmount //10.0.0.254/wang /mnt -o username=lin%123
先touch /mnt/aa
這是我們可以   ls -l /mnt/aa(客戶端)
                     ls -l /var/redhat/aa(服務器端)
訪問。、
這是兩中不同路徑出現的訪問方法
對於第一個來說我是用root登陸
但對於第二個來說是用客戶機登陸帳號寫進去的(lin)
我覺的有一句話很重要:客戶端所有的請求訪問身份在服務器端都會映射成登陸帳號的身份、(細細體會,有點象域控制器)
我們可以用testparm /etc/samba/smb.conf host 10.0.0.254這個命令來查看host這臺主機能訪問我們的那些目錄
還有一些配置命令我應該說說
比如:
service string =這是你的服務器的註釋信息
netbios name = 這是提供的主機名 可以和dns 提供的不一樣
security = share/user/server上面簡單的 提到了 缺省是user 它只對windows有效,如果你的客戶機是linux照樣可以訪問
而server他指你的網內有一臺域控制器,登陸信息應在域控制器上驗證,所以密碼也自然不是在linux服務器上了
同時要制定passwd server密碼
log file = /var/log/samba/%m.log這指記錄登陸你的服務器的主機名,這裏的主機名是netbios主機名
把%m 改成%I 就記錄登陸你服務器的主機的ip
encrypt passwd=這是說是否使用加密密碼,如果用加密密碼,那WINDOWS客戶機也用加密密碼
windows缺省是加密的,如果不使用加密的話,那應該修改windows 的註冊表
smbpasswd file = /etc/samba/smbpasswd不用說你也能猜出來是記錄你的smb密碼的文件
include = /etc/samba/smb.conf%m這是我們用來爲不同的用戶提供不同的共享文件
%m和上面的一樣(和windos裏的隱藏共享加權限差不duo)
interfaces=192.168.0.0/24這是你的服務器所服務的網段
name resolve order = wins lmhosts bcast這是主機名的順序
其中wins是給wins服務器解析用這個時必須加上wins server=ip地址,告訴他wins的ip地址
而lmhosts是你自己的服務器解析但你必須vi /etc/samba/lmhosts這個文件,往裏添加ip 和對應的主機名
(有點象在dns服務器裏手動添加記錄)
wins support = yes 用你的服務器做wins服務器
wins server = ip地址 你是wins的客戶機配這項
hosts deny=這是拒絕那些主機訪問 ,你可以填如:.sina.com(一個域)也可以填如:10.0.0.  這個網段
hosts allow=自然是允許了 (我是學網絡工程的,感覺這有點象路由器中的訪問控制列表)  
這有一個原則:允許優先!!!
問題出現了:如果我象要10.0.0. 這個網段除了254 這臺主機不能訪問其它主機都可以是不是要輸253個主機名?
用EXECPT
hosts allow = 10.0.0.  EXECPT 10.0.0.254
samba也可以用在linux主機之間共享文件,linux之間共享文件還可以用nfs,在論壇裏聽一位前輩說nfs存在漏洞
別人可能用它,獲得超級用戶的密碼。所以nfs適合在內網使用。
但linux主機共享的nfs , windows 是不能用的,因爲windows沒有nfs 客戶端
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章