Linux

Linux 文件系統只能通過 SMB 讀取,不能寫入

  • July 3, 2021

我通常可以訪問、打開和編輯通過乙太網連接到路由器的 Linux 機器中的所有文件,只需在ssh user@192.168.0.10我的 macOS 終端中輸入即可。然而,我想掛載我的 Linux 機器的整個文件系統,而不是純粹通過終端進行介面,以便我可以編輯文件並在我的 Mac 和 Linux 機器之間自由傳輸文件。

macOS 支持通過 SMB 共享文件,所以我決定在我的遠端機器上安裝 Samba:

sudo apt-get install samba

然後,我添加了user訪問文件共享的使用者和密碼:

smbpasswd -a user

在此之後,我編輯了我的 Samba 配置文件以包含以下內容:

[Volumes]
  path = /volumes
  writable = yes
  write list = user
  force create mode = 0777
  force directory mode = 0777
  public=yes

最後,我重新啟動了 Samba 服務:

sudo service smbd restart

我能夠使用之前設置的使用者名和密碼安裝Volumes在 Finder 中。user我也能夠閱讀裡面的所有內容/volumes。但是,我完全無法修改任何文件或將任何內容傳輸到/volumes.

我實際上如何使文件夾可寫,而不僅僅是可讀?writable = yes如上所示,我在我的 Samba 配置中添加了、write list = user和等行force directory mode = 0777,但它似乎根本沒有幫助。

ls -lon的輸出/volumes給了我以下資訊:

ls -l /volumes
total 248
drwxr-xr-x 9 root root 131072 Jul  3 01:06 bridge1
drwxr-xr-x 2 root root 102400 Jun 13 20:30 bridge2

您不能修改其中的文件或目錄,/volumes因為只有root對它們的修改訪問權限。根據發生的情況,volumes目錄本身也是如此。

您需要, as rootchown -R user /volumes使user所有者俱有修改訪問權限,或者創建一個組,使用 向其添加userusermod -aG group user然後chmod -R g+w /volumes授予包含user對目錄及其內容的修改訪問權限的組。

force directory mode僅適用於通過 . 創建的目錄samba。它們對任何已經存在的東西沒有任何影響。無論如何,您都不想擁有0777as 模式,因為它允許任何有權訪問系統的人寫入不利於安全的目錄。

引用自:https://unix.stackexchange.com/questions/656811