Linux

Linux cifs 共享允許與掛載/屏蔽的 uid 不同的使用者執行 cp -p

  • April 14, 2021

我有一個特定的 linux-server,它在晚上執行多個批處理作業,創建文件並將它們複製到 NAS 上的各個位置,以前使用 NFS 安裝,但最近使用 CIFS。

這是因為我們的新 NAS 不支持以適合我們的方式同時將文件系統共享為 nfs 和 cifs(多協議共享)。因此,我將共享安裝為 cifs 共享,並在 .smbcredentials 文件中使用 Windows 憑據。

此共享與它自己的時間一樣古老,並且可以被許多系統(Linux 伺服器和 Windows 伺服器)訪問。但是他們都有自己的伺服器,所以當我將共享作為 cifs 安裝在其中一個 Linux 伺服器上時,我可以將 fstab 中的 uid 和 gid 設置/屏蔽給他們各自的服務使用者,一切都很好。

然而,在我第一次提到的伺服器上,有幾個系統與他們自己的個人使用者在同一台伺服器上執行。所以我需要掩蓋 fstab 中的 uid/gid 看起來像一個使用者,但仍然允許其他人做事。

這主要工作但不是 cp -p,保留文件的時間戳。這我似乎無法正常工作。

我可以嘗試任何提示嗎?我當然已經用Google搜尋了我的 *ss,嘗試了從這裡到月球的任何東西……

當然,我也在嘗試讓開發團隊轉移到他們自己的伺服器上,但這不會很快發生。

有時,我們需要使用 posix 擴展屬性 (ACL) 來讓多個使用者通過 CIFS 伺服器訪問一組文件,該 CIFS 伺服器不對我們的中央目錄服務進行身份驗證。因此,例如,您可以嘗試在 SMB 伺服器上使用 setfacl,將權限映射到文件/文件夾,這將為 Linux 客戶端上的使用者提供正確的訪問權限。如果您嘗試這樣做,也不要忘記設置預設 ACL(這模仿了 CIFS 上的繼承概念,儘管並不完美)。

如果使用者開始自己擺弄權限,它可能會很快變得混亂。但我認為您的問題可能可以通過這種方式解決。

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