Linux

設置權限以在 Linux 和 Windows 之間共享文件系統的正確方法

  • February 22, 2021

我有一個可通過 Samba 共享使用的網路驅動器。我想從 Windows 10 和 Ubuntu mate 在該共享驅動器上創建、編輯、讀/寫文件。

我注意到當我從 Linux 創建文件時,我無法從 Windows 編輯它。此外,當我將大量文件從 Windows (NTFS) 同步到共享驅動器 (ext4) 時,我可以查看它們,但不能從 Ubuntu 編輯它們。我使用的命令是…

sudo rsync -rltzhHvn --info=progress2 "/media/ubuntu-mate/DATA/Personal Stuff" "/media/ubuntu-mate/4TB1/DataShare/Personal-Stuff"

我對 Linux 權限和 Samba 有所了解,所以這是我正在考慮使用的解決方案……

  1. 創建一個沒有 root 訪問權限的 Ubuntu 使用者帳戶 (ubuntu-user)。僅在我真正需要的極少數情況下使用 sudo。
  2. 在 Ubuntu 中創建的文件將具有所有者/組,例如 –>ubuntu-user:ubuntu-user
  3. 我將配置 Samba 共享,如..
force user = ubuntu-user
create mask = 0666
directory mask = 0777
  1. 現在 Windows 應該能夠編輯/刪除在 Ubuntu 中創建的文件,還可以創建可以在 Ubuntu 中編輯/刪除的文件。

我做對了還是有更好的方法?

例如,如果文件是由某個系統程序或 Ubuntu 中的 root 創建的,那麼我將無法通過 Windows 的共享讀取/寫入/編輯它?在這種情況下,我知道我可以將 Samba 共享更改為…

force user = root
create mask = 0666
directory mask = 0777

而且我認為這會起作用,但現在從 Windows 創建的任何文件都不能被 Linux 編輯ubuntu-user。我可以force user = root在 Samba 共享中創建一個具有 root 訪問權限的 Linux 使用者帳戶,這會更容易,但我認為不建議這樣做。

乾杯。

這些是我的權限,但我建議創建一個 sambauser 和 sambagroup。force 使用者和 force 組將處理創建的文件權限。

  path = /path/to/file
  force user = sambauser
  force group = smbagroup
  create mask = 0664
  force create mode = 0664
  directory mask = 0775
  force directory mode = 0775
  public = yes
  writable = yes

注意:我進行此設置的方式是針對專用網路,如果您想要可以共享但不能修改的文件,則權限允許任何人修改文件,我建議使用具有更多限制性權限的單獨文件夾。

希望這會有所幫助,傑森 C.

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