![Samba/Cifs:将可执行权限位传输到 Linux 客户端](https://linux22.com/image/571305/Samba%2FCifs%EF%BC%9A%E5%B0%86%E5%8F%AF%E6%89%A7%E8%A1%8C%E6%9D%83%E9%99%90%E4%BD%8D%E4%BC%A0%E8%BE%93%E5%88%B0%20Linux%20%E5%AE%A2%E6%88%B7%E7%AB%AF.png)
我正在尝试让我的 linux smb/cifs 客户端识别在 linux smb 服务器上共享的某些文件上设置的可执行位。
以下是我们的设置:
- Linux 服务器通过 smb 导出一些目录到客户端
- 许多 Windows 客户端访问共享目录
- 一些 Linux 客户端访问共享
我们在 Linux 服务器上设置了可执行权限位的共享中有一些 shell 脚本。我们通过 ssh 进入其中,可以毫无问题地执行它们。
谢谢samba 的地图选项,我们可以通过 smb 协议将 unix 可执行位导出为存档、系统和隐藏权限,这是可行的。
现在要关闭循环,我需要找到一种方法将这些存档、系统和隐藏位映射回ugo
我的 Linux 客户端上的可执行位。我在手册页中没有找到相关设置mount.cifs
,但也许有其他方法可以实现?
我想要避免简单地切换到 NFS,因为我们有许多 Windows 客户端也使用共享。管理 NFS 需要额外的工作。
答案1
从你的问题来看,我不太清楚共享的内容来自哪里,但我工作中的 Samba 共享可能存在类似情况。我有 Samba 用户work
、chris
和wendy
。
我们有一台配备 4TB 磁盘阵列的 Debian 服务器。我已经设置好了,所以有一个我们都知道的通用“工作”用户名/密码。磁盘阵列的权限对于 Windows 用户来说很好用,但我记得必须清理写入权限(通过更改所有权),以便 Windows 用户可以编辑我的 Linux 登录的工作。
请参阅我的回答:Linux 用户无法读取或编辑其主目录之外的内容我在这里讨论如何使用粘性位来获得所有者和组权限。
这是我的团队的权限:
/raid$ ls -alh
total 33M
drwxrwsr-x. 46 work users 4.0K Jan 7 18:33 .
drwxr-xr-x 24 root root 4.0K Jan 4 16:13 ..
-rwxr--r-- 1 wendy users 12K Dec 31 16:57 boc.pfl
drwxrwsr-x. 7 work users 4.0K Aug 15 2009 catalog
drwx--S--T. 43 chris users 12K Jan 5 16:53 chris
drwxrwsr-x. 6 work users 4.0K Dec 31 16:32 dealers
drwxrwsr-x 3 work users 4.0K Nov 5 17:51 Distributors
drwxrwsr-x. 22 work users 4.0K Dec 29 16:58 docs
drwx--S--T. 9 wendy users 4.0K Jan 3 18:40 wendy
drwx------ 17 work users 4.0K Sep 8 2011 work
我认为自己知道需要研究什么才能回答我自己的 Linux 与 Windows 用户,即S
目录。下次我可以离开 Windows 并再次打开 Linux 桌面时,必须研究这个问题。
如果您仔细查看我的 SU 或 SO 个人资料,我确信我已经谈论过所有这些内容……
答案2
为什么不在 smb.conf 中创建两个不同的配置部分?一个用于 Windows 客户端(已经存在),另一个用于 Linux 客户端(省略了地图 x = 是線。