作者 主題: [最佳]guest ok = yes 及 public = yes 的差異  (閱讀 13301 次)

0 會員 與 1 訪客 正在閱讀本文。

meetfoot

  • 懷疑的國中生
  • **
  • 文章數: 39
    • 檢視個人資料
有三個問題請教各位學長們:

1、samba 中對分享資源的設定 ,其中 guest ok = yes 及 public = yes 的差異在何處呢?

2、何種情況下..mount -t smbfs //192.168.3.1/win32_c /mnt/smb 會mount不了win32的系統...一般來說如果有mount到會提示我們輸入帳號、密碼去使用這個資源,但有時mount之後會顯示錯誤訊息,是什麼服務沒有開還是相關的檔案loss了?

3、在Windows中要進Samba Server時,Samba 驗證的使用者是Windows登入的帳號,也就是說Windows的登入帳號如果是 usr1,那個在 liunx中一定要有一個usr1的使用者,這是小弟玩Samba來一直都是如此,不知是否正確?因為這個疑問如第一點,即使是設 Security 設為 share ,資源設 guest ok = yes 或 public = yes ,只要這個Windows的豋入帳號不存在linux中,那還是無法使用Samba....是這樣子的嗎?  請學長替我釋疑吧?

日京三子

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 8829
    • 檢視個人資料
    • http://www.24online.cjb.net
Re: guest ok = yes 及 public = yes 的差異
« 回覆 #1 於: 2004-02-25 09:11 »
引述: "meetfoot"
有三個問題請教各位學長們:

1、samba 中對分享資源的設定 ,其中 guest ok = yes 及 public = yes 的差異在何處呢?

2、何種情況下..mount -t smbfs //192.168.3.1/win32_c /mnt/smb 會mount不了win32的系統...一般來說如果有mount到會提示我們輸入帳號、密碼去使用這個資源,但有時mount之後會顯示錯誤訊息,是什麼服務沒有開還是相關的檔案loss了?

3、在Windows中要進Samba Server時,Samba 驗證的使用者是Windows登入的帳號,也就是說Windows的登入帳號如果是 usr1,那個在 liunx中一定要有一個usr1的使用者,這是小弟玩Samba來一直都是如此,不知是否正確?因為這個疑問如第一點,即使是設 Security 設為 share ,資源設 guest ok = yes 或 public = yes ,只要這個Windows的豋入帳號不存在linux中,那還是無法使用Samba....是這樣子的嗎?  請學長替我釋疑吧?


1.
代碼: [選擇]
guest = ok的意義是說, 他完全不管, 所有要求都當作是guest 來處理
代碼: [選擇]
public =ok是開放給有權限的人存取, 所有存取動作皆會在log那邊留下紀錄..

2. 這應該是你電腦環境的問題, 至少小弟沒發生過...

3.當你把security設定成share, 那就是告訴smb, 所有人都是nobody, nobody不能存取任何有帳號的人所使用的檔案或者目錄.

我們在linux本身權限裡面, 都會把nobody設定成nologin或者是false, 也就是說, nobody就算遇到有人把權限設定為777, 他也只能"望檔興嘆"... 記住, samba不管你怎麼設定, 還是要對照你在/etc/passwd之類的設定, 他還只是linux權限掌控之中的一隻服務程式而已...
哈克不愛的多合一輸入平台----->新香草口味
過去的時間不斷流逝,抹去的眼淚已成追憶;
乾枯的雙手無力阻止,再會了我遠去的曾經。

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17463
    • 檢視個人資料
    • http://www.study-area.org
[最佳]guest ok = yes 及 public = yes 的差異
« 回覆 #2 於: 2004-02-25 12:26 »
guest ok = yes
public = yes
是一樣的,若同時設,以 last match 為準。

同樣的:
read only = yes
writeable = no
也是一樣的...

create mode
create mask
亦然...

還有很多...

meetfoot

  • 懷疑的國中生
  • **
  • 文章數: 39
    • 檢視個人資料
[最佳]guest ok = yes 及 public = yes 的差異
« 回覆 #3 於: 2004-02-25 12:27 »
謝謝三子學長。針對第二點,因為目前這台有問題的Linux主機不在身邊,下次我把錯誤訊息貼上來。 再次謝謝

