执行 chmod +x 的要求是什么?“rw”还不够!

Jim*_*hen 0 permissions samba

请看下面我的截图。

在此输入图像描述

用户 chj 执行chmod +x ichsize.out,但失败并出现“不允许操作”

ichszie.out 启用了 world-rw 权限,但看起来还不够。

-rw-rw-rw-  1 nobody nogroup 27272 May 26 18:51 ichsize.out
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

Samba 客户端使用访客身份访问此共享,并请求创建 ichsize.out 文件。

该系统是基于Debian版本的Raspberry Pi:11(bullseye)。Ubuntu 20.04 也有同样的表现。

所以我想知道,如何编写 smb.conf 以便 RasPi 上的任何用户都可以chmod +x对该文件执行操作。

roa*_*ima 5

如果您不需要担心拥有此共享中的文件的用户,您可以使用force user配置设置来允许 Samba 用户运行诸如chmod. 这意味着所有文件将显示为连接到共享的帐户所拥有(即,如果 Alice 和 Bob 都连接到共享,Alice 将看到她拥有所有文件,而 Bob 也将看到他拥有所有文件)文件),但结果是任何人都可以运行chmod.

例如,假设这shareuser是 Samba 服务器上的有效用户帐户,sharegroup包含允许访问此共享的用户集,并且该帐户/home/_share存在且所有者shareuser至少具有以下权限0700

[Share]
    comment = Everyone owns these files
    path = /home/_share
    browseable = yes
    read only = no
    guest ok = no
    force user = shareuser
    valid users = "@sharegroup"
    ; vfs objects = acl_xattr recycle catia
Run Code Online (Sandbox Code Playgroud)

或者我还没有测试过,它允许访客用户:

[Share]
    comment = Everyone owns these files
    path = /home/_share
    browseable = yes
    read only = no
    guest ok = yes
    force user = shareuser
Run Code Online (Sandbox Code Playgroud)

在加入域的环境中,甚至可以让 Samba 处理具有真正 Windows ACL 和所有权的文件。例如,在 Windows 世界中,一个组可能拥有文件并有权更改访问权限等。鉴于您guest ok = yes在上下文中的情况,我怀疑这不相关,但我向未来潜在的读者提及它。

另一方面,如果你真的想说,“我该如何编写smb.conf,以便RasPi 上的任何用户都chmod +x可以对该文件执行操作”[我用斜体字表示强调],那么你应该知道smb.conf配置文件与 RasPi 上的用户无关。圆周率本身。本地 UNIX/Linux 控件适用于 Pi 上的用户,因此您无法chmod在不属于您的文件上运行。