藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 網絡通訊


    

藍森林 http://www.lslnet.com 2006年8月08日 11:58

Samba使用大全
 
Samba使用大全(一)-samba服務器
Samba協議基礎
  在NetBIOS出現之後,Microsoft就使用NetBIOS實現了一個網絡文件/打印服務系統,這個系統基於NetBIOS設定了一套文件共享協議,Microsoft稱之為SMB(Server Message Block)協議。這個協議被Microsoft用於它們Lan Manager和Windows NT服務器系統中,實現不同計算機之間共享打印機、串行口和通訊抽像(如命名管道、郵件插槽等)。
  隨著Internet的流行,Microsoft希望將這個協議擴展到Internet上去,成為Inter net上計算機之間相互共享數據的一種標準。因此它將原有的幾乎沒有多少技術文檔的SMB協議進行整理,重新命名為 CIFS(Common Internet File System),並打算將它與NetBIOS相脫離,試圖使它成為Internet上的一個標準協議。
因此,為了讓Windows和Unix計算機相集成,最好的辦法即是在Unix計算機中安裝支持SMB/CIFS協議的軟件,這樣Windows客戶就不需要更改設置,就能如同使用Windows NT服務器一樣,使用Unix計算機上的資源了。Samba是用來實現SMB的一種軟件,它的工作原理是,讓NETBIOS(Windows95網絡鄰居的通訊協議)和SMB(Server Message Block)這兩個協議運行於TCP/IP通信協議之上,並且使用Windows的NETBEUI協議讓Unix計算機可以在網絡鄰居上被Windows計算機看到。它的功能有:
1.共享Linux磁盤給Win95/NT
2.共享Win95/NT磁盤給Linux機器
3.共享Linux打印機給win95/NT
4.共享win95/NT打印機給Linux機器。
同時它的文件服務功能比NT系統還高,而且在Windows2000之前就提供了用戶磁盤空間限制的功能。
Samba的配置
在我寫這篇文章的時候,Samba的版本已經到了2.2.2了,需要的可以通過ftp://samba.org/pub/samba/Binary_Pac...11013.i386.rpm得到最新的rpm安裝包。然後執行rpm -Uvh samba-2.2.2-20011013.i386.rpm來安裝或者升級它。安裝完後,可以看見/etc/samba這麼一個目錄,裡面存放和Samba相關的一些文件,最主要的是smb.conf,現在根據配置文件講講它的配置選項:
全局設置:
workgroup = MYGROUP
定義該Samba服務器所在的工作組或者域(如果下面的security=domain的話)。
server string = MY Samba Server
設定機器的描述,當我們通過網絡鄰居訪問的時候可以在備註裡面看見這個內容,而且還可以使用samba設定的變量。這裡說一下samba定義的變量:
%S = 當前服務名(如果有的話)
%P = 當前服務的根目錄(如果有的話)
%u = 當前服務的用戶名(如果有的話)
%g = 當前用戶說在的主工作組
%U = 當前對話的用戶名
%G = 當前對話的用戶的主工作組
%H = 當前服務的用戶的Home目錄
%v = Samba服務的版本號。
%h = 運行Samba服務機器的主機名
%m = 客戶機的NETBIOS名稱
%L = 服務器的NETBIOS名稱
%M = 客戶機的主機名
%N = NIS服務器名
%p = NIS服務的Home目錄
%R = 說採用的協議等級(值可以是CORE, COREPLUS, LANMAN1, LANMAN2,NT1)
%d = 當前服務進程的ID
%a = 客戶機的結構(只能識別幾項:Samba,WfWg,WinNT,Win95)
%I = 客戶機的IP
%T = 當前日期和時間
hosts allow = 網絡或者主機
這裡可以設置允許訪問的網絡和主機IP,比如允許192.168.1.0/24和192.168.2.1/32訪問,就用host allow = 192.168.1. 192.168.2.1 127.0.0.1(網絡注意後面加」.」號,各個項目間用空格隔開,記得把本機也加進去)
printcap name = printcapFile
到printcapFile(一般是/etc/printcap)這個文件中取得打印機的描述信息
load printers = yes|no
設定是否自動共享打印機而不用設置下面的[printer]一節的相關東西
printing = PrintSystemType
定義打印系統的類型,缺省是lprng,可選項有:bsd, sysv, plp, lprng, aix, hpux, qnx。
guest account = pcguest
定義遊客帳號,而且需要把這個帳號加入/etc/passwd,不然它就用缺省的nobody
log file = LogFileName
定義記錄文件的位置LogFileName(一般是用/var/log/samba/%m.log)
max log size = size
定義記錄文件的大小size(單位是KB,如果是0的話就不限大小)
security = security_level
定義Samba的安全級別,按從低到高分為四級:share,user,server,domain。它們對應的驗證方式如下:
share:沒有安全性的級別,任何用戶都可以不要用戶名和口令訪問服務器上的資源。
user:samba的默認配置,要求用戶在訪問共享資源之前資源必須先提供用戶名和密碼進行驗證。
server:和user安全級別類似,但用戶名和密碼是遞交到另外一個服務器去驗證,比如遞交給一台NT服務器。如果遞交失敗,就退到user安全級。
domain:這個安全級別要求網絡上存在一台Windows的主域控制器,samba把用戶名和密碼遞交給它去驗證。
後面三種安全級都要求用戶在本Linux機器上也要系統帳戶。否則是不能訪問的。
password server = <NT-Server-Name>
當前面的security設定為server或者domain的時候才有必要設定它。
password level = n
這是設定針對一些SMB客戶像OS/2之類而設的,這樣的系統在發送用戶密碼的時候,會把密碼轉換成大寫再發送,這樣就和samba的密碼不一致,這個參數可以設定密碼裡允許的大寫字母個數,這樣samba就根據這個數目對接收到的密碼進行大小寫重組,以重組過的密碼嘗試驗證密碼的正確性。n越大,組合的次數就越多,驗證時間就越長,安全性也會因此變得越低。例如n=2,用戶的密碼是abcd,但發送出去其實是ABCD,samba就會把這個ABCD進行大小寫重組,組合後的結果可以是: Abcd, aBcd, abCd, abcD, abcd, ABcd, AbCd, AbcD,aBCd,aBcD,abCD。
所以如果沒有必要,就把n定為是零。這樣的話samba只嘗試兩次,一個是接收到的密碼,另一個嘗試的是這個密碼都是小寫的情況。
username level = n
這個是對於用戶名的情況,說明和上面一項類似。
encrypt passwords = yes|no
設置是否對密碼進行加密,samba本身有一個密碼文件/etc/samba/smbpasswd,如果不對密碼進行加密則在驗證會話期間客戶機和服務器之間傳遞的是明文密碼,samba直接把這個密碼和Linux裡的/etc/samba/smbpasswd密碼文件進行驗證。但是在Windows 95 OS/R2以後的版本和Windows NT SP3以後的版本缺省都不傳送明文密碼,要讓這些系統能傳送明文密碼必須在其註冊表裡更改,比較麻煩,好的方法就是把這裡的這個開關設置為yes。
smb passwd file = smbPasswordFile
設置存放samba用戶密碼的文件smbPasswordFile(一般是/etc/samba/smbpasswd)。
ssl CA certFile = sslFile
當samba編譯的時候支持SSL的時候,需要指定SSL的證書的位置(一般在/usr/share/ssl/certs/ca-bundle.crt)。
unix password sync = yes|no
passwd program = /usr/bin/passwd %u
passwd chat = *New*UNIX*password* %n
*ReType*new*UNIX*password* %n
*passwd:*all*authentication*tokens*updated*successfully*
這三項設置能否從windows的應用程序修改unix系統的用戶密碼
username map = UsermapFile
指定用戶映射文件(一般是/etc/samba/smbusers),當我們在這個文件裡面指定一行root = administrator admin的時候,客戶機的用戶是admin或者administrator連接時會被當作用戶root看待。
include = MachineConfFile
指定對不同機器的連接採用不同的配置文件MachineConfFile(一般為了靈活管理使用/etc/samba/smb.conf.%m,由於採用了samba的變量,把配置文件和客戶機的NETBIOS名稱關聯起來,能很容易地控制這些客戶機的權限和設置)。
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
這個是網絡socket方面的一些參數,能實現最好的文件傳輸性能。相關的選項還有SO_KEEPALIVE、 SO_REUSEADDR、SO_BROADCAST、IPTOS_LOWDELAY、IPTOS_THROUGHPUT、SO_SNDLOWAT(*)、SO_RCVLOWAT(*),帶*號的要指定數值。一般如果在本地網絡,就只用IPTOS_LOWDELAY,如果是有一個本地網絡的,就用IPTOS_LOWDELAY TCP_NODELAY,如果是廣域網絡,就試試IPTOS_THROUGHPUT。
interfaces = interface1 interface2
如果有多個網絡接口,就必須在這裡指定。如interface = 192.168.12.2/24 192.168.13.2/24
remote browse sync = host(subnet)
這裡指定瀏覽列表同步信息從哪裡取得, 如果用host(比如192.168.3.25)或者整個子網(192.168.5.255)。
★這裡說明一下什麼是瀏覽(Browse):
在SMB協議中,計算機為了訪問網絡資源,就需要瞭解網絡上存在的資源列表(例如在Windows下使用網絡鄰居查看可以訪問的計算機),這個機制就被稱為瀏覽(Browse)。雖然SMB協議中經常使用廣播的方式,但如果每次都使用廣播的方式瞭解當前的網絡資源(包括提供服務的計算機和各個計算機上的服務資源),就需要消耗大量的網絡資源和浪費較長的查找時間,因此最好在網絡中維護一個網絡資源的列表,以方便查找網絡資源。只有必要的時候,才重新查找資源,例如使用Windows下的查找計算機功能。
  但沒有必要每個計算機都維護整個資源列表,維護網絡中當前資源列表的任務由網絡上的幾個特殊計算機完成的,這些計算機被稱為Browser,這些Browser通過記錄廣播數據或查詢名字服務器來記錄網絡上的各種資源。
