Permissions

執行 chmod +x 的要求是什麼?‘rw’ 是不夠的!

  • May 26, 2022

請看我下面的截圖。

在此處輸入圖像描述

使用者 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

[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

或者我沒有測試過的,它允許來賓使用者:

[Share]
   comment = Everyone owns these files
   path = /home/_share
   browseable = yes
   read only = no
   guest ok = yes
   force user = shareuser

在加入域的上下文中,甚至可以讓 Samba 對具有真正 Windows ACL 和所有權的文件進行操作。例如,在 Windows 世界中,一個組可能擁有文件並有權更改訪問權限等。guest ok = yes在您的上下文中看到您的情況,我懷疑這不相關,但我為潛在的未來讀者提及它.

另一方面,如果你真的是說,“我怎麼能寫我的smb.conf,以便RasPi 上的任何使用者都可以chmod +x在那個文件上做”

$$ my italics for emphasis $$那麼您應該知道smb.conf配置文件與 Pi 本身的使用者無關。本地 UNIX/Linux 控制項適用於 Pi 上的使用者,因此您無法chmod在不屬於您的文件上執行。

引用自:https://unix.stackexchange.com/questions/703930