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

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

版主: ross_ttbryanchangdigdogchester

內容
發表人
頭像
ulysses
討論區管理員
文章: 2475
註冊時間: 05/18/2001 1:01 am
來自: Forgotten Realm
聯繫:

#21 文章 ulysses »

  1. 那個程式說的『Network Trash Folder』是 Mac OS 9 的網路垃圾桶,不是 Mac OS X 或 Samba 的網路垃圾桶。在有 Classic 環境,或是開放 AppleTalk 讓 OS 9 Client 連線的 Mac OS X Volume 上就會有這個隱藏目錄。
  2. 網路垃圾桶不是萬靈丹,他只能解決檔案被誤刪的問題,對版本衝突的問題毫無幫助。如果你只是想防止檔案被別人誤刪,有很多不同的方法可用。

    在 UNIX 系統上,要防止檔案被誤刪,正規的方式是用『Sticky Bit』,這也是 Mac OS X 的『Shared Folder』預設採用的方式。在設定了 Sticky Bit 的檔案夾中,只有檔案持有人和 root 才能對檔案進行更名、搬移、刪除等動作。

    相關細節請參考 http://www.osxfaq.com/Tutorials/Learnin ... 2/index.ws
ash nazg durbatuluk, ash nazg gimbatul,
ash nazg thrakatuluk agh burzum-ishi krimpatul.
頭像
進藤光
冰果室元老
文章: 3205
註冊時間: 03/16/2005 5:18 pm
來自: insoler.com
聯繫:

#22 文章 進藤光 »

謝謝..... 原來說的是 OS 9 啊....

又是一堆的 UNIX 指令....... 淚~~~

大約是 10 年前,有一家叫【和碩】的出版社,專出版 UNIX 的書,出了 2-30 本以上....

當時我在想,UNIX..... 這玩意只出現在我念的書裡面,pc又不能裝 UNIX 系統,出了一堆書是要賣誰?大型 MainFrame 的 MIS 嗎?

後來有了 Linux 這玩意..... 卻因為超難裝.... 我就懶得用了.....
本來 Mac 也是玩得好好的.... 想不到從 OS 9 之後,一下子改用 UNIX 核心....
這就像 Microsoft 終於認為 WinXP 這套 Windows 核心不行了.... 改用 Linux 當核心....

哇咧~~ 所有 Mac 程式通通得搞個 UNIX 版... 誰要啊??所以我也在 OS 9 撐了一段時間..... 但是現在已經放棄 OS 9 了.... :badgrin:

如果 Micorsoft 也放棄 Windows 核心,搞個 Linux.... 嘿嘿嘿..... 大概死定了.... :badgrin:

話說回來,NTFS 也能辦到【只有檔案持有人和 root 才能對檔案進行更名、搬移、刪除等動作】,但是.....【檔案持有人】往往是電腦白痴.... 不會做這些設定.....

還有一個更重要的問題是.... 他沒有權限把檔案放在其他部門或重要的資料夾裡,所以我們有一個【檔案交換區】,是比較寬鬆的.....

只要有寬鬆的地方,就會出問題..... 我把檔案放上去,卻不知道被誰幹掉.....

如果限制【檔案持有人】才能刪除..... 就會看到一堆檔案.... 沒人去刪除..... 因為檔案不是在他的桌面上..... 網路的垃圾..... 不是他要管的...... 嗚~~~ MIS 跟別人,哪知道哪些是【垃圾】啊.....

於是【自動備份】裡面就有一堆【垃圾】,而且還備份了好幾次.....
:badgrin:
頭像
ulysses
討論區管理員
文章: 2475
註冊時間: 05/18/2001 1:01 am
來自: Forgotten Realm
聯繫:

#23 文章 ulysses »

在下剛剛試了一下,發現了一件滿有趣的事:

Mac OS X 的垃圾桶,是放在每個硬碟分割區根目錄的 .Trash 隱藏目錄,例如 /Volumes/myhd/.Trash,這個目錄是個『唯寫』目錄。在 .Trash 目錄裡則是依照使用者 UID 分隔成一個個的目錄,例如大部分 Mac OS X 第一個預設使用者的 UID 是 501,所以上例中該使用者的垃圾桶目錄就是 /Volumes/myhd/.Trash/501/

使用 AFS Mount 在遠端 Mount myhd 這個 Volume,會放置在本機的目錄 /Volumes 下。也就是說,/Volumes/myhd/.Trash/501/ 這個目錄的相對位置是沒有改變的。

那麼這個目錄能不能用呢?可以做個實驗:

cd /Volumes/myhd
touch junkfile
mv junkfile ./Trash/501/

結果是:junkfile 這個檔案的確是被丟掉了遠端機器上,UID 501 的這個使用者的垃圾桶中。

另外還有一個狀況:在 Mac OS X 上 mount 一個 SMB Volume,刪除檔案時也會問你是否要直接刪除。但是如果使用 ViewIt 之類不藉由 Finder、而是直接呼叫 API 移除檔案的程式來移除 SMB Volume 上的檔案,那個檔案會被搬到 /.Trash/501 這個目錄中。那個目錄在 Windows 上也是隱藏目錄。另一方面,使用相同的程式去移除 AFS Volume 上的檔案時,程式會直些回應『無法移除』。

結論就是:Mac OS X 把檔案搬移到遠端機器垃圾桶的功能,是因為某些原因而被封鎖了。除了 UID 對照的問題,恐怕還有其他在下沒想到的安全因素考量。
ash nazg durbatuluk, ash nazg gimbatul,
ash nazg thrakatuluk agh burzum-ishi krimpatul.
回覆文章