Linux

NAS 驅動器安裝 RW(在 Linux 中),但某些子目錄是只讀的

  • May 20, 2020

我在我的 Linux 機器(Ubuntu 20.04)上安裝了一組 NAS 驅動器,大多數驅動器似乎一切正常:

sudo mount -t cifs //mynas/mydrive /mnt/mydrive -o \
   credentials=/etc/samba/nas.creds,file_mode=0600,dir_mode=0700,uid=myuid,gid=mygid

也就是說,驅動器已安裝,它們具有正確的 umask,它們可由我的使用者寫入。

這些驅動器之一上的子文件夾除外。它以完全相同的方式安裝,具有完全相同的憑據,並且頂級目錄是可寫的。但是,我不能寫入任何子目錄!

頂級目錄是可寫的:

$ ls -ld /mnt/mydrive
drwx------ 2 myuid mygid 0 May 17 18:22 /mnt/mydrive
$ touch /mnt/mydrive/aaa
$ ls -l /mnt/mydrive/aaa 
-rw------- 1 myuid mygid 0 May 17 18:39 /mnt/mydrive/aaa

子目錄不是

$ ls -ld /mnt/mydrive/new
drwx------ 2 myuid mygid 0 Mar 10  2019 /mnt/mydrive/new
$ touch /mnt/mydrive/new/aaa
touch: cannot touch '/mnt/mydrive/new/aaa': Permission denied

NAS 是 QNAP(Linux/Samba for OS 的衍生產品),所有共享都具有相同的憑據集和 R/W 訪​​問權限。這些文件夾最初是通過 Windows 創建的(以防萬一),但它適用於所有驅動器上的所有相關文件夾 - 但只有該驅動器顯示此行為。

我是不是忘記了什麼?我必須考慮另一種 ACL 機制嗎?任何幫助,將不勝感激!

結果證明這是一個非常愚蠢的錯誤:不久前在 NAS 上創建了 2 個非常相似的使用者,並且 Linux 使用的憑據屬於與擁有相關目錄的使用者不同的使用者(這有點容易被忽略)。頂級目錄是世界可寫的,這解釋了部分成功。

引用自:https://serverfault.com/questions/1017548