透過網路刪除 Mac 上的檔案,為啥不會丟到【垃圾桶】?

本區專門提供 Mac OS X 使用者交換使用心得

版主: ross_ttbryanchangdigdogchester

內容
發表人
頭像
進藤光
冰果室元老
文章: 3205
註冊時間: 03/16/2005 5:18 pm
來自: insoler.com
聯繫:

透過網路刪除 Mac 上的檔案,為啥不會丟到【垃圾桶】?

#1 文章 進藤光 »

這是我 N 年前就想問的問題..... 其實也只有 4 年啦..... 從 MacOS X 10.0 開始....

為什麼 PC 透過網路刪除另一部 Mac 上共享出來的檔案,為啥刪掉的檔案不會被丟到【垃圾桶】?而是永遠消失? :?

請問是因為 MacOS X 沒有【網路垃圾桶】嗎?
頭像
bryanchang
討論區管理員
文章: 7057
註冊時間: 04/19/2001 1:01 am
來自: The '60s
聯繫:

#2 文章 bryanchang »

icat 寫:有嗎? :shock:

無做過這個行為,唔知有這個! :roll:
通常都唔掉人家的東西! :badgrin:
icat 今後請你使用普通話留言,冰果室討論區禁止使用廣東話口語與注音文張貼留言。謝謝合作。
圖檔
頭像
ulysses
討論區管理員
文章: 2475
註冊時間: 05/18/2001 1:01 am
來自: Forgotten Realm
聯繫:

#3 文章 ulysses »

還記得我跟說過的 SMB 使用者權限與本機使用者權限的問題嗎?

PC 的使用者連到你的 Mac 上時用的帳號,與你 Mac 上的帳號其實是完全無關的,OS X 內建的 Windows File Sharing 會用相同的帳號密碼純粹是為了方便考量。以實際的 Samba 運作來說,你也有可能多個不同的 Windows Share 帳號對應到一個本機端的特定權限,甚至是『禁止登入』型的特殊帳號。

現在問題來了:當 PC 上的使用者要刪除遠端連線機器的檔案時,要把檔案丟到誰的垃圾桶?檔案原持有人?連線對照權限的帳號?還是 PC 上?別忘了前兩個都有可能是一個禁止登入的帳號。
ash nazg durbatuluk, ash nazg gimbatul,
ash nazg thrakatuluk agh burzum-ishi krimpatul.
頭像
進藤光
冰果室元老
文章: 3205
註冊時間: 03/16/2005 5:18 pm
來自: insoler.com
聯繫:

#4 文章 進藤光 »

ulysses 寫:還記得我跟說過的 SMB 使用者權限與本機使用者權限的問題嗎?

PC 的使用者連到你的 Mac 上時用的帳號,與你 Mac 上的帳號其實是完全無關的,OS X 內建的 Windows File Sharing 會用相同的帳號密碼純粹是為了方便考量。以實際的 Samba 運作來說,你也有可能多個不同的 Windows Share 帳號對應到一個本機端的特定權限,甚至是『禁止登入』型的特殊帳號。

現在問題來了:當 PC 上的使用者要刪除遠端連線機器的檔案時,要把檔案丟到誰的垃圾桶?檔案原持有人?連線對照權限的帳號?還是 PC 上?別忘了前兩個都有可能是一個禁止登入的帳號。
淚~~~來發問.... 結果被大老考試反問~~~ ](*,) ](*,)
先回答問題好了....

當 PC 上的使用者要刪除遠端連線機器的檔案時,要把檔案丟到誰的垃圾桶? 答:當然是【遠端連線機器自己的垃圾桶】,也就是 Mac 自己的.... 我認為這應該是 File Server 的基本功能,不幸的是..... 沒這功能!!

檔案原持有人?答:也可以吧??我的檔案被別人不慎 Delete 了,可以從我自己的垃圾桶找回來啊.... 不幸的是..... 也沒這功能!

連線對照權限的帳號?答:這句話就有點不懂了.... 你是指我的電腦用 Mary 登入,然後用 John 登入到 Mac Server 嗎??如果是.... 刪掉 John 的檔案,還是要丟到 Mac 自己的【垃圾桶】啊.... 不幸的是..... 也沒這功能!

還是 PC 上?答:這就很離譜了!檔案既然是在遠端的【檔案伺服器】上,就不應該在 Delete 時 Copy 回到 PC,然後叫 Windows 丟到資源回收筒!否則大家都先把網路上的檔案 copy 回來,無論如何都會丟到自己的資源回收筒!

如果遠端的【檔案伺服器】是 Windows Server,再怎樣也應該是 Delete 的檔案會丟到 Windows Server 自己的資源回收筒!不幸的是..... Windows XP/Server 通通沒這功能!

我的想法是.... 既然這個檔案是放在 Mac 上,當然是直接丟到 Mac 自己的垃圾桶裡面囉..... 雖然下 Delete 指令的是 PC,Mac 裡面的檔案也不該透過網路拷回到自己的電腦,然後扔到【資源回收筒】裡面啊....

然而放在 Mac 裡面的檔案,既沒丟垃圾桶,也沒自動備份,就直接永遠消失了..... 這也未免太危險了吧??

請問,Mac 對 Mac 就沒有這種問題嗎?用一部 Mac 透過 ASF (AppleFileServer)去刪除另一部 Mac 上的檔案,被刪掉的檔案會丟到這部電腦的垃圾桶??
stoby
留言破百
文章: 202
註冊時間: 04/22/2002 1:01 am
來自: 台灣/台南

Re: 透過網路刪除 Mac 上的檔案,為啥不會丟到【垃圾桶】?

#5 文章 stoby »

進藤光 寫:這是我 N 年前就想問的問題..... 其實也只有 4 年啦..... 從 MacOS X 10.0 開始....

為什麼 PC 透過網路刪除另一部 Mac 上共享出來的檔案,為啥刪掉的檔案不會被丟到【垃圾桶】?而是永遠消失? :?

請問是因為 MacOS X 沒有【網路垃圾桶】嗎?
您的問題好像不關 MAC 的問題吧

相同的問題 ....

若是 MAC 透過網路刪除另一部 PC 上共享出來的檔案,為啥刪掉的檔案不會被丟到【垃圾桶】?而是永遠消失? :?
請問是因為 PC 沒有【網路垃圾桶】嗎?

............
頭像
進藤光
冰果室元老
文章: 3205
註冊時間: 03/16/2005 5:18 pm
來自: insoler.com
聯繫:

Re: 透過網路刪除 Mac 上的檔案,為啥不會丟到【垃圾桶】?

#6 文章 進藤光 »

stoby 寫:
進藤光 寫:這是我 N 年前就想問的問題..... 其實也只有 4 年啦..... 從 MacOS X 10.0 開始....

為什麼 PC 透過網路刪除另一部 Mac 上共享出來的檔案,為啥刪掉的檔案不會被丟到【垃圾桶】?而是永遠消失? :?

請問是因為 MacOS X 沒有【網路垃圾桶】嗎?
您的問題好像不關 MAC 的問題吧

相同的問題 ....

若是 MAC 透過網路刪除另一部 PC 上共享出來的檔案,為啥刪掉的檔案不會被丟到【垃圾桶】?而是永遠消失? :?
請問是因為 PC 沒有【網路垃圾桶】嗎?

............
你也是來反問我已經說過的回答嗎??
stoby
留言破百
文章: 202
註冊時間: 04/22/2002 1:01 am
來自: 台灣/台南

Re: 透過網路刪除 Mac 上的檔案,為啥不會丟到【垃圾桶】?

#7 文章 stoby »

我是不知道 到底是怎麼回事 因為我只是電腦的使用者 軟體怎麼設計的 我也不懂

我猜你是知道答案 只是想探討問題的任何可能性 反問你是有點不智之舉 說聲抱歉

就我的邏輯這個問題的答案因該就是如此

MAC對MAC也是直接殺掉了 因為把對方的檔案丟進垃圾桶這個動作 是丟進你的垃圾桶 而不是他的垃圾桶 而您所說得網路垃圾桶 的觀念 應該還沒有定義

小弟不才.......
頭像
進藤光
冰果室元老
文章: 3205
註冊時間: 03/16/2005 5:18 pm
來自: insoler.com
聯繫:

Re: 透過網路刪除 Mac 上的檔案,為啥不會丟到【垃圾桶】?

#8 文章 進藤光 »

stoby 寫:我是不知道 到底是怎麼回事 因為我只是電腦的使用者 軟體怎麼設計的 我也不懂

我猜你是知道答案 只是想探討問題的任何可能性 反問你是有點不智之舉 說聲抱歉

就我的邏輯這個問題的答案因該就是如此

MAC對MAC也是直接殺掉了 因為把對方的檔案丟進垃圾桶這個動作 是丟進你的垃圾桶 而不是他的垃圾桶 而您所說得網路垃圾桶 的觀念 應該還沒有定義

小弟不才.......
不用抱歉,我沒生氣.....

關於你之前問的問題我已經回答過了,就是這個:

如果遠端的【檔案伺服器】是 Windows Server,再怎樣也應該是 Delete 的檔案會丟到 Windows Server 自己的資源回收筒!不幸的是..... Windows XP/Server 通通沒這功能!
頭像
ulysses
討論區管理員
文章: 2475
註冊時間: 05/18/2001 1:01 am
來自: Forgotten Realm
聯繫:

#9 文章 ulysses »

進藤光 寫:檔案原持有人?答:也可以吧??我的檔案被別人不慎 Delete 了,可以從我自己的垃圾桶找回來啊.... 不幸的是..... 也沒這功能!

連線對照權限的帳號?答:這句話就有點不懂了.... 你是指我的電腦用 Mary 登入,然後用 John 登入到 Mac Server 嗎??如果是.... 刪掉 John 的檔案,還是要丟到 Mac 自己的【垃圾桶】啊.... 不幸的是..... 也沒這功能!

還是 PC 上?答:這就很離譜了!檔案既然是在遠端的【檔案伺服器】上,就不應該在 Delete 時 Copy 回到 PC,然後叫 Windows 丟到資源回收筒!否則大家都先把網路上的檔案 copy 回來,無論如何都會丟到自己的資源回收筒!

如果遠端的【檔案伺服器】是 Windows Server,再怎樣也應該是 Delete 的檔案會丟到 Windows Server 自己的資源回收筒!不幸的是..... Windows XP/Server 通通沒這功能!
你忘了一件事:垃圾桶不是共用的,每個帳號都有自己的垃圾桶。

UNIX 系統習慣用特殊帳號來作為特定服務的權限,最常見的就是『nobody』、『daemon』。你不能用這些帳號 Login 進系統,不管是從遠端還是在那機器面前。既然不能 Login,那麼這些帳號當然就沒有自己的垃圾桶存在。

以 Samba 的例子來說,當你遠端 Login 到一台 Mac 上時,雖然你用的是那台機器的帳號密碼,例如說,mary,但是你並不是以 mary 的身分來『登入』那台機器,而是『SAMBA』這個程式取得了 mary 的存取權限,然後以 SAMBA 這個使用者的身分來存取 mary 能夠存取的檔案。這就是『連線對照權限的帳號』。

在下一直強調的,Samba 的登入帳號密碼,和你本機上的帳號密碼『無關』。以上面的例子來說,你可以在 Samba 中登記一個那台機器上不存在的帳號『john』,然後當你在遠端機器透過 SMB 用 john 登入時,你實際取得的權限卻是『mary』的權限。同樣的,你也可以設定成這樣:當你在遠端機器透過 SMB 用『mary』登入時,你實際取得的權限卻是『nobody』這個帳號的權限。