日京三子

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 8829
    • 檢視個人資料
    • http://www.24online.cjb.net
[最佳]guest ok = yes 及 public = yes 的差異
« 回覆 #4 於: 2004-02-25 12:31 »
引述: "netman"
guest ok = yes
public = yes
是一樣的,若同時設,以 last match 為準。

同樣的:
read only = yes
writeable = no
也是一樣的...

create mode
create mask
亦然...

還有很多...


老大~~ 不是這樣子說的啊!

在share模式底下, guest 跟public是相同的意思(因為本身就不認證也不檢查; 但如果是在其他模式(例如user, domain, ads等), 意義是完全不同的...

create 也是相同的意思
哈克不愛的多合一輸入平台----->新香草口味
過去的時間不斷流逝,抹去的眼淚已成追憶;
乾枯的雙手無力阻止,再會了我遠去的曾經。

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17463
    • 檢視個人資料
    • http://www.study-area.org
[最佳]guest ok = yes 及 public = yes 的差異
« 回覆 #5 於: 2004-02-25 12:34 »
guest
guest ok
上面兩個是不同的設定....

bono

  • 榮譽學長
  • 活潑的大學生
  • ***
  • 文章數: 363
  • 性別: 男
    • 檢視個人資料
[最佳]guest ok = yes 及 public = yes 的差異
« 回覆 #6 於: 2004-02-25 16:06 »
查了一下 smb.conf 的 man,
引用
public
This parameter is a synonym for guest ok.


public 和 guest ok 是同義字沒錯....
/___/_/___/_/___/_/___/_/___/_/___/

-=-  Bono   -=-  MCSE & LPIC Tutor -=-
_/___/_/___/_/___/_/___/_/___/_/___/

meetfoot

  • 懷疑的國中生
  • **
  • 文章數: 39
    • 檢視個人資料
[最佳]guest ok = yes 及 public = yes 的差異
« 回覆 #7 於: 2004-02-25 22:11 »
找到啦...不知這個訊息的意思....

[root@localhost root]# mount -t smbfs //192.168.0.251/c /mnt/smb
25238: session request to 192.168.0.251 failed (Called name not present)
25238: session request to 192 failed (Called name not present)
25238: session request to *SMBSERVER failed (Called name not present)
SMB connection failed

所安裝的套件為
[root@localhost root]# rpm -qa | grep samba
samba-client-2.2.7-5.8.0
samba-2.2.7-5.8.0
samba-common-2.2.7-5.8.0

麻煩學長看一下...

meetfoot

  • 懷疑的國中生
  • **
  • 文章數: 39
    • 檢視個人資料
[最佳]guest ok = yes 及 public = yes 的差異
« 回覆 #8 於: 2004-02-25 22:15 »
上一個是mount win98的系統..

這個是 mount Winxp的系統

mount -t smbfs //192.168.0.107/d /mnt/smb
25337: session request to 192.168.0.107 failed (Called name not present)
25337: session request to 192 failed (Called name not present)
Password:
25337: tree connect failed: ERRDOS - ERRnosuchshare (You specified an invalid sh SMB connection failed

meetfoot

  • 懷疑的國中生
  • **
  • 文章數: 39
    • 檢視個人資料
[最佳]guest ok = yes 及 public = yes 的差異
« 回覆 #9 於: 2004-02-26 00:55 »

在share模式底下, guest 跟public是相同的意思(因為本身就不認證也不檢查; 但如果是在其他模式(例如user, domain, ads等), 意義是完全不同的...

create 也是相同的意思



我一直試不出來,在user的模式下,guest ok = yes 及 public = yes 的差異..
因為一直登錄不進去...
我的想法是,即然是為user等級,表示在linux中應該要存在帳號並用smbpasswd 來建立samba的密碼才是,所以在user模式時 guest ok = yes 及 public = yes ,應該是沒有作用的...

反到是設為 share 等級時,再用 write list 及 valid users 來限制誰可以存取來的方便...不知學長看法如何呢?

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17463
    • 檢視個人資料
    • http://www.study-area.org
[最佳]guest ok = yes 及 public = yes 的差異
« 回覆 #10 於: 2004-02-26 01:17 »
若 security = share ,則是無須作身份驗證,就可以接受 guest 身份。
但在 security = user (or server, domain) ,則要作身份驗證,而不接受 guest 。

guest ok 或 public ,只是將本來要驗證的,變成可接受 guest 而已。

meetfoot

  • 懷疑的國中生
  • **
  • 文章數: 39
    • 檢視個人資料
[最佳]guest ok = yes 及 public = yes 的差異
« 回覆 #11 於: 2004-02-26 01:30 »
引述: "netman"
若 security = share ,則是無須作身份驗證,就可以接受 guest 身份。
但在 security = user (or server, domain) ,則要作身份驗證,而不接受 guest 。

guest ok 或 public ,只是將本來要驗證的,變成可接受 guest 而已。


謝謝學長的解釋。

剛才又努力了實驗..得到一個結果..

先不管 share 模式.下的 guest ok = yes 或 public = yes ,經實驗兩個都相同..
在user下也一樣...

差別是 用 share 時...不需在linux下建帳號也可以進入....

用 user 時分兩種情況:
   1、如果不設 guest ok = yes 或  public = yes ,則  samba 會驗證登入的  
           名稱是否與Windows登入的人相同,不相同一定進不了。
           ex. linux上有usr1,則win登入的user也一定要是usr1。
     
  2、如果有設 guest ok = yes 或 public = yes,則 samba 仍會驗證登入的
          帳號,而且一定也要是存在 linux 上的帳號,差別是,不一定與win登入
         的帳號相同。
        ex. linux上有usr1,如win登入時用usr2,雖然在linux上沒有usr2帳號,
                  但只要在輸入密碼時給 usr1及 usr1的samba密碼即可,當然所建的
                  檔案也是屬於usr1的。

   不知以上解釋,是不是清礎多了。如果有錯請大家指點。

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17463
    • 檢視個人資料
    • http://www.study-area.org
[最佳]guest ok = yes 及 public = yes 的差異
« 回覆 #12 於: 2004-02-26 01:52 »
嗯... meetfoot 兄的實驗精神很令人敬佩,加油﹗

或許,用 linux 的 smbmount 來測會比較好理解:
下面都是在  security = user 下測試的:

1) 當 public = yes 時:
# mkdir /mnt/smb
# mount -t smbfs -o "passwd=" //localhost/tmp /mnt/smb
Anonymous login successful
# umount /mnt/smb

2) 當 public = no 時:
# mount -t smbfs -o "passwd=" //localhost/tmp /mnt/smb
Anonymous login successful
5139: tree connect failed: ERRSRV - ERRbadpw (Bad password - name/password pair in a Tree Connect or Session Setup are invalid.)
SMB connection failed

# mount -t smbfs -o "username=user,passwd=123456" //localhost/tmp /mnt/smb
# umount /mnt/smb

meetfoot

  • 懷疑的國中生
  • **
  • 文章數: 39
    • 檢視個人資料
[最佳]guest ok = yes 及 public = yes 的差異
« 回覆 #13 於: 2004-02-26 02:10 »
謝謝 Netman 學長...
小弟會多努力......meetfoot,我的英文不太好.就叫「肉腳」吧...

日京三子

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 8829
    • 檢視個人資料
    • http://www.24online.cjb.net
[最佳]guest ok = yes 及 public = yes 的差異
« 回覆 #14 於: 2004-02-26 07:11 »
引述: "meetfoot"
先不管 share 模式.下的 guest ok = yes 或 public = yes ,經實驗兩個都相同..
在user下也一樣...

差別是 用 share 時...不需在linux下建帳號也可以進入....


恩, 你懂得我部分的意思了! 如果再加上你去看Linux端存檔的擁有者跟群組(Owner & Group ), 與存檔的權限, 你就會更加清楚這之間的定義差異...

如果繼續研究pam for samba部分, 你會知道的更多!

不能用以前鬆散的邏輯去思考整個流程! 你面對的不是一整套系統, 只是這套系統中的一個服務(Service); 至於他要不要服務你, 還要過問他老大(Server)才行!
哈克不愛的多合一輸入平台----->新香草口味
過去的時間不斷流逝,抹去的眼淚已成追憶;
乾枯的雙手無力阻止,再會了我遠去的曾經。

Jishon

  • 榮譽博士
  • 活潑的大學生
  • ***
  • 文章數: 321
    • 檢視個人資料
[最佳]guest ok = yes 及 public = yes 的差異
« 回覆 #15 於: 2004-02-26 10:20 »
不知這樣說對不對

在user及share mode下使用public=yes及guest=ok狀況下
samba會認證(Authenticate,看使用者是誰)而不需授權(Authorize)
亦即檢查本地端使用者資料庫(/etc/samba/smbpasswd)
而預設samba的guest account為nobody(有些系統不是...)

在domain,server,ads mode使用public=yes及guest=ok狀況下
samba亦會認證(Authenticate)而不需授權(Authorize)
但是使用者資料庫改由password server=???指定

若public=no或guest ok=no或未指定的狀況下
samba則會做認證及授權(根據Valid, invalid, write list, ACL.........)兩個動作
Sendmail, BIND 惡補中.....

meetfoot

  • 懷疑的國中生
  • **
  • 文章數: 39
    • 檢視個人資料
[最佳]guest ok = yes 及 public = yes 的差異
« 回覆 #16 於: 2004-02-27 08:16 »
小弟後來也發現,不同的Client,像win98及winxp,連上Samba時的認證,所輸入的畫面是不相同的,我這裡指的是設user時,的public = yes ,win98仍會以登入的使用者為主,直詢問密碼,這與不設public = yes 似乎一樣。

但 winxp下,設 public = yes ,會讓我們輸入不同於登入使用者的user,及密碼.....

日京三子

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 8829
    • 檢視個人資料
    • http://www.24online.cjb.net
[最佳]guest ok = yes 及 public = yes 的差異
« 回覆 #17 於: 2004-02-27 09:04 »
引述: "meetfoot"
小弟後來也發現,不同的Client,像win98及winxp,連上Samba時的認證,所輸入的畫面是不相同的,我這裡指的是設user時,的public = yes ,win98仍會以登入的使用者為主,直詢問密碼,這與不設public = yes 似乎一樣。

但 winxp下,設 public = yes ,會讓我們輸入不同於登入使用者的user,及密碼.....

這是作業系統本身的設定, 跟samba沒有關係....... 你搞錯方向了....
哈克不愛的多合一輸入平台----->新香草口味
過去的時間不斷流逝,抹去的眼淚已成追憶;
乾枯的雙手無力阻止,再會了我遠去的曾經。

jameslfp

  • 懷疑的國中生
  • **
  • 文章數: 35
    • 檢視個人資料
[最佳]guest ok = yes 及 public = yes 的差異
« 回覆 #18 於: 2004-07-21 14:36 »
小弟最近有空也剛好找了一本舊書來研究...

share模式時,是針對每一項共享資源做認證,而linux採用unix的認證方式,也就是根據client端的帳號及密碼做驗證..,即linux主機上需建立samba的密碼檔..

如果在share模式下使用 guest ok = yes ,表示不驗證身份/密碼..

至於 user 模式下.... 表示需要驗證帳號與密碼,才可登入..即然是需要帳號密碼登入,guest ok = yes 或  guest ok = no ,並沒什麼義意...

當然,實作的結果請依你的環境為主吧,也許不同的samba版本會有差異...

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17463
    • 檢視個人資料
    • http://www.study-area.org
[最佳]guest ok = yes 及 public = yes 的差異
« 回覆 #19 於: 2004-07-21 14:43 »
不對:
若 security = share 就無須認證了, 都用 guest 即可訪問.

jameslfp

  • 懷疑的國中生
  • **
  • 文章數: 35
    • 檢視個人資料
[最佳]guest ok = yes 及 public = yes 的差異
« 回覆 #20 於: 2004-07-24 19:49 »
引述: "netman"
不對:
若 security = share 就無須認證了, 都用 guest 即可訪問.


Netman兄:

   我在測了一次,可是設為 share 後,如果不指定資源是 guest ok = yes ,仍需要鍵入密碼 。那是怎麼一回事呢? 還是有點疑惑的學生.

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17463
    • 檢視個人資料
    • http://www.study-area.org
[最佳]guest ok = yes 及 public = yes 的差異
« 回覆 #21 於: 2004-07-24 21:03 »
是嗎?
你用 /tmp 來 share 看看?