Samba

 官網:www.samba.org

samba架構在netbios上
連線模式可用peer/peer(workgroup model)或domain model

安裝套件:
samba   //主程式,含smbd,nmbd
samba-common  //含smb.conf,語法檢測工具,…等
samba-client  //做Client 端時,所需要的工具指令,ex:smbmount,…等

……………………………………………………………………………………………………………

samba客戶端程式(可能己內建,讀取分享目錄用)
findsmb  //顯示該網域中提供分享的資源,並以清單模式顯示ip,電腦名稱,作業系統版本等
smbtree  //同上,但以不同的方式顯示資源列表
smbclient
  //hostname/sharename   進入主機hostname下的分享資源sharename
  -L //name 查詢name這台主機分享的資源清單
  -U user  用user帳號登入

…………………………………………..

samba伺服器(需安裝,分享目錄用)
主要檔案為
  smb.conf 系統設定檔(可能在/usr/local/samba/lib/)
  smbpasswd 密碼檔(可能在/usr/local/samba/private/smbpasswd/)
次要檔案為
 lmhosts  對應NetBIOS name與該主機名稱的IP,自動會被設定 (可能在/etc/samba/lmhosts)
 smbusers  需在smb.conf被啟用才有效,做為帳號對應用(可能在/etc/samba/smbusers)

samba伺服器的相關指令
smbd //管理SAMBA主機分享的目錄,檔案與印表機等,主要利用TCP傳輸資料,port為139 及 445(不一定存在)
 – D //become a daemon 啟動伺服程式,預設選項
nmbd //管理工作群組,NetBIOS name等的解析,主要利用 UDP及port 137, 138 來負責名稱解析的工作
 – D //become a daemon 啟動伺服程式,預設選項
/usr/local/samba/bin/smbpasswd  //帳號密碼管理工具
   -a user //新增帳號為user(需先在linux建立同名帳號)(root可用)
   -d user //暫停user帳號(root可用)
   -e user //取消暫停user帳號(root可用)
   -n user //設定該帳號為空密碼(還需設定null passwords=true) (root可用)
   -x user //刪除user(root可用)
   -U user //變更user帳號
smbstatus //系統狀態查詢
   -p  //只顯示使用者連線的程序
   -v  //詳細報告
   -L  //只顯示鎖定的檔案
   -S  //只顯示分享的資源
   -u  user //只顯示某user的存取狀況
   -n  //把使用者帳號轉化為uid
nmblookup //查詢netbios name
   -B //指定廣播位址
   -U //指定單點廣播位址
   -S //查詢該電腦狀態
   -T //依netbios name查詢對應ip
   -A //將netbios name轉化成ip查詢某電腦狀態
testparm //測試smb.conf是否有錯誤參數

……………………………………………………………………………………………………………

smb.conf範例(若是設定錯誤會自動略過)
[global] //全域設定(特定用途節區)
netbios name=pc161 //電腦在網芳出現的名稱為pc161
workgroup=wind //設定該電腦的群組為wind
log file=/usr/local/samba/var/log //系統記錄檔的位置
guest account=nobody //預設的guest帳號以nobody帳號的權限存取
security=user //使用者存取samba server時的認證種類,有以下可選:
    share共享模式,分享的資料不需要密碼即可分享
    user使用者模式,使用 SAMBA 本身的密碼資料庫,smb passwd file需指定密碼檔位置,encrypt passwords最好設yes
    server伺服器模式,使用外部主機的密碼
    domain網域模式,使用外部主機的密碼
[home] //samba內帳號的家目錄設定(特定用途節區)
   read only=no //是否唯讀
   browseable=no //表示smbclient -L看不到,隱藏分享(隱藏後若輸入正確路徑若可存取)
[printers] //(特定用途節區)
[自訂節區] //針對指定分享的分錄設定
   path=/tmp //指定欲分享的目錄
   public=yes //是否可讓所有可登入使用者進入
   writeable=yes //表可寫入
   follow symlinks=yes //資料夾內可用連結檔
   wide links=yes //資料夾內的連結檔可連出path的指定目錄外
   deadtime=30  //登入後超過30分鐘沒存取檔案則斷線,0表示沒限制
   max connections=5  //設定最多可有5人同時連線到此
   valid users=user1 user2 //指定只有user1,user2可存取,若沒設定表大家都可存取

其他可在smb.conf節區用的有
系統參數
status = yes //是否保留狀態給smbstatus程式
case sensitive //檔案名稱是否分大小寫
interfaces = eth0 //指定samba服務的網路界面
smb passwd file= /usr/local/samba/private/smbpasswd  //指定密碼檔所在位置
encrypt passwords=yes //採用加密認證(建議選yes)
null passwords=no //不接受空字串當密碼
wins support=no //samba不當wins(建議選yes)
資源相關參數
available=yes //啟用此資源
hide dot file=yes //隱藏以.開頭檔名的檔案
hide files //隱藏指定的檔案或目錄
hide special files=no //不隱藏特殊檔案如socket,device,fifo
hide unwriteable files=no //不隱藏無法寫入的檔案
檔案權限相關參數
create mask=744 //設定建立檔案的最大權限
directory mask=744 //同上
force create mode //指定檔案被建立時的最小權限
force directory mode //同上
force group , group //強制指定連線進來的帳號,以何群組權限存取該資源
force user //強制指定連線進來的帳號,以何帳號權限存取該資源
guest相關參數
guest ok = no //不可使用guest帳號存取指定資源(若為yes時需搭配guest only=yes)
guest only=no //不可以只用guest帳號存取指定資源
map to guest=Never //使用者登入密碼錯誤時,不會自動轉為guest帳號
存取控制相關參數
valid users //指定可存取的使用者
invalid users //未被指定者都可存取
hosts deny , deny hosts //指定可登入的主機
allow hosts , hosts allow //指定拒絕登入的主機
其他需放在global節區的參數
change notify timeout=60//samba每60秒檢查檔案是否有變更
name resolve order=wins lmhosts bcast //Samba對NetBIOSname解析方式,bcast是廣播,host是使用/etc/host檔
local master //是否參加主控瀏覽器的選拔
domain amster //是否參加主控瀏覽器的選拔,對象是多網域
wins server //指定此samba要用哪一台wins
default,default service //預設開啟那一個分享資源
keepalive=300 //連線封包每300秒傳一次
bind interfaces only=no //指定samba要作用在哪一ip監聽broadcast訊息,並略過其他封包(預設監聽0.0.0.0 port137,138)
password level //指定密碼大小寫可以容錯的字數,在encrypt password=no才有效
其他需放在分享資源節區的參數
admin users //指定可無限制存取的帳號
copy //拷貝前面的節區做為此節區的設定,若有相同參數則以本節區為主
write list //指定具有寫入權限者
read list //指定具有讀取權限者
max disk size //指定指供存取的資源最大mega數,0表不限制
available=yes//指定開啟或關閉一個資源分享
preexec,postexec,root preexec,root postexec  //指定存取該資源前或後,要執行的程式檔路徑
語系參數
unix charset    = utf8
display charset = utf8
dos charset     = cp950
印表機相關
load printers =no
disable spoolss = Yes
show add printer wizard = No
cups options = raw

參考來源
linux伺服器建置與管理
鳥哥的私房菜