現在再來看看網路垃圾桶的問題,

第一個例子,用 john 登入取得 mary 的權限,刪除的檔案要搬到『誰的』垃圾桶?此時系統的操作者是『SAMBA』這個沒有垃圾桶的帳號,登入的帳號『john』在這個系統上不存在,也沒有垃圾桶,那是該搬入 mary 的垃圾桶嗎?

如果上述的邏輯成立,表示這個運作的方式將是『把檔案搬入原持有人的垃圾桶』。但是這樣並沒有解決所有的問題; mary 這個帳號能夠存取的檔案不只是 mary 自己持有的檔案,mary 所屬的群組(Group)的檔案也都能夠存取。那麼,那些『不屬於 mary,但是 mary 能夠存取』的檔案又該搬到哪裡去?如果一視同仁搬到原持有者的垃圾桶,將會產生兩個副作用:

1. 如果原持有人是沒有垃圾桶的帳號,例如說,nobody,那該如何處理?
2. 當 mary 在那台機器上登入時,那些被搬到別人的垃圾桶的檔案,mary 一樣找不到。

當你把第二個例子套用進這個狀況,你會發現這個矛盾更進一步加深。

了解了吧?整個關鍵就在於:遠端登入的帳號和那台機器的帳號,完全是兩回事。你能夠用相同的帳號名稱和相同的密碼登入,純粹是為了讓你方便。系統的實際運作的方式,跟你想像的完全不同。

以 Samba 的角度來說,要做到類似『垃圾桶』的功能,嚴格來說是可行的,不過垃圾桶是以『分享 Domain』為單位,而不是以使用者為單位;而這種替代方案的垃圾桶也難以和系統層級的垃圾桶相結合。

請參考:http://www.samba.hk/?q=book/print/138
ash nazg durbatuluk, ash nazg gimbatul,
ash nazg thrakatuluk agh burzum-ishi krimpatul.
頭像
進藤光
冰果室元老
文章: 3205
註冊時間: 03/16/2005 5:18 pm
來自: insoler.com
聯繫:

#10 文章 進藤光 »

哇啊~~感謝!感謝!

當你反問我時..... 我就在想,莫非是想【點醒我什麼】?果然猜對了! :badgrin:

我承認我是 Samba 白癡..... 不過 Windows Server,AD 我可清楚的很,我架了很多部的 Server,User 端更是超過百部!用這個做基礎來回答你的寶貴意見:

你忘了一件事:垃圾桶不是共用的,每個帳號都有自己的垃圾桶。

Ans : 我沒忘!連 Windows XP / Server 也是如此,不然.... 會變成你丟我撿!我的資源回收筒會出現別人丟的檔案,那.... 安全性不就沒用了?

UNIX 系統習慣用特殊帳號來作為特定服務的權限....

Ans : 這點我只有聽說,完全搞不清楚...

在下一直強調的,Samba 的登入帳號密碼,和你本機上的帳號密碼『無關』.....

Ans : 當然囉!其實我說的【你是指我的電腦用 Mary 登入,然後用 John 登入到 Mac Server 嗎?】跟你說的是同一件事!在 WinXP 用 Mary 登入到自己電腦,也可以用同樣名稱密碼登入到 Server,但前提是【Server 上有事先建好同樣的帳號、密碼】,不過這個帳號、密碼跟 WinXP 上的 SID 不同,這只是 Server 上的帳號、密碼!
如果 Server 上沒有 Mary,而 Mary 卻用了 John 的帳號、密碼登入,並記憶密碼自動登入,完蛋了!就算後來在 Server 建好 Mary 帳號,在 WinXP 卻沒有一種辦法能把自動登入的 John 改回到 Mary..... 這是題外話......
重點是,在 Client 用啥帳號,Server 就應該用相同的帳號對應,也就是你說的【連線對照權限的帳號】

1. 如果原持有人是沒有垃圾桶的帳號,例如說,nobody,那該如何處理?

Ans : 我不知道 nobody 是啥意思??是指 Guest or Everyone 之類的嗎??

2. 當 mary 在那台機器上登入時,那些被搬到別人的垃圾桶的檔案,mary 一樣找不到。

Ans : 我覺得這很正常啊..... 你把開放給你用的檔案 delete 掉了,而該檔案的擁有者卻是別人,當然就丟到他自己的垃圾桶,例如 Mary 把 John 的檔案幹掉了,要找回來,當然要請 John 去幫忙找,不然就不要開放【修改】權限給 Mary,只准 Mary 讀取/寫入,就沒問題了!
Mary 把網路上 Server 的檔案刪掉了,當然不會跑到自己的電腦裡面.... 應該是跑到 Server 上的 Mary 的垃圾桶裡面囉.... 不幸的是.... Windows Server 只會永久消失.....
從 Mac 上去 delete Windows Server 的檔案,還會警告我,檔案會永久刪除.... 而 Windows 呢?就直接給我不見,連問都不問!

整個關鍵就在於:遠端登入的帳號和那台機器的帳號,完全是兩回事。你能夠用相同的帳號名稱和相同的密碼登入,純粹是為了讓你方便。

Ans : 是的,這我完全了解.... 我清楚的很!!!

系統的實際運作的方式,跟你想像的完全不同

Ans : 這就不知道你指的是啥??如果是 UNIX, Samba,我確實不懂......

以 Samba 的角度來說,要做到類似『垃圾桶』的功能,嚴格來說是可行的,不過垃圾桶是以『分享 Domain』為單位,而不是以使用者為單位;而這種替代方案的垃圾桶也難以和系統層級的垃圾桶相結合。

Ans : 請問你指的是 Server 上 User 的 Trash,不能跟 Administrator 的 Trash 結合嗎?如果是.... 我覺得也沒什麼不對啊..... Administrator 雖然有最高管理權限,可是同屬於 Administrators 的帳號,也不能因為大家都是 Administrators,Windows Server 就把各位 Administrator 幹掉的檔案通通都丟到同一個 Trash 啊....

