master
brl 10 years ago
parent 46d170a38b
commit f23045350f

@ -24,22 +24,22 @@ type Config struct {
EnvironmentVars []string `json:"environment_vars" desc:"Default environment variables passed to sandboxes"` EnvironmentVars []string `json:"environment_vars" desc:"Default environment variables passed to sandboxes"`
} }
const OzVersion = "0.0.1" const OzVersion = "0.0.1"
const DefaultConfigPath = "/etc/oz/oz.conf" const DefaultConfigPath = "/etc/oz/oz.conf"
func NewDefaultConfig() *Config { func NewDefaultConfig() *Config {
return &Config{ return &Config{
ProfileDir: "/var/lib/oz/cells.d", ProfileDir: "/var/lib/oz/cells.d",
ShellPath: "/bin/bash", ShellPath: "/bin/bash",
InitPath: "/usr/local/bin/oz-init", InitPath: "/usr/local/bin/oz-init",
ClientPath: "/usr/local/bin/oz", ClientPath: "/usr/local/bin/oz",
SandboxPath: "/srv/oz", SandboxPath: "/srv/oz",
NMIgnoreFile: "/etc/NetworkManager/conf.d/oz.conf", NMIgnoreFile: "/etc/NetworkManager/conf.d/oz.conf",
BridgeMACAddr: "6A:A8:2E:56:E8:9C", BridgeMACAddr: "6A:A8:2E:56:E8:9C",
DivertSuffix: "unsafe", DivertSuffix: "unsafe",
UseFullDev: false, UseFullDev: false,
AllowRootShell: false, AllowRootShell: false,
LogXpra: false, LogXpra: false,
EnvironmentVars: []string{ EnvironmentVars: []string{
"USER", "USERNAME", "LOGNAME", "USER", "USERNAME", "LOGNAME",
"LANG", "LANGUAGE", "_", "LANG", "LANGUAGE", "_",
@ -49,12 +49,12 @@ func NewDefaultConfig() *Config {
func LoadConfig(cpath string) (*Config, error) { func LoadConfig(cpath string) (*Config, error) {
if _, err := os.Stat(cpath); os.IsNotExist(err) { if _, err := os.Stat(cpath); os.IsNotExist(err) {
return nil,err return nil, err
} }
if err := checkConfigPermissions(cpath); err != nil { if err := checkConfigPermissions(cpath); err != nil {
return nil, err return nil, err
} }
bs, err := ioutil.ReadFile(cpath) bs, err := ioutil.ReadFile(cpath)
if err != nil { if err != nil {
return nil, err return nil, err
@ -84,7 +84,7 @@ func checkPathRootPermissions(fpath string) error {
if (fstat.Mode().Perm() & syscall.S_IWOTH) != 0 { if (fstat.Mode().Perm() & syscall.S_IWOTH) != 0 {
return fmt.Errorf("writable by everyone!", fpath) return fmt.Errorf("writable by everyone!", fpath)
} }
if (fstat.Mode().Perm() & syscall.S_IWGRP) != 0 && fstat.Sys().(*syscall.Stat_t).Gid != 0 { if (fstat.Mode().Perm()&syscall.S_IWGRP) != 0 && fstat.Sys().(*syscall.Stat_t).Gid != 0 {
return fmt.Errorf("writable by someone else than root!", err) return fmt.Errorf("writable by someone else than root!", err)
} }
return nil return nil

@ -20,9 +20,9 @@ const (
type NetType string type NetType string
const( const (
TYPE_HOST NetType = "host" TYPE_HOST NetType = "host"
TYPE_EMPTY NetType = "empty" TYPE_EMPTY NetType = "empty"
TYPE_BRIDGE NetType = "bridge" TYPE_BRIDGE NetType = "bridge"
) )

@ -1,6 +1,6 @@
package network package network
import( import (
//Builtin //Builtin
"fmt" "fmt"
"io" "io"
@ -16,16 +16,16 @@ import(
type ProxyType string type ProxyType string
const( const (
PROXY_CLIENT ProxyType = "client" PROXY_CLIENT ProxyType = "client"
PROXY_SERVER ProxyType = "server" PROXY_SERVER ProxyType = "server"
) )
type ProtoType string type ProtoType string
const( const (
PROTO_TCP ProtoType = "tcp" PROTO_TCP ProtoType = "tcp"
PROTO_UDP ProtoType = "udp" PROTO_UDP ProtoType = "udp"
PROTO_SOCKET ProtoType = "socket" PROTO_SOCKET ProtoType = "socket"
) )
@ -146,7 +146,7 @@ func nsSocketListener(fd uintptr, proto ProtoType, lAddr string) (net.Listener,
/** /**
* Connect/Server * Connect/Server
**/ **/
func proxyServerConn(pid int, conn *net.Conn, proto ProtoType, rAddr string, log *logging.Logger, ready sync.WaitGroup) (error) { func proxyServerConn(pid int, conn *net.Conn, proto ProtoType, rAddr string, log *logging.Logger, ready sync.WaitGroup) error {
rConn, err := socketConnect(pid, proto, rAddr) rConn, err := socketConnect(pid, proto, rAddr)
if err != nil { if err != nil {
log.Error("Socket: %+v.", err) log.Error("Socket: %+v.", err)
@ -159,7 +159,7 @@ func proxyServerConn(pid int, conn *net.Conn, proto ProtoType, rAddr string, log
return nil return nil
} }
func newProxyServer(pid int, proto ProtoType, dest string, port int, log *logging.Logger, ready sync.WaitGroup) (error) { func newProxyServer(pid int, proto ProtoType, dest string, port int, log *logging.Logger, ready sync.WaitGroup) error {
if dest == "" { if dest == "" {
dest = "127.0.0.1" dest = "127.0.0.1"
} }

@ -1,9 +1,7 @@
package ns package ns
import ( import ()
)
const ( const (
SYS_SETNS = 308 SYS_SETNS = 308
) )

@ -1,11 +1,11 @@
package ns package ns
import( import (
"syscall"
"errors" "errors"
"os" "os"
"path" "path"
"strconv" "strconv"
"syscall"
) )
type Namespace struct { type Namespace struct {
@ -37,7 +37,7 @@ func init() {
} }
} }
func Set(fd, nsType uintptr) (error) { func Set(fd, nsType uintptr) error {
_, _, err := syscall.Syscall(SYS_SETNS, uintptr(fd), uintptr(nsType), 0) _, _, err := syscall.Syscall(SYS_SETNS, uintptr(fd), uintptr(nsType), 0)
if err != 0 { if err != 0 {
return errors.New("Unable to set namespace") return errors.New("Unable to set namespace")
@ -81,6 +81,6 @@ func Open(nsPath string) (uintptr, error) {
return fd.Fd(), nil return fd.Fd(), nil
} }
func Close(fd uintptr) (error) { func Close(fd uintptr) error {
return syscall.Close(int(fd)) return syscall.Close(int(fd))
} }

@ -92,7 +92,7 @@ func NewDefaultProfile() *Profile {
return &Profile{ return &Profile{
Multi: false, Multi: false,
AllowFiles: false, AllowFiles: false,
XServer: XServerConf{ XServer: XServerConf{
Enabled: true, Enabled: true,
EnableTray: false, EnableTray: false,
UseDBUS: false, UseDBUS: false,

Loading…
Cancel
Save