请看我下面的截图。
用户 chj 执行chmod +x ichsize.out
,但因Operation not allowed 而失败。
ichszie.out 启用了 world-rw 权限,但看起来还不够。
-rw-rw-rw- 1 nobody nogroup 27272 May 26 18:51 ichsize.out
ichsize.out 的所有者是nobody
,因为该文件是由 Samba 服务器创建的,提供[projects]
如下目录位置:
[projects]
comment = VS2019 Linux-dev project output
path = /home/chj2/projects
browseable = yes
read only = no
guest ok = yes
create mask = 0666 #(everybody: read+write)
directory mask = 0777 #(everybody: list+modify+traverse)
hide dot files = no
Samba 客户端以访客身份访问此共享,并请求创建 ichsize.out 文件。
该系统是基于 Debian 版本的 Raspberry Pi:11(bullseye)。Ubuntu 20.04 也有同样的表现。
所以我想知道,如何编写我的 smb.conf 以便 RasPi 上的任何用户都可以chmod +x
对该文件执行操作。
如果您不需要担心拥有此共享中文件的用户,您可以使用
force user
配置设置来允许 Samba 用户运行诸如chmod
. 这将意味着所有文件似乎都由连接到共享的帐户拥有(即,如果 Alice 和 Bob 都连接到共享,Alice 将看到她拥有所有文件,Bob 也会看到他拥有所有文件),但因此任何人都可以运行chmod
.例如,假设它
shareuser
是您的 Samba 服务器上的一个有效用户帐户,它sharegroup
包含允许访问此共享的一组用户,并且/home/_share
存在并且由shareuser
至少具有以下权限的用户拥有0700
:或者我没有测试过的,它允许来宾用户:
在加入域的上下文中,甚至可以让 Samba 对具有真正 Windows ACL 和所有权的文件进行操作。例如,在 Windows 世界中,一个组可能拥有文件并有权更改访问权限等。
guest ok = yes
在您的上下文中看到您的情况,我怀疑这不相关,但我为潜在的未来读者提及它.另一方面,如果你的意思是“我怎样才能写我的
smb.conf
,以便RasPi 上的任何用户都可以chmod +x
在该文件上执行”[我的斜体表示强调],那么你应该知道smb.conf
配置文件与上的用户无关圆周率本身。本地 UNIX/Linux 控件适用于 Pi 上的用户,因此您无法chmod
在不属于您的文件上运行。你不能。无论如何都不是使用常规的 unixy 权限位,但也请参阅@roaima 的答案。
从Linux
chmod()
系统调用手册页:否则,它会给出错误代码 EPERM,对应于消息“不允许操作”。
如果您使用的是 Linux 桌面发行版,那么您可能拥有 GNU 工具集。命令行工具的 GNU手册页
chmod
似乎没有提到所需的权限,但在 info page中提到了。