簡單的說,Mary 在 WinXP 把 Server 上,用相同帳號登入的檔案 delete 掉了,只要是 Mary 自己 Create 的,就可以請 Administrator 在 Server 上,用 Mary 登入,然後把檔案給救回來.... 假設 Mary 這個人沒有操作 Server 的權利!如果是幹掉別人擁有的,就用該帳號登入,然後去找垃圾....

或者 Administrator 有【神】的權限,可以直接在 Trash 看到所有帳號被 Delete 的檔案.... 不幸的是 Windows Server 沒這能耐.....

請參考:http://www.samba.hk/?q=book/print/138

Ans : 對我來說,根本是有字天書.... 看不懂..... 淚.......
頭像
進藤光
冰果室元老
文章: 3205
註冊時間: 03/16/2005 5:18 pm
來自: insoler.com
聯繫:

#11 文章 進藤光 »

這樣說吧..... 沒有【網路垃圾桶】的下場是啥?

1. 自己辛辛苦苦做好的檔案 Share 出來,卻被別人幹掉,而且沒的救回..... 就算有 Undelete or Unerase 也要及時救,不然久了,釋放的空間照樣可能被新檔案用掉!

2. Windows 中毒了,到處亂砍網路上的檔案!Mac 不是不會中毒嗎?為啥 Share 出來的檔案也不見了???Mac 自己沒中毒卻成為 Windows 的受害者....

我找了幾個 Network Trash,好像沒看到我要的 shareware....
頭像
ulysses
討論區管理員
文章: 2475
註冊時間: 05/18/2001 1:01 am
來自: Forgotten Realm
聯繫:

#12 文章 ulysses »

進藤光 寫:Ans : 我沒忘!連 Windows XP / Server 也是如此,不然.... 會變成你丟我撿!我的資源回收筒會出現別人丟的檔案,那.... 安全性不就沒用了?
這就是垃圾桶的安全盲點。垃圾桶雖然是個很直覺的操作界面,對非程式設計師來說他的運作原理也很簡單:『不就是把檔案搬到一個特定位置嗎』,殊不知,為了達到這個目的,有多少例外狀況在那邊等著;權限問題,持有者混雜問題,還有檔名衝突問題,一不小心就會產生大紕漏。

在現實世界的垃圾桶也是如此。尤其在有資訊保密需求的環境中,處理廢棄文件的標準作業也是碎紙機伺候,那丟了也是拿不回來的。
UNIX 系統習慣用特殊帳號來作為特定服務的權限....
Ans : 這點我只有聽說,完全搞不清楚...
這樣說好了,你的機器上有很多帳號,在你看得到的帳號之外,還有很多『幕後工作者』在台面下維持系統的正常運作。

舉個例子,MySQL 資料庫,這個程式必須保持持續運作狀態,在任何人 Login 這台電腦前就要開始運作,在所有使用者都 Logout 之後也要保持運作。

MySQL 資料庫是用一個常駐型的程式,mysqld,來提供這個服務。這個程式需要能夠提供連線存取資料的服務,還需要把記錄的所有資料都存放在某一個檔案裡。為了做到這兩件事,mysqld 需要一個身分識別證,才能取用系統的資源。顯然的,MySQL 不屬於任何一個使用者私有的程式,那要給他什麼身分呢?最簡單的解決法,就是給他一個特殊的帳號,這個帳號就叫做『mysql』。

也就是說,MySQL,和其他很多伺服器軟體,就像大樓的清潔工;他們擁有進入大樓的 ID 卡,有開啟掃除用具櫃子的鑰匙,但是卻沒有自己的辦公桌,也沒有自己的垃圾桶。
在下一直強調的,Samba 的登入帳號密碼,和你本機上的帳號密碼『無關』.....

Ans : 當然囉!其實我說的【你是指我的電腦用 Mary 登入,然後用 John 登入到 Mac Server 嗎?】跟你說的是同一件事!在 WinXP 用 Mary 登入到自己電腦,也可以用同樣名稱密碼登入到 Server,但前提是【Server 上有事先建好同樣的帳號、密碼】,不過這個帳號、密碼跟 WinXP 上的 SID 不同,這只是 Server 上的帳號、密碼!
不是,你完全搞混了。

舉個例子,這個冰果室交流區用的 UBB 論壇系統,你用『進滕光』這個帳號登入,在下用『ulysses』這個帳號登入,但是架設冰果室 UBB 系統的主機上,並沒有『進滕光』和『ulysses』這兩個帳號,這純粹是 UBB 的使用者帳號。UBB 把這些使用者帳號資訊放在 mysql 中,和 UNIX 的作業系統帳號是完全獨立的兩回事。

如果你能夠接受『冰果室交流區的帳號密碼』和『安裝這套論壇的主機的帳號密碼』是不相干兩回事這樣的概念,就可以等同類推到 Samba。

Samba,從某些角度來說,就等同於一個 UBB 系統。Samba 本身不屬於作業系統的一部份,它只是一個架在作業系統之上的應用程式,你從遠端與 Samba 連上線,輸入一個帳號密碼通過 Samba 的認證,就可以遠端遙控它來作一些事。在這個過程中,你從遠端登入這台電腦用的帳號密碼,都只是『Samba 的帳號』,不是『作業系統帳號』。
以 Samba 的角度來說,要做到類似『垃圾桶』的功能,嚴格來說是可行的,不過垃圾桶是以『分享 Domain』為單位,而不是以使用者為單位;而這種替代方案的垃圾桶也難以和系統層級的垃圾桶相結合。

Ans : 請問你指的是 Server 上 User 的 Trash,不能跟 Administrator 的 Trash 結合嗎?如果是.... 我覺得也沒什麼不對啊..... Administrator 雖然有最高管理權限,可是同屬於 Administrators 的帳號,也不能因為大家都是 Administrators,Windows Server 就把各位 Administrator 幹掉的檔案通通都丟到同一個 Trash 啊....
關鍵就在於:作業系統用來存放垃圾的目錄,Samba 沒有存取的權限。

作業系統是以硬碟分割區(Volume)為單位,一個硬碟分割區放置一個垃圾桶目錄,移除這個硬碟分割區上檔案時,會把檔案放置到那個分割區根目錄下的 『.Trash』目錄,例如『/Volume/myhd/.Trash/』,然後再把檔案的『捷徑』放到每個使用者目錄下的垃圾桶檔案夾,『~/.Trash/』目錄。為了避免發生之前說過的垃圾混雜問題,.Trash 目錄採用非常特殊的權限設定,任何人可以往裡面倒東西,但是卻不能把東西掏出來。所有對垃圾桶的操作,都必須透過 Finder 設定在每個使用者目錄下的垃圾桶檔案夾,才能進行處理。

如果你玩過 Share Point 你就了解,Samba 的分享是以『目錄』為單位。例如你在辦公室裡可能希望把『/Volume/myhd/MyProject』這個目錄分享出來,讓同事能夠存取。對方在 PC 上看到的,就是一個『\\MyMac\MyProject』這樣的路徑,裡所當然的,他看不到,也沒有權限存取你的『/Volume/myhd/.Trash/』。

別忘了 Samba 只是個『網路通訊軟體』,它只是實現 Windows SMB 通訊協定。從 Protocol 與系統存取權限的角度來看,Samba 唯一能做的『擬似』垃圾桶的功能,就是在『/Volume/myhd/MyProject』下建立一個『recycle』目錄,然後把移除的檔案丟到這裡面去。

現在你知道了,Finder 下的垃圾桶要維護的是 『/Volume/myhd/.Trash/』和『~/.Trash/』這兩個目錄,而 Samba 只能管理到『/Volume/myhd/MyProject/recycle』。所以在下說 Samba 的『擬似』垃圾桶,只能做到『垃圾集中』,但無法做到『移入系統垃圾桶』這個功能。

如果真的想實現這個功能,Apple 就需要把 Samba 整個改寫,讓 Samba 具備 Finder 的部份功能。這個工程不是普通的 Shareware 能辦得到的。
ash nazg durbatuluk, ash nazg gimbatul,
ash nazg thrakatuluk agh burzum-ishi krimpatul.
頭像
jamesjan
基本會員
文章: 39
註冊時間: 03/27/2005 10:00 am

#13 文章 jamesjan »

hmm........應該是要問"為什麼會被丟到垃圾桶"??

簡單的說,用command line執行 "rm -Rf balabala" ,balabala也不會被丟到垃圾桶阿!!

所以,被丟到垃圾桶這個動作,事實上並不是"delete",而是其他動作 maybe是 "move" or "compress"

也就是說,當你用Mac OS X,在桌面上把東西丟到垃圾桶這個行為

是透過"Auqa"達成的,是Aqua幫你把資料移到垃圾桶

(上面這句話是我猜測的,有可能是其他工具,不過可以幫助理解)

而不是底層的Darwin幫你做到的

Windows也是如此,你直接使用所謂的"命令提示字元"去刪除一個檔案

這也不會被移到資源回收統
頭像
進藤光
冰果室元老
文章: 3205
註冊時間: 03/16/2005 5:18 pm
來自: insoler.com
聯繫:

#14 文章 進藤光 »

這就是垃圾桶的安全盲點。垃圾桶雖然是個很直覺的操作界面,對非程式設計師來說他的運作原理也很簡單:『不就是把檔案搬到一個特定位置嗎』,殊不知,為了達到這個目的,有多少例外狀況在那邊等著;權限問題,持有者混雜問題,還有檔名衝突問題,一不小心就會產生大紕漏。
是的,我完全了解!所以 Trash 會記住檔案的絕對路徑,以便還原。User 前後扔進相同的檔名,Trash 就得自己區分檔名了....
這樣說好了,你的機器上有很多帳號,在你看得到的帳號之外,還有很多『幕後工作者』在台面下維持系統的正常運作。
你指的是常駐在背景的程式嗎?如果是指【帳號】,是指常駐程式用這些帳號來登入系統,然後執行嗎??
舉個例子,MySQL 資料庫,這個程式必須保持持續運作狀態,在任何人 Login 這台電腦前就要開始運作,在所有使用者都 Logout 之後也要保持運作。

MySQL 資料庫是用一個常駐型的程式,mysqld,來提供這個服務。這個程式需要能夠提供連線存取資料的服務,還需要把記錄的所有資料都存放在某一個檔案裡。為了做到這兩件事,mysqld 需要一個身分識別證,才能取用系統的資源。顯然的,MySQL 不屬於任何一個使用者私有的程式,那要給他什麼身分呢?最簡單的解決法,就是給他一個特殊的帳號,這個帳號就叫做『mysql』。
這我懂,只是我玩的是 MS SQL Server 2000,登入到 SQL Server 的帳號有兩種,一種是 SQL 長出來的,管理者在 SQL 上建立登入到 SQL Server 的帳號,另一種是直接使用 Windows Server 的系統帳號,當然 Client 帳號也可等同於 Server 帳號,這樣一來,他只要登入自己的 WinXP,就能一路自動登入到 Server 跟 SQL.....

不過,為了安全性起見,SQL 不會使用 Server 帳號,而是用 SQL 自己管理安全性的獨立帳號,同樣的,我的【進藤光】在我架的 phpBB 上,也只有存在於 SQL 裡面,想要用【進藤光】登入 Server 是絕對不可能的!因為 Server 上並沒有【進藤光】帳號。

