Skip to main content

Sysctl

The Sysctl service provides methods for managing kernel parameters on target hosts via /etc/sysctl.d/ conf files. Access via client.Sysctl.List(), client.Sysctl.Create(), etc.

Methods

MethodDescription
List(ctx, hostname)List all managed parameters
Get(ctx, hostname, key)Get a parameter by key
Create(ctx, hostname, opts)Create a new managed entry
Update(ctx, hostname, key, opts)Update an existing entry
Delete(ctx, hostname, key)Delete a managed entry

Request Types

TypeFields
SysctlCreateOptsKey (required), Value (required)
SysctlUpdateOptsValue (required)

Usage

import "github.com/retr0h/osapi/pkg/sdk/client"

c := client.New("http://localhost:8080", token)

// List all managed sysctl entries
resp, err := c.Sysctl.List(ctx, "web-01")
for _, entry := range resp.Data.Results {
fmt.Printf("%s = %s\n", entry.Key, entry.Value)
}

// Get a specific parameter
resp, err := c.Sysctl.Get(ctx, "web-01", "net.ipv4.ip_forward")

// Create a new managed parameter
resp, err := c.Sysctl.Create(ctx, "web-01", client.SysctlCreateOpts{
Key: "net.ipv4.ip_forward",
Value: "1",
})

// Update an existing parameter
resp, err := c.Sysctl.Update(ctx, "web-01", "net.ipv4.ip_forward",
client.SysctlUpdateOpts{
Value: "0",
})

// Delete a managed parameter
resp, err := c.Sysctl.Delete(ctx, "web-01", "net.ipv4.ip_forward")

Example

Permissions

OperationPermission
List, Getsysctl:read
Create, Update, Deletesysctl:write

Sysctl management is supported on the Debian OS family (Ubuntu, Debian, Raspbian). On unsupported platforms (Darwin, generic Linux), operations return status: skipped.