Skip to content

Commit 1ec281a

Browse files
committed
smbcc: Add Permissions to ConfigSection
This is used to set the Permissions section in the config.json file. The permissions section contains the permission handler and the necessary mode to be set on the exported path. Signed-off-by: Sachin Prabhu <[email protected]>
1 parent c0fa5a3 commit 1ec281a

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

internal/smbcc/container_config.go

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,11 @@ type SambaContainerConfig struct {
5454
// ConfigSection identifies the shares, globals, and instance name of
5555
// a single configuration.
5656
type ConfigSection struct {
57-
Shares []Key `json:"shares,omitempty"`
58-
Globals []Key `json:"globals,omitempty"`
59-
InstanceName string `json:"instance_name,omitempty"`
60-
InstanceFeatures []FeatureFlag `json:"instance_features,omitempty"`
57+
Shares []Key `json:"shares,omitempty"`
58+
Globals []Key `json:"globals,omitempty"`
59+
InstanceName string `json:"instance_name,omitempty"`
60+
InstanceFeatures []FeatureFlag `json:"instance_features,omitempty"`
61+
Permissions PermissionsConfig `json:"permissions,omitempty"`
6162
}
6263

6364
// ShareConfig holds configuration values for one share.
@@ -94,6 +95,13 @@ type GroupEntries []GroupEntry
9495
// SmbOptions is a common type for storing smb.conf parameters.
9596
type SmbOptions map[string]string
9697

98+
// PermissionsConfig indicates the permissions to be set on the share mountpoint
99+
type PermissionsConfig struct {
100+
Method string `json:"method,omitempty"`
101+
StatusXAttr string `json:"status_xattr,omitempty"`
102+
Mode string `json:"mode,omitempty"`
103+
}
104+
97105
const version0 = "v0"
98106

99107
const (
@@ -176,6 +184,15 @@ func NewConfigSection(name string) ConfigSection {
176184
}
177185
}
178186

187+
// NewPermissionsConfig returns a new PermissionsConfig.
188+
func NewPermissionsConfig() PermissionsConfig {
189+
return PermissionsConfig{
190+
Method: "initialize-share-perms",
191+
StatusXAttr: "user.share-perms-status",
192+
Mode: "0777",
193+
}
194+
}
195+
179196
// NewDefaultUsers returns a full subsection for a default (good for testing)
180197
// set of users.
181198
func NewDefaultUsers() map[Key]UserEntries {

0 commit comments

Comments
 (0)