撇開 MySQL,其實所有 phpBB, Xoops 之類的架站程式,SQL 都不會是使用 Server 帳號,否則我在冰果室的 phpBB 建了一個【進藤光】,就同時在 Server 也有一個【進藤光】,那真是太好了,哪天我就用【進藤光】駭到.... 登入到 Server.....
如果你能夠接受『冰果室交流區的帳號密碼』和『安裝這套論壇的主機的帳號密碼』是不相干兩回事這樣的概念,就可以等同類推到 Samba。

Samba,從某些角度來說,就等同於一個 UBB 系統。Samba 本身不屬於作業系統的一部份,它只是一個架在作業系統之上的應用程式,你從遠端與 Samba 連上線,輸入一個帳號密碼通過 Samba 的認證,就可以遠端遙控它來作一些事。在這個過程中,你從遠端登入這台電腦用的帳號密碼,都只是『Samba 的帳號』,不是『作業系統帳號』。
早說嘛....... 搞半天!原來 Samba 只是 MacOS X 的【外掛程式】啊..... 難怪連上 Samba 的網站都不是 Apple,而是 samba.org ......

我一直以為 Samba 只是 Apple 對 MacOS X 系統功能的一個【名詞】,就如同 Windows Server 的 AD or Workgroup 之類!
如果你玩過 Share Point 你就了解,Samba 的分享是以『目錄』為單位。例如你在辦公室裡可能希望把『/Volume/myhd/MyProject』這個目錄分享出來,讓同事能夠存取。對方在 PC 上看到的,就是一個『\\MyMac\MyProject』這樣的路徑,裡所當然的,他看不到,也沒有權限存取你的『/Volume/myhd/.Trash/』。
有玩 SharePoint,但是對這個工具提供的功能實在很不滿意,這簡直是相對於 Windows XP Home Edition 的安全性,要嘛不 Share,要 Share 就是幾乎等於 Everyone,誰都可以用,沒辦法再細部區分層級或對象......

搞了半天還是得手動去設 Samba...... 不幸的是..... 我是 Samba 白癡,剛開始 Study.... 離我想要把 Mac 當 File Server 以取代 Windows Server,還有很長一段路...... 唉~~~~
別忘了 Samba 只是個『網路通訊軟體』,它只是實現 Windows SMB 通訊協定。從 Protocol 與系統存取權限的角度來看,Samba 唯一能做的『擬似』垃圾桶的功能,就是在『/Volume/myhd/MyProject』下建立一個『recycle』目錄,然後把移除的檔案丟到這裡面去。
我沒忘,我是壓跟不知道!:badgrin: Apple 又沒說,Samba 只是個外掛程式,不是系統核心.... 上次你給的 Samba 香港,就是在幹【做一個『擬似』垃圾桶】的功能?原來啊.....

Unfortunately.... Samba.hk 裡面有一堆奇怪的符號,看不懂.... 也不知道要如何設定安裝..... 唉..... 一個 Windows 高手到了 UNIX 卻變成白癡......
現在你知道了,Finder 下的垃圾桶要維護的是 『/Volume/myhd/.Trash/』和『~/.Trash/』這兩個目錄,而 Samba 只能管理到『/Volume/myhd/MyProject/recycle』。所以在下說 Samba 的『擬似』垃圾桶,只能做到『垃圾集中』,但無法做到『移入系統垃圾桶』這個功能。
知道了,既然 Samba 是 Plug-in,當然有他的能力極限!不支援中文的【亂碼】就是其中之一!這點從 SharePoint 共享的【中文檔案夾】到了 Terminal 看得最清楚,Windows 根本不知道你 Mac 的 Samba 是 Share 啥資料夾....
如果真的想實現這個功能,Apple 就需要把 Samba 整個改寫,讓 Samba 具備 Finder 的部份功能。這個工程不是普通的 Shareware 能辦得到的。


【把 Samba 整個改寫】不敢想,先改寫支援中文吧.... 我猜想【簡繁中文】跟【日文】都會面臨相同的問題...

反正 Windows 也沒有【網路垃圾桶】,Mac.... 原來是 Samba ,也不急著長一個出來.... 全世界 N 個人都是這樣用的..... 唉.......
頭像
進藤光
冰果室元老
文章: 3205
註冊時間: 03/16/2005 5:18 pm
來自: insoler.com
聯繫:

#15 文章 進藤光 »

jamesjan 寫:Windows也是如此,你直接使用所謂的"命令提示字元"去刪除一個檔案

這也不會被移到資源回收統
不能這麼說....
在 Windows 3.1 時代,MS-DOS 就是開機系統,Windows 只是一個 Application 而已,DOS 本來就沒有 Trash,當然 Windows 也沒有!

後來到了 Win95....98, Me 長了一個【回收筒】出來.... DOS 還是沒改啊....
現在的 NT 系列,包括 NT / 2000 / 2003 / XP,DOS 只是外掛,只是一個 Virtual BOX,沒改的 MS-DOS 當然還是沒有 Trash,更不可能去支援 XP 裡面的【資源回收筒】....

DOS 的 del 永遠就直接把檔案在 FAT or NTFS 做上一個 delete mark,而不會先移到 Recycle Bin 裡面.....

我討論的重點不在【本機】,而是多人共用的【網路】.....

沒吃過虧,沒有發生自己辛辛苦苦建的檔案,被別人給 delete 整個 Folder,還不簡單,點個 Folder 然後按個 X,就永遠消失.... 還沒人敢承認是他幹的......你不會認為【網路垃圾桶】是很重要的!

要是 MacOS X 到現在還沒有【垃圾桶】,刪錯的檔案救不回來(假設也沒有 Unerase)只能怪自己手賤..... 但是別人手賤把你的東西幹掉,這要怪誰?怪你自己不備份??

老闆可不管你這個..... 他只要結果,東西呢?? :badgrin:
頭像
ulysses
討論區管理員
文章: 2475
註冊時間: 05/18/2001 1:01 am
來自: Forgotten Realm
聯繫:

#16 文章 ulysses »

進藤光 寫:
這樣說好了,你的機器上有很多帳號,在你看得到的帳號之外,還有很多『幕後工作者』在台面下維持系統的正常運作。
你指的是常駐在背景的程式嗎?如果是指【帳號】,是指常駐程式用這些帳號來登入系統,然後執行嗎??
差不多,不過不是常駐程式用這些帳號『登入』系統後執行,而是系統在開機過程中就把這些常駐程式啟動,然後賦予他們一個『root』帳號以外的身分。這種類型的常駐程式叫做『daemon』。常見的 daemon 程式包括 CROND、SYSLOGD、DHCPD、NAMED(DNS)、MYSQLD、SENDMAIL(電子郵件)、HTTPD(Apache)、SSHD/TELNETD/FTPD 等等。你打開 Terminal,輸入 ps -aux 就可以看見他們了。

至於登入以後才啟動的常駐型程式,叫做『背景執行程序』(background process)。通常背景執行程序會沿用把它叫起來的那個人的帳號當作他們的身分。
沒吃過虧,沒有發生自己辛辛苦苦建的檔案,被別人給 delete 整個 Folder,還不簡單,點個 Folder 然後按個 X,就永遠消失.... 還沒人敢承認是他幹的......你不會認為【網路垃圾桶】是很重要的!
所以說,開放網路分享權限是一件需要慎重的事。分成『Public』『Read-Only』和『Write-Only』三塊,這是很多人都會採用的方案,不管有沒有網路垃圾桶。

網路垃圾桶也有盲點;首先是,網路垃圾桶可不可以清空?如果可以清空,結果還是一樣。如果不能清空,那現在有很多 NAS 根本是沒有 Console 端的,垃圾要怎麼倒啊?

其次是,網路分享的 Volume 有時候並不是直覺的一個『硬碟分割區』,而是分散在不同電腦上的個別分享區,一個檔案甚至可以分散存放在不同機器上。這種情況如過真要做網路垃圾桶,就免不了要把檔案在不同電腦間搬來搬去。

題外話,你在 Mac 上被意外移除的東西,實際上是有辦法可以救回來的。程式名稱忘了,記得在下曾經在這裡提過,麻煩你搜尋一下吧。不過那個程式既不好用,也不便宜:它會依照你回復檔案的大小數量來每次收費。

所以說,備份才是王道啊!備份!
ash nazg durbatuluk, ash nazg gimbatul,
ash nazg thrakatuluk agh burzum-ishi krimpatul.
頭像
jamesjan
基本會員
文章: 39
註冊時間: 03/27/2005 10:00 am

#17 文章 jamesjan »

看來你還是誤解我的意思了

對OS來說,File system只有7件事

create/delete/open/close/read/write/ioctl

也就是說"丟到垃圾桶"的這件事,不是OS做的,是上層的application做的

換句話說,丟到垃圾桶這件事,不是Darwin做的,是Aqua或是其他層做的

再來就是你的問題,Samba並不是替Max OS X量身訂做的,"目前"還沒有implement這樣的功能

至於為啥不implement, maybe就是另外一位ulysses講的原因吧?!

如果你需要這樣的功能: 1,請自行修改samba 2,請Apple把這樣的功能加到Darwin的file system那段

--
不過,在software的領域,沒啥是做不到的,需求/時間的問題而已 :P
頭像
進藤光
冰果室元老
文章: 3205
註冊時間: 03/16/2005 5:18 pm
來自: insoler.com
聯繫:

#18 文章 進藤光 »

Windows Server 2003 裡面有一個全新的東西,叫做 Shadow Copy,陰影複製,Windows 2000 Server 跟 WinXP SP2 都沒有!

Shadow Copy 不是外掛程式,也不需要【新增/移除】元件,裝好 Windows Server 2003 就一定有的東西,跟磁碟機操作合併在一起!!

很多人不知道 Shadow Copy 就可以當【網路資源回收桶】來用!!!當然,要找回東西,還是要去 Server 上找,Client 沒這個權限.....

Windows 會比 UNIX 先進嗎?我一直不願相信...... 可是 Mac 如果到 10.4 還不搞個【網路垃圾桶】來用,姑且先不管 SMB,哪怕先支援 AFS 也好.....

我看 UNIX 真的會比 Windows 落後了.... :badgrin:
頭像
ulysses
討論區管理員
文章: 2475
註冊時間: 05/18/2001 1:01 am
來自: Forgotten Realm
聯繫:

