我有一个 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 上可执行。