我有一個 Linux 伺服器,可將 Samba 共用資料夾匯出到 Windows 用戶端。我需要在 Linux shell 中設定係統屬性。在 Windows 上,我會運行
attrib +s folder
如何在 Linux 伺服器上執行此操作?
答案1
系統屬性是 Windows 特有的屬性。 Linux 上沒有類似的東西。
Samba 可以將 Windows 屬性對應到 Linux 上存在的權限。然而,它可能會造成破壞,因為 Linux 權限具有不同的意義。所以系統和隱藏屬性預設是不映射的。
若要使系統和隱藏屬性可用,請編輯 Samba 配置(/etc/samba/smb.conf
或類似的,確切的路徑取決於您的發行版)。打開部分中的map system
和選項:map hidden
[data]
[data]
…
map system = yes
map hidden = yes
然後,系統屬性被對應到群組執行權限位( g+x
),隱藏屬性被對應到其他執行權限位( o+x
)。因此,attrib +s some.file
在 Windows 上相當於
chmod g+x some.file
在Linux伺服器上。
請注意,這意味著如果您在 Linux ( ) 上使檔案可執行chmod a+x some.file
,則會使其在 Windows 上隱藏並成為系統。因此,請確保您通常不會使檔案在 Linux 上可執行。