Browser並不是事先指定的計算機,而是在普通計算機之間通過自動進行的推舉產生的。不同的計算機可以按照其提供服務的能力,設置在推舉時具備的不同權重。為了保證一個Browser停機時網絡瀏覽仍然正常,網絡中常常存在多個Browser,一個為主Browser(Master Browser),其他的為備份Browser。★
remote announce = host(subnet)
指定這些機器向網絡宣告自己,而不是有Browser得到。
local master = yes|no
這個參數指定nmbd是否試圖成為本地主瀏覽器,默認值是yes,如果設為no則samba服務器就永遠都不會成為本地主瀏覽器。但即使設置了yes,也不等於samba服務器就會成為本地主瀏覽器。只是參與本地主瀏覽器選擇。
os level = n
n的值是個整數,決定了nmbd是否有機會成為本地廣播區域的工作組裡的本地主瀏覽器,默認值是零,零則意味著nmbd失去瀏覽選擇。如果要nmbd更有機會成為本地主瀏覽器的話,可以設為65。
domain master = yes|no
這個參數讓nmbd成為一個域瀏覽器,取得各本地主瀏覽器的瀏覽列表,並將整個域的瀏覽列表遞交給各本地主瀏覽器。
preferred master = yes|no
這個參數指定nmbd是否是工作組裡的首要的主瀏覽器,如果指定為yes,nmbd在啟動的時候就強制一個瀏覽選擇。
★Domain master和local master
工作組和域這兩個概念在進行瀏覽時具備同樣的用處,都是用於區分並維護同一組瀏覽數據的多個計算機。事實上他們的不同在於認證方式上,工作組中每台計算機都基本上是獨立的,獨立對客戶訪問進行認證,而域中將存在一個(或幾個)域控制器,保存對整個域中都有效的認證信息,包括用戶的認證信息以及域內成員計算機的認證信息。瀏覽數據的時候,並不需要認證信息,Microsoft將工作組擴展為域,只是為了形成一種分級的目錄結構,將原有的瀏覽和目錄服務相結合,以擴大Mircrosoft網絡服務範圍的一種策略。
工作組和域都可以跨越多個子網,因此網絡中就存在兩種Browser,一種為Domain Master Browser ,用於維護整個工作組或域內的瀏覽數據,另一種為Local Master Browser,用於維護本子網內的瀏覽數據,它和Domain Master Browser通信以獲得所有的可瀏覽數據。劃分這兩種Browser 主要是由於瀏覽數據依賴於本地網廣播來獲得資源列表,不同子網之間只能通過瀏覽器之間的交流能力,才能互相交換資源列表。
但是,為了瀏覽多個子網的資源,必須使用NBNS名字服務器的解析方式,沒有NBNS的幫助,計算機將不能獲得子網外計算機的NetBIOS名字。Local Master Browser也需要查詢NetBIOS名字服務器以獲得Domain Master Browser的名字,以相互交換網絡資源信息。
由於域控制器在域內的特殊性,因此域控制器傾向於被用做Browser,主域控制器應該被用作Domain Master Browser,他們在推舉時設置的權重較大。★
preserve case = yes|no
short preserve case = yes|no
指定拷貝DOS文件的時候保持大小寫,缺省是no
default case = lower|upper
所有的DOS文件的缺省是大寫還是小寫
case sensitive = yes|no
大小寫敏感,一般是no,不然會出現一些問題。
共享設置:
★共享資源:
每個SMB服務器能對外提供文件或打印服務,每個共享資源需要被給予一個共享名,這個名字將顯示在這個服務器的資源列表中。如果一個資源的名字的最後一個字母為$,則這個共享名就為隱藏共享,不能直接表現在瀏覽列表中,而只能通過直接訪問這個名字來進行訪問。在SMB協議中,為了獲得服務器提供的資源列表,必須使用一個隱藏的資源名字IPC$來訪問服務器,否則客戶無法獲得系統資源的列表。★
共享設置中有個比較奇怪的段:
[homes],在smb.conf文件中一般沒有對這個目錄的設定特定內容比如路徑等。當客戶機發出服務請求時,就在smb.conf文件的其它部分查找友特定內容的服務。如果沒有發現這些服務,並且提供了homes段時,那麼就搜索密碼文件得到用戶的Home目錄。通過Homes段,Samba可以得到用戶的Home目錄並使之共享。下面是這個段的最基本的幾個設置。
[homes]
comment=Home Directory
browseable=no
writable=yes
比較正常的共享的配置如下例:
[MyShare]
comment = grind』s file
path = /home/grind
allow hosts = host(subnet)
deny hosts = host(subnet)
writable = yes|no
user = user(@group)
valid users = user(@group)
invalid users = user(@group)
read list = user(@group)
write list = user(@group)
admin list = user(@group)
public = yes|no
hide dot files = yes|no
create mode = 0755
directory mode = 0755
sync always = yes|no
short preserve case = yes|no
preserve case = yes|no
case sensitive = yes|no
mangle case = yes|no
default case = upper|lower
force user = grind
wide links = yes|no
max connections = 100
delete readonly = yes|no
其中[]裡面的MyShare指定共享名,一般就是網絡鄰居裡面可以看見的文件夾的名字。
comment指的是對改共享的備註。
path指定共享的路徑,其中可以配合samba變量使用。比如你可以指定path=/data/%m,這樣如果一台機器的NETBIOS名字是grind,它訪問MyShare這個共享的時候就是進入/data/grind目錄,而對於NETBIOS名是glass的機器,則進入/data/glass目錄。
allow hosts和deny hosts和前面的全局設置的方法一樣這裡不再提及。
writeable指定了這個目錄缺省是否可寫,也可以用readonly = no來設置可寫。
user設置所有可能使用該共享資源的用戶,也可以用@group代表group這個組的所有成員,不同的項目之間用空格或者逗號隔開。
valid users指定能夠使用該共享資源的用戶和組。
invalid users指定不能夠使用該共享資源的用戶和組。
read list 指定只能讀取該共享資源的用戶和組。
write list指定能讀取和寫該共享資源的用戶和組。
admin list指定能管理該共享資源(包括讀寫和權限賦予等)的用戶和組。
public指明該共享資源是否能給遊客帳號訪問,這個開關有時候也叫guest ok,所以有的配置文件中出現guest ok = yes其實和public = yes是一樣的。
hide dot files指明是不是像unix那樣隱藏以「.」號開頭的文件。
create mode指明新建立的文件的屬性,一般是0755。
directory mode指明新建立的目錄的屬性,一般是0755。
sync always指明對該共享資源進行寫操作後是否進行同步操作。
short preserve case指明不管文件名大小寫。
preserve case指明保持大小寫。
case sensitive指明是否對大小寫敏感,一般選no,不然可能引起錯誤。
mangle case指明混合大小寫。
default case指明缺省的文件名是全部大寫還是小寫。
force user強制把建立文件的屬主是誰。如果我有一個目錄,讓guest可以寫,那麼guest就可以刪除,如果我用force user= grind強制建立文件的屬主是grind,同時限制create mask = 0755,這樣guest就不能刪除了。
wide links指明是否允許共享外符號連接,比如共享資源裡面有個連接指向非共享資源裡面的文件或者目錄,如果設置wide links = no將使該連接不可用。
max connections = n設定同時連接數是n。
delete readonly指明能否刪除共享資源裡面已經被定義為只讀的文件。
有兩類特殊的共享,分別是光驅和打印機
光驅的共享設置:
[cdrom]
comment = grind』s cdrom
path = /mnt/cdrom
public = yes
browseable = yes
root preexec = /bin/mount -t iso9660 /dev/cd0 /mnt/cdrom
root postexec = /bin/umount /mnt/cdrom
這裡root preexec指明了連接時用root的身份運行mount命令,而root postexec則指明了斷開時用root身份運行umount,有效實現了對光驅的共享。
打印機共享的設置:
[printers]
path = /var/spool/samba
writeable = no
guest ok = yes
printable = yes
printer driver = HP LaserJet 5L
這裡printable指明該打印機可以打印, guest ok說明遊客也能打印,path指明打印的文件隊列暫時放到/var/spool/samba目錄下。printer driver的作用是指明該打印機的類型,這樣我們在安裝網絡打印機的時候可以直接自動安裝驅動而不必選擇。
添加用戶:
samba添加用戶比較方便,一般是用smbadduser,用法是smbadduser unixid:netid,舉個例子:如果你的本機有個叫grind的用戶,你用smbadduser grind:grind,這樣從網上鄰居訪問的時候用戶名就用grind,而如果你用了smbadduser grind:glass的話,網上鄰居訪問的時候提供的用戶名就是glass而不是grind了。
關於samba服務端的設置基本就是這些,我想一般應用中所要使用的上面幾乎都覆蓋到了,所以有些不重要的就省略了,如果要更加詳細的信息可以用man smb.conf參考。<
Samba使用大全(二)-Samba客戶端
使用Samba網絡打印:
使用unix網絡打印以前的文章比較少涉及,最近試驗了一下,效果還是不錯的,現在講講基本的實現方法:
比如你要建立一台網絡打印機grind,而打印機對應網絡上面的//glass/HPLaserj,所有需要配置的文件有下面幾個:
1./etc/printcap,內容一般為:
grind:
:sh: #禁止提示的header
:ml=0: #打印的文件的長度下限,
:mx=0: #最大的打印文件大小,0為不限制
:sd=/var/spool/lpd/grind: #打印機的spool目錄
:lp=|/usr/bin/smbprint: #打印輸出需要的設備名或者管道名
:lpd_bounce=true: #強制lpd守護進程過濾打印文件
:if=/usr/share/printconf/mf_wrapper: #過濾命令文件
2.smbprint這個一般在安裝完smb相關的rpm包以後就有了,主要內容是:
eval acct_file=$$#
spool_dir=`dirname $acct_file`
config_file=$spool_dir/.config
eval `cat $config_file`
share=`echo $share | sed "s/[]///g"`
if [ "$user" != "" ]; then
usercmd="-U"
else
usercmd=""
fi
if [ "$workgroup" != "" ]; then
workgroupcmd="-W"
else
workgroupcmd=""
fi
if [ "$translate" = "yes" ]; then
command="translate ; print -"
else
command="print -"
fi
cat | /usr/bin/smbclient "$share" "$password" -E ${hostip:+-I}
$hostip -N -P $usercmd "$user" $workgroupcmd "$workgroup"
-c "$command" 2>/dev/null
3.mf_wrapper是一個magic filter文件,是相關的一些過濾規則。內容是:
MF_RULE_DIR='/usr/share/printconf/mf_rules'
MF_RULES=$MF_RULE_DIR/mf[[:digit:]][[:digit:]]-*
TMP_FILE=`mktemp /tmp/printconf.XXXXXX`' 'exit 1
cat ./mf.cfg $MF_RULES | m4 > $TMP_FILE
if [ -n "$DEBUG" ]; then
case "$DEBUG" in
2)
DEBUGSTRING="--debug --debug"
;;
3)
DEBUGSTRING="--debug --debug --debug"
;; 4)
DEBUGSTRING="--debug --debug --debug --debug"
;;
5)
DEBUGSTRING="--debug --debug --debug --debug --debug"
;;
*)
DEBUGSTRING="--debug"
;;
esac
else
DEBUGSTRING=""
fi
# Run magic filter
/usr/bin/magicfilter-t $TMP_FILE $DEBUGSTRING $* < /dev/stdin
RETVAL=$?
if [ -f $TMP_FILE ]; then
rm -f $TMP_FILE;
fi
;;
esac
else
DEBUGSTRING=""
fi
# Run magic filter
/usr/bin/magicfilter-t $TMP_FILE $DEBUGSTRING $* < /dev/stdin
RETVAL=$?
if [ -f $TMP_FILE ]; then
rm -f $TMP_FILE;
fi
if [[ $RETVAL -eq 0 ]]; then
TERMINATION=`grep '^[[:space:]]*#[[:space:]]*TERMINATION=' ./mf.cfg | se
d 's/^[[:space:]]*#[[:space:]]*TERMINATION=//;'`
if [ -n $TERMINATION ]; then
echo -n -e $TERMINATION;
fi
fi
同時需要在/var/spool/lpd/grind下面有這麼兩個文件:mf.cfg和script.cfg。
mf.cfg的內容是:
define(TEXTfilter, text ""
14 )dnl
define(PSfilter, `filter /usr/share/printconf/util/mf_postscript_wrapper --mfomatic -d lj5gray-75168.foo')dnl
script.cfg的內容是:
share="//glass/HPLaserj" #glass機器上面共享的打印機
hostip="192.168.1.123" #glass這台機器的IP
user=""
password=""
workgroup=""
translate="no"
完成這個工作後,啟動lpd進程,然後就能用lpr等命令使用網絡打印機打印了。
使用網絡共享文件資源:
列出網絡資源:
一般可以用smbclient來列出某台機器相關的資源,smbclient的用法參考http://www.linuxaid.com.cn/training/...wtod.jsp?i=241
。這裡講比較有用的使用方法:
smbclient -L IP或者NETBIOS名稱,作用是顯示某台提供samba服務的服務器上的共享資源。命令執行效果如下:
smbclient -L glass
Sharename Type Comment
--------- ---- -------
IPC$ IPC 遠程 IPC
HPLaserJ Printer HP LaserJet 6P
ADMIN$ Disk 遠程管理
littlep Disk
C$ Disk 默認共享
Server Comment
--------- -------
GLASS
GRIND
Workgroup Master
--------- -------
BLUESUN GLASS
WORKGROUP HEIHEI
第一段列舉了該機器(glass)上面的共享資源,第二段列舉了glass所在的工作組裡面所有提供samba服務的機器,第三列舉了其他工作組提供browse服務的Master機器(關於Master和Browse服務可以參考我的前面一篇samba使用大全-samba服務器)。
使用網絡資源:
smbclient //IP或者NETBIOS名稱/共享資源名 [-U 用戶名]
命令執行效果如下:
smbclient //glass/littlep
added interface ip=192.168.1.123 bcast=192.168.1.255 nmask=255.255.255.0
Got a positive name query response from 192.168.1.123 (192.168.1.123)
Password:
Domain=[BLUESUN] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]
smb: >
接下來的操作和ftp的時候命令一樣,用get下載文件而用put上傳文件,命令可以用help查看。
還有一種方法是用文件系統的方式(這種方式要確定你的內核支持smbfs,如果沒有支持的話,編譯內核的時候必須選中File systems--->Network File Systems---> SMB file system support (to mount Windows shares etc.) ):
smbmount //IP或者NETBIOS名稱/共享資源名 /本地掛接點 [-o option]
常用的的option有username=<用戶名>,password=<密碼>,guest(指定為用guest訪問,不用提供密碼,前面的即使用username=guest參數的話也會要求輸入密碼),ro(有時候為了系統安全要指定為只讀模式),rw,同時多個option的話用逗號隔開。
或者可以用mount -t smbfs [-o option] //IP或者NETBIOS名稱/共享資源名 /本地掛接點來實現同樣的功能。
例子如下:
smbmount //glass/littlep /test -o guest或者mount -t smbfs -o guest //glass/littlep /test,然後就能通過訪問/test來使用網絡上的資源了。
如果不需要使用的時候,可以簡單地使用smbumount /test或者umount /test來解除這個掛接。
關於samba的功能(共享Linux磁盤給Win95/NT、共享Linux打印機給win95/NT、共享win95/NT打印機給Linux機器。、共享Win95/NT磁盤給Linux機器),前面兩個屬於samba服務器的內容而後兩個屬於samba客戶段的內容,在我的兩篇文章中都有介紹了他們的實現方法,但是samba實在是一個強大的工具,無法十分詳細地介紹它地全部功能,而且限於筆者的知識有限,有不到之處請各位指出,還望各位多多交流。
2002/6/30 PM 09:09:18

我在看smb.conf文件的時候,發現有的選項前面有分號,而有的卻沒有,有星號的表示註釋
那麼我是不是要把分號去掉呢?

好!

有一點問題請教
 
Samba使用大全中有這樣一段:

force user強制把建立文件的屬主是誰。如果我有一個目錄,讓guest可以寫,那麼guest就可以刪除,如果我用force user= grind強制建立文件的屬主是grind,同時限制create mask = 0755,這樣guest就不能刪除了。

如上面所述,我建立一個共享文件夾(smb.conf片斷)
...........
[MyShare]
comment = share directory
path = /home/myshare
writable = yes
public = yes
create mode = 0755
directory mode = 0755
force user = root

按照資料的意思,不論我以任何用戶登陸到這個共享文件夾,在這個文件夾裡建立的文件都是屬於root用戶的,當前用戶建立文件之後應該就是沒有刪除的權限了。
我試驗,在win2000登陸到samba服務器,進入myshare目錄,在裡面建立好一個文本文件test.txt之後,我在samba服務器上用root登陸,進入myshare目錄,用ls -l查看,test.txt的屬主是root,屬性是 -rwxr--r--,這樣應該說我在win2000上就應該不能刪除這個test.txt文件了,但是,在win2000里,卻可以刪除這個文件,不知道兄弟們有沒有注意這個問題?到底怎樣解釋?

還有一個問題,/home/myshare目錄是root用戶建立的,用命令chmod 777 /home/myshare 更改過權限,上面的權限問題是不是和這個文件夾的權限有關?
請大家幫忙看看。謝謝!!!

up

有分號的是註釋

引用:
--> 最初由 rockwind 發表
有分號的是註釋 -->


呵呵
這個我想我還是知道的


我發現force user = ...這一行的作用不是「force user強制把建立文件的屬主是誰。如果我有一個目錄,讓guest可以寫,那麼guest就可以刪除,如果我用force user= grind強制建立文件的屬主是grind,同時限制create mask = 0755,這樣guest就不能刪除了」這個意思,而是任何登陸的用戶進入這個目錄時就被當作root,作為root當然可以進行任何操作,登陸身份的改變是在剛登陸之後。
我在linux系統中察看當前連接到samba的用戶id時發現:不管我用那一個用戶登陸samba服務器,只要我進入MyShare目錄,當前的用戶id就變為root,

可是,這樣的話,我就無法實現限制用戶在指定目錄裡只能寫,不能刪除的權限了,這樣的權限限制在windows的ntfs文件系統中是很容易實現的,

不知道在samba中如何才能實現這樣的限制,抑或根本就實現不了?
還請大家幫忙!!

Good!!!!

Samba使用大全!
 
代碼:
-->




Samba安裝.配置.使用及相關問題解答



  認識Samba及安裝配置
  http://www.lslnet.com/linux/showthre...&threadid=4381
  http://www.lslnet.com/linux/showthre...threadid=16293



  Samba使用大全
  http://www.lslnet.com/linux/showthre...hreadid=139751



  redhat linux 9.0 samba配置詳解(週年紀念,原創)
  http://www.lslnet.com/linux/showthre...threadid=32531



  Samba使用和管理詳細指南
  http://www.lslnet.com/linux/showthre...threadid=13966
  http://www.lslnet.com/linux/showthre...threadid=24038



  網上鄰居Samba和LinNeighborhood
  http://www.lslnet.com/linux/showthre...threadid=12020



  如何架設Samba服務器,用user共享方式?
  http://www.lslnet.com/linux/showthre...threadid=17805



  xfsamba帶有圖形界面的linux訪問windows或linux訪問linux的工具
  http://www.lslnet.com/linux/showthre...threadid=16296



  用實驗快速學習Samba[原創]
  http://www.lslnet.com/linux/showthre...threadid=50786



  用Samba構建虛擬NT域服務器
  http://www.lslnet.com/linux/showthre...threadid=57490



  Samba3.0輕鬆搞定PDC域服務器
  http://www.lslnet.com/linux/showthre...threadid=74045



  很好的Samba小教程!
  http://www.lslnet.com/linux/showthre...threadid=13715



  Samba服務配置文件中涉及到的配置命令列表,請大家進行補充說明
  http://www.lslnet.com/linux/showthre...threadid=57406








-->

x謝謝了
我正在學呢




Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com