Linux
NAS 驅動器安裝 RW(在 Linux 中),但某些子目錄是只讀的
我在我的 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 使用的憑據屬於與擁有相關目錄的使用者不同的使用者(這有點容易被忽略)。頂級目錄是世界可寫的,這解釋了部分成功。