#19 文章 ulysses »

  1. 你碰到的問題,只是檔案被人誤刪。你有沒有碰過這種狀況:A和B在 10:00 同時開啟了一個檔案,A做了一些修改,B也做了一些修改;A在 10:30 直接回存,B在 10:35 時也直接回存。那A花了 30 分鐘編輯的資料就不見了。這個問題也同樣嚴重,而這可不是一個網路垃圾桶就可以解決的。

    這種問題正式術語稱為『版本衝突』(Version Conflict)。基本上 Shadow Copy 之類的『版本控制系統』就是為此而存在。版本控制系統是從 UNIX 系統開始發展的,CVS、P4、Subversion 等都是常見的版本控制系統,不少應用程式也有內建與版本控制系統的直接連線存取,如 BBEdit、Eclipse。
  2. 從技術層面的角度來看,Shadow Copy 並不是一個很好的解決方案。基本上 M$ 只實作了版本控制系統中『備份』的功能,缺乏版本控制必要的『簽入/簽出』功能。另外,版本控制系統都需要一個瀏覽界面來存取;M$ 把瀏覽界面整合進 2003 的 Explorer 中,結果就是 2000/XP 都無法存取在 Shadow Copy Volume 中存放的檔案。業界中比 Shadow Copy 更好、更完整、更安全的解決方案比比皆是,例如:http://www.ingrasys.com.tw/tw/snapshot/snapshot.asp

    單就以 Shadow Copy 的功能來說,想要在 UNIX 系統上自己動手做一個簡單的自動備份系統實在不是什麼困難的事。直接在 CRONTAB 中加上 rsync 指令就可以做到。而在 Mac OS X 上更容易,你只要把適當的 Folder Action AppleScript(http://www.apple.com/applescript/folderactions/)掛在分享檔案夾上就可以了,這樣效率還更高。
  3. UNIX 就是單純的系統核心加上一堆外掛服務。正因為核心夠單純,才如此吸引人。所謂的『整合』云云都只是 GUI 界面在玩的蕾絲花邊。你在 Mac OS X 上看到的漂亮界面,什麼垃圾桶、控制面板、硬碟、滑鼠拖移,那都是 UNIX 系統層級之上的 Eye candy。

    對一個系統管理者或是程式開發者來說,一個無所不包、威力強大的系統核心或是通訊協定未必是件好事。M$ 非常聰明的把 Shared Code 的概念包裝成 COM,再簡化後變成 ActiveX 整合進系統的每一個角落,結果就是造成病毒木馬橫行。如果這個 Shadow Copy 也是整合進 SMB 通訊協定,在下有強烈直覺這會出大鎚;例如病毒入侵一台 Client,然後持續送出更新指令,讓伺服器被不斷複製的檔案塞爆而癱瘓。這種攻擊將比 DDOS 還容易。
  4. 不管是網路垃圾桶還是版本控制,基本上這都是網管在規劃網路時本身就要考慮進去的問題之一。所有人都能讀能寫的檔案就是會造成版本衝突的問題,不管你系統再怎麼聰明都無法避免。能夠用權限劃分、個人目錄、自動備份或是其他這種手段來讓版本衝突問題發生機率與損害降到最低的,就是好網管。還是你以為網管真是那麼好當的?
ash nazg durbatuluk, ash nazg gimbatul,
ash nazg thrakatuluk agh burzum-ishi krimpatul.
頭像
進藤光
冰果室元老
文章: 3205
註冊時間: 03/16/2005 5:18 pm
來自: insoler.com
聯繫:

#20 文章 進藤光 »

還是你以為網管真是那麼好當的?
你說呢?管一堆 Windows 電腦好,還是一堆 Mac 電腦好管?
昨天又有一台 Windows Server 2003 掛了,連 Ghost 也無法復原,看樣子是 Partition 給破壞了........ :badgrin:

倒楣的是我,得去弄另一棵新 HDD 來用 Ghost 復原看看,再不行就只好重裝 Server .......... :badgrin:
例如病毒入侵一台 Client,然後持續送出更新指令,讓伺服器被不斷複製的檔案塞爆而癱瘓。這種攻擊將比 DDOS 還容易。
這個問題我已經遇到好幾次,攻擊的對象是 SMTP,下場是..... Mail Server 整部幾乎 100% 忙碌,對外頻寬變慢....

你說的攻擊情況一樣會造成 Snapshot 完蛋吧....不斷更新檔案,Snapshot 也不斷的【拍照】.... 差別在 Shadow Copy 本來就爛,超低效率.... 被攻擊死的更快..... :badgrin:

Shadow Copy 雖然是用來解決版本的問題,可以從 Server 挖出之前的好幾個版本,但是【復原檔案】時超難用,為了一個檔案得復原整個 Shadow Copy..... 更重要的是效率不佳,不然 NAS 幹嘛弄一個 Snapshot......

我們發生在【檔案衝突】的機率還小於【檔案失蹤】..... 所以用 Shadow Copy 常用來找不見的檔案,而不是之前的版本....

請問你們有買 Ingrasys 的 NAS 或其他品牌的 NAS 嗎?我對一般的 NAS 沒啥信心.... 買了 NAS 又要去維護 NAS,處理當掉的 NAS.... 更重要的是 RAID 硬碟的壞軌回報!

有一堆 RAID 根本不會回報、處理硬碟壞軌,只會告知整顆硬碟掛掉.... 不幸的是..... 同時有 2 顆 HDD 壞軌,情況逐漸擴大,最後 RAID 照樣全毀,管你是 RAID 1 還是 5.... :badgrin:

Xsan 不知道好不好用?我倒是想換這套系統.....如果有【Network Trash】的話....

我對 MacOS X 有沒有 Shadow Copy 一點也不在意,因為難用.... 除非 Apple 能長出更好用的 Snapshot.....

我只要 Mac 有 Network Trash 就夠了.....

最近看到這個.... 對我沒啥用的東西.... 我不是要徹底永遠 Erase 不見的檔案,保證救不回來....

http://www.brattoo.com/propaganda/index ... n=software

Having problems with Network Trash Cans on your OSX sharepoints? Well, here's the solution. Dustman will search your disks for Network Trash Cans and erase them without mercy.

奇怪的是【Network Trash Cans on your OSX sharepoints】這句話.... ShaqrePoints 幾時有【Network Trash】了??

ps....
能夠用權限劃分、個人目錄、自動備份或是其他這種手段來讓版本衝突問題發生機率與損害降到最低的,就是好網管。
謝謝你說我是【好網管】.... :badgrin: :badgrin:

你說的我通通有做!重要 Folder 的【自動備份】甚至提高到 20 份以上.... 所以能很快的找到舊的檔案.... 當然也有只准寫入不准修改(刪除)的 Folder...

不幸的是【自動備份】是【定時備份】無法像 Shadow Copy 那樣【即時備份】,所以還是有【定時備份】中間的【空窗期】,在這 1-2 小時之內的檔案是沒備份到的....

縮短【自動備份的定時時間】?不行,這會造成 Server 不斷去 Scan 整個 Folder,看看哪些 File Update 了....

所以結論:如果有 Network Trash 救能就回來了..... :badgrin:
回覆文章