有一個我每天透過 ssh 連接到的遠端伺服器。我在伺服器上對文件進行了大量編輯,所以我經常sshfs
這樣做。
我用 掛載目錄$ sshfs user@host:/var/www/html ~/sshfs/html
。在過去的幾個月裡,這種方法非常有效,而且仍然有效應該即使現在也在工作。但是,我遇到了一些奇怪的不一致訪問問題。
案例 1 - Sublime Text:我完全無法使用我選擇的編輯器(Sublime Text)保存任何內容。我無法透過「另存為」來建立新檔案~/sshfs/html/
。我可以打開文件,但不能儲存。
當嘗試儲存時,Sublime 在警告框中給出以下訊息:
Unable to save ~/sshfs/html/foo
Error: rename(/home/ben/sshfs/html/.subl219.tmp, /home/ben/sshfs/html/foo) failed
errno: 1
案例 2 - 凱特:我嘗試打開 Kate 中的內容,看看 Sublime 是否只是愚蠢。我仍然無法編輯現有文件,但我可以毫無問題地創建新文件在凱特.
當 Kate 嘗試儲存編輯時,會在警告框中顯示以下訊息:
The document could not be saved, as it was not possible to write to /home/ben/sshfs/html/foo.
Check that you have write access to this file or that enough disk space is available.
案例 3 - Vim:這就是事情開始變得不那麼有意義的地方。我嘗試在本機上使用 Vim
$ vim ~/sshfs/html/foo
令人驚訝的是,我使用 Vim 沒有任何問題。它可以毫無問題地開啟、編輯、儲存和建立文件。我在使用 shell 命令(例如touch
.
需要考慮的事項
- 團體訪問
- 該群組
developers
有權存取我要編輯的所有文件。 - 我的本地用戶是該群組的成員
developers
。 - 我的遠端使用者(我透過 SSH 登入的帳戶)是該群組的成員
developers
。 - 該群組
developers
在伺服器和我的本機電腦上都存在,具有相同的 ID。
- 該群組
- 其他事情
- 我在幾台伺服器上有幾個目錄,我像這樣使用。其他伺服器上的其他目錄都沒有給我帶來任何麻煩。
$ ls -l
在掛載點內的本機上執行:
輸出
drwxrwxr-x 1 root developers 4096 Sep 8 06:47 admin
drwxrwxr-x 1 root developers 4096 Jun 4 2013 agent_submit
-rwxrwxr-x 1 root developers 6605 Jun 4 2013 authorize.php
$ ls -l
透過 ssh shell 在遠端主機上運行:
輸出
drwxrwxr-x 10 root developers 4096 Sep 8 06:47 admin
drwxrwxr-x 2 root developers 4096 Jun 4 2013 agent_submit
-rwxrwxr-x 1 root developers 6605 Jun 4 2013 authorize.php
答案1
sshfs -o workaround=rename user@host:/var/www/html ~/sshfs/html
資料來源: