mirror of
				https://github.com/NVIDIA/nvidia-container-toolkit
				synced 2025-06-26 18:18:24 +00:00 
			
		
		
		
	Add basic test for preservation of OCI spec under modification
Signed-off-by: Evan Lezar <elezar@nvidia.com>
This commit is contained in:
		
							parent
							
								
									55328126c6
								
							
						
					
					
						commit
						8afd89676f
					
				
							
								
								
									
										58
									
								
								internal/oci/spec_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								internal/oci/spec_test.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,58 @@ | |||||||
|  | package oci | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"fmt" | ||||||
|  | 	"os" | ||||||
|  | 	"path/filepath" | ||||||
|  | 	"runtime" | ||||||
|  | 	"testing" | ||||||
|  | 
 | ||||||
|  | 	"github.com/stretchr/testify/require" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | func TestMaintainSpec(t *testing.T) { | ||||||
|  | 	moduleRoot, err := getModuleRoot() | ||||||
|  | 	require.NoError(t, err) | ||||||
|  | 
 | ||||||
|  | 	files := []string{ | ||||||
|  | 		"config.clone3.json", | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	for _, f := range files { | ||||||
|  | 		inputSpecPath := filepath.Join(moduleRoot, "test/input", f) | ||||||
|  | 
 | ||||||
|  | 		spec := NewSpecFromFile(inputSpecPath).(*fileSpec) | ||||||
|  | 
 | ||||||
|  | 		spec.Load() | ||||||
|  | 
 | ||||||
|  | 		outputSpecPath := filepath.Join(moduleRoot, "test/output", f) | ||||||
|  | 		spec.path = outputSpecPath | ||||||
|  | 		spec.Flush() | ||||||
|  | 
 | ||||||
|  | 		inputContents, err := os.ReadFile(inputSpecPath) | ||||||
|  | 		require.NoError(t, err) | ||||||
|  | 
 | ||||||
|  | 		outputContents, err := os.ReadFile(outputSpecPath) | ||||||
|  | 		require.NoError(t, err) | ||||||
|  | 
 | ||||||
|  | 		require.JSONEq(t, string(inputContents), string(outputContents)) | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func getModuleRoot() (string, error) { | ||||||
|  | 	_, filename, _, _ := runtime.Caller(0) | ||||||
|  | 
 | ||||||
|  | 	return hasGoMod(filename) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func hasGoMod(dir string) (string, error) { | ||||||
|  | 	if dir == "" || dir == "/" { | ||||||
|  | 		return "", fmt.Errorf("module root not found") | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	_, err := os.Stat(filepath.Join(dir, "go.mod")) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return hasGoMod(filepath.Dir(dir)) | ||||||
|  | 	} | ||||||
|  | 	return dir, nil | ||||||
|  | } | ||||||
							
								
								
									
										784
									
								
								test/input/config.clone3.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										784
									
								
								test/input/config.clone3.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,784 @@ | |||||||
|  | { | ||||||
|  |   "ociVersion": "1.0.2-dev", | ||||||
|  |   "process": { | ||||||
|  |     "terminal": true, | ||||||
|  |     "user": { | ||||||
|  |       "uid": 0, | ||||||
|  |       "gid": 0 | ||||||
|  |     }, | ||||||
|  |     "args": [ | ||||||
|  |       "sleep", | ||||||
|  |       "60" | ||||||
|  |     ], | ||||||
|  |     "env": [ | ||||||
|  |       "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", | ||||||
|  |       "HOSTNAME=8de5efc6a95c", | ||||||
|  |       "TERM=xterm" | ||||||
|  |     ], | ||||||
|  |     "cwd": "/", | ||||||
|  |     "capabilities": { | ||||||
|  |       "bounding": [ | ||||||
|  |         "CAP_CHOWN", | ||||||
|  |         "CAP_DAC_OVERRIDE", | ||||||
|  |         "CAP_FSETID", | ||||||
|  |         "CAP_FOWNER", | ||||||
|  |         "CAP_MKNOD", | ||||||
|  |         "CAP_NET_RAW", | ||||||
|  |         "CAP_SETGID", | ||||||
|  |         "CAP_SETUID", | ||||||
|  |         "CAP_SETFCAP", | ||||||
|  |         "CAP_SETPCAP", | ||||||
|  |         "CAP_NET_BIND_SERVICE", | ||||||
|  |         "CAP_SYS_CHROOT", | ||||||
|  |         "CAP_KILL", | ||||||
|  |         "CAP_AUDIT_WRITE" | ||||||
|  |       ], | ||||||
|  |       "effective": [ | ||||||
|  |         "CAP_CHOWN", | ||||||
|  |         "CAP_DAC_OVERRIDE", | ||||||
|  |         "CAP_FSETID", | ||||||
|  |         "CAP_FOWNER", | ||||||
|  |         "CAP_MKNOD", | ||||||
|  |         "CAP_NET_RAW", | ||||||
|  |         "CAP_SETGID", | ||||||
|  |         "CAP_SETUID", | ||||||
|  |         "CAP_SETFCAP", | ||||||
|  |         "CAP_SETPCAP", | ||||||
|  |         "CAP_NET_BIND_SERVICE", | ||||||
|  |         "CAP_SYS_CHROOT", | ||||||
|  |         "CAP_KILL", | ||||||
|  |         "CAP_AUDIT_WRITE" | ||||||
|  |       ], | ||||||
|  |       "inheritable": [ | ||||||
|  |         "CAP_CHOWN", | ||||||
|  |         "CAP_DAC_OVERRIDE", | ||||||
|  |         "CAP_FSETID", | ||||||
|  |         "CAP_FOWNER", | ||||||
|  |         "CAP_MKNOD", | ||||||
|  |         "CAP_NET_RAW", | ||||||
|  |         "CAP_SETGID", | ||||||
|  |         "CAP_SETUID", | ||||||
|  |         "CAP_SETFCAP", | ||||||
|  |         "CAP_SETPCAP", | ||||||
|  |         "CAP_NET_BIND_SERVICE", | ||||||
|  |         "CAP_SYS_CHROOT", | ||||||
|  |         "CAP_KILL", | ||||||
|  |         "CAP_AUDIT_WRITE" | ||||||
|  |       ], | ||||||
|  |       "permitted": [ | ||||||
|  |         "CAP_CHOWN", | ||||||
|  |         "CAP_DAC_OVERRIDE", | ||||||
|  |         "CAP_FSETID", | ||||||
|  |         "CAP_FOWNER", | ||||||
|  |         "CAP_MKNOD", | ||||||
|  |         "CAP_NET_RAW", | ||||||
|  |         "CAP_SETGID", | ||||||
|  |         "CAP_SETUID", | ||||||
|  |         "CAP_SETFCAP", | ||||||
|  |         "CAP_SETPCAP", | ||||||
|  |         "CAP_NET_BIND_SERVICE", | ||||||
|  |         "CAP_SYS_CHROOT", | ||||||
|  |         "CAP_KILL", | ||||||
|  |         "CAP_AUDIT_WRITE" | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     "apparmorProfile": "docker-default", | ||||||
|  |     "oomScoreAdj": 0 | ||||||
|  |   }, | ||||||
|  |   "root": { | ||||||
|  |     "path": "/var/lib/docker/overlay2/fbf92f54592ddb439159bc7eb25c865b9347a2d71d63b41b7b4e4a471847c84f/merged" | ||||||
|  |   }, | ||||||
|  |   "hostname": "8de5efc6a95c", | ||||||
|  |   "mounts": [ | ||||||
|  |     { | ||||||
|  |       "destination": "/proc", | ||||||
|  |       "type": "proc", | ||||||
|  |       "source": "proc", | ||||||
|  |       "options": [ | ||||||
|  |         "nosuid", | ||||||
|  |         "noexec", | ||||||
|  |         "nodev" | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "destination": "/dev", | ||||||
|  |       "type": "tmpfs", | ||||||
|  |       "source": "tmpfs", | ||||||
|  |       "options": [ | ||||||
|  |         "nosuid", | ||||||
|  |         "strictatime", | ||||||
|  |         "mode=755", | ||||||
|  |         "size=65536k" | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "destination": "/dev/pts", | ||||||
|  |       "type": "devpts", | ||||||
|  |       "source": "devpts", | ||||||
|  |       "options": [ | ||||||
|  |         "nosuid", | ||||||
|  |         "noexec", | ||||||
|  |         "newinstance", | ||||||
|  |         "ptmxmode=0666", | ||||||
|  |         "mode=0620", | ||||||
|  |         "gid=5" | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "destination": "/sys", | ||||||
|  |       "type": "sysfs", | ||||||
|  |       "source": "sysfs", | ||||||
|  |       "options": [ | ||||||
|  |         "nosuid", | ||||||
|  |         "noexec", | ||||||
|  |         "nodev", | ||||||
|  |         "ro" | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "destination": "/sys/fs/cgroup", | ||||||
|  |       "type": "cgroup", | ||||||
|  |       "source": "cgroup", | ||||||
|  |       "options": [ | ||||||
|  |         "ro", | ||||||
|  |         "nosuid", | ||||||
|  |         "noexec", | ||||||
|  |         "nodev" | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "destination": "/dev/mqueue", | ||||||
|  |       "type": "mqueue", | ||||||
|  |       "source": "mqueue", | ||||||
|  |       "options": [ | ||||||
|  |         "nosuid", | ||||||
|  |         "noexec", | ||||||
|  |         "nodev" | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "destination": "/dev/shm", | ||||||
|  |       "type": "tmpfs", | ||||||
|  |       "source": "shm", | ||||||
|  |       "options": [ | ||||||
|  |         "nosuid", | ||||||
|  |         "noexec", | ||||||
|  |         "nodev", | ||||||
|  |         "mode=1777", | ||||||
|  |         "size=67108864" | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "destination": "/etc/resolv.conf", | ||||||
|  |       "type": "bind", | ||||||
|  |       "source": "/var/lib/docker/containers/8de5efc6a95c4ddae36dde7beb656ed5c7de912ecec2f628c42dbd0ef7bbeec6/resolv.conf", | ||||||
|  |       "options": [ | ||||||
|  |         "rbind", | ||||||
|  |         "rprivate" | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "destination": "/etc/hostname", | ||||||
|  |       "type": "bind", | ||||||
|  |       "source": "/var/lib/docker/containers/8de5efc6a95c4ddae36dde7beb656ed5c7de912ecec2f628c42dbd0ef7bbeec6/hostname", | ||||||
|  |       "options": [ | ||||||
|  |         "rbind", | ||||||
|  |         "rprivate" | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "destination": "/etc/hosts", | ||||||
|  |       "type": "bind", | ||||||
|  |       "source": "/var/lib/docker/containers/8de5efc6a95c4ddae36dde7beb656ed5c7de912ecec2f628c42dbd0ef7bbeec6/hosts", | ||||||
|  |       "options": [ | ||||||
|  |         "rbind", | ||||||
|  |         "rprivate" | ||||||
|  |       ] | ||||||
|  |     } | ||||||
|  |   ], | ||||||
|  |   "hooks": { | ||||||
|  |     "prestart": [ | ||||||
|  |       { | ||||||
|  |         "path": "/proc/593/exe", | ||||||
|  |         "args": [ | ||||||
|  |           "libnetwork-setkey", | ||||||
|  |           "-exec-root=/var/run/docker", | ||||||
|  |           "8de5efc6a95c4ddae36dde7beb656ed5c7de912ecec2f628c42dbd0ef7bbeec6", | ||||||
|  |           "9967b9f7c4d4" | ||||||
|  |         ] | ||||||
|  |       } | ||||||
|  |     ] | ||||||
|  |   }, | ||||||
|  |   "linux": { | ||||||
|  |     "sysctl": { | ||||||
|  |       "net.ipv4.ip_unprivileged_port_start": "0" | ||||||
|  |     }, | ||||||
|  |     "resources": { | ||||||
|  |       "devices": [ | ||||||
|  |         { | ||||||
|  |           "allow": false, | ||||||
|  |           "access": "rwm" | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "allow": true, | ||||||
|  |           "type": "c", | ||||||
|  |           "major": 1, | ||||||
|  |           "minor": 5, | ||||||
|  |           "access": "rwm" | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "allow": true, | ||||||
|  |           "type": "c", | ||||||
|  |           "major": 1, | ||||||
|  |           "minor": 3, | ||||||
|  |           "access": "rwm" | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "allow": true, | ||||||
|  |           "type": "c", | ||||||
|  |           "major": 1, | ||||||
|  |           "minor": 9, | ||||||
|  |           "access": "rwm" | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "allow": true, | ||||||
|  |           "type": "c", | ||||||
|  |           "major": 1, | ||||||
|  |           "minor": 8, | ||||||
|  |           "access": "rwm" | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "allow": true, | ||||||
|  |           "type": "c", | ||||||
|  |           "major": 5, | ||||||
|  |           "minor": 0, | ||||||
|  |           "access": "rwm" | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "allow": true, | ||||||
|  |           "type": "c", | ||||||
|  |           "major": 5, | ||||||
|  |           "minor": 1, | ||||||
|  |           "access": "rwm" | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "allow": false, | ||||||
|  |           "type": "c", | ||||||
|  |           "major": 10, | ||||||
|  |           "minor": 229, | ||||||
|  |           "access": "rwm" | ||||||
|  |         } | ||||||
|  |       ], | ||||||
|  |       "memory": { | ||||||
|  |         "disableOOMKiller": false | ||||||
|  |       }, | ||||||
|  |       "cpu": { | ||||||
|  |         "shares": 0 | ||||||
|  |       }, | ||||||
|  |       "blockIO": { | ||||||
|  |         "weight": 0 | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "cgroupsPath": "/docker/8de5efc6a95c4ddae36dde7beb656ed5c7de912ecec2f628c42dbd0ef7bbeec6", | ||||||
|  |     "namespaces": [ | ||||||
|  |       { | ||||||
|  |         "type": "mount" | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         "type": "network" | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         "type": "uts" | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         "type": "pid" | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         "type": "ipc" | ||||||
|  |       } | ||||||
|  |     ], | ||||||
|  |     "seccomp": { | ||||||
|  |       "defaultAction": "SCMP_ACT_ERRNO", | ||||||
|  |       "architectures": [ | ||||||
|  |         "SCMP_ARCH_X86_64", | ||||||
|  |         "SCMP_ARCH_X86", | ||||||
|  |         "SCMP_ARCH_X32" | ||||||
|  |       ], | ||||||
|  |       "syscalls": [ | ||||||
|  |         { | ||||||
|  |           "names": [ | ||||||
|  |             "accept", | ||||||
|  |             "accept4", | ||||||
|  |             "access", | ||||||
|  |             "adjtimex", | ||||||
|  |             "alarm", | ||||||
|  |             "bind", | ||||||
|  |             "brk", | ||||||
|  |             "capget", | ||||||
|  |             "capset", | ||||||
|  |             "chdir", | ||||||
|  |             "chmod", | ||||||
|  |             "chown", | ||||||
|  |             "chown32", | ||||||
|  |             "clock_adjtime", | ||||||
|  |             "clock_adjtime64", | ||||||
|  |             "clock_getres", | ||||||
|  |             "clock_getres_time64", | ||||||
|  |             "clock_gettime", | ||||||
|  |             "clock_gettime64", | ||||||
|  |             "clock_nanosleep", | ||||||
|  |             "clock_nanosleep_time64", | ||||||
|  |             "close", | ||||||
|  |             "close_range", | ||||||
|  |             "connect", | ||||||
|  |             "copy_file_range", | ||||||
|  |             "creat", | ||||||
|  |             "dup", | ||||||
|  |             "dup2", | ||||||
|  |             "dup3", | ||||||
|  |             "epoll_create", | ||||||
|  |             "epoll_create1", | ||||||
|  |             "epoll_ctl", | ||||||
|  |             "epoll_ctl_old", | ||||||
|  |             "epoll_pwait", | ||||||
|  |             "epoll_pwait2", | ||||||
|  |             "epoll_wait", | ||||||
|  |             "epoll_wait_old", | ||||||
|  |             "eventfd", | ||||||
|  |             "eventfd2", | ||||||
|  |             "execve", | ||||||
|  |             "execveat", | ||||||
|  |             "exit", | ||||||
|  |             "exit_group", | ||||||
|  |             "faccessat", | ||||||
|  |             "faccessat2", | ||||||
|  |             "fadvise64", | ||||||
|  |             "fadvise64_64", | ||||||
|  |             "fallocate", | ||||||
|  |             "fanotify_mark", | ||||||
|  |             "fchdir", | ||||||
|  |             "fchmod", | ||||||
|  |             "fchmodat", | ||||||
|  |             "fchown", | ||||||
|  |             "fchown32", | ||||||
|  |             "fchownat", | ||||||
|  |             "fcntl", | ||||||
|  |             "fcntl64", | ||||||
|  |             "fdatasync", | ||||||
|  |             "fgetxattr", | ||||||
|  |             "flistxattr", | ||||||
|  |             "flock", | ||||||
|  |             "fork", | ||||||
|  |             "fremovexattr", | ||||||
|  |             "fsetxattr", | ||||||
|  |             "fstat", | ||||||
|  |             "fstat64", | ||||||
|  |             "fstatat64", | ||||||
|  |             "fstatfs", | ||||||
|  |             "fstatfs64", | ||||||
|  |             "fsync", | ||||||
|  |             "ftruncate", | ||||||
|  |             "ftruncate64", | ||||||
|  |             "futex", | ||||||
|  |             "futex_time64", | ||||||
|  |             "futimesat", | ||||||
|  |             "getcpu", | ||||||
|  |             "getcwd", | ||||||
|  |             "getdents", | ||||||
|  |             "getdents64", | ||||||
|  |             "getegid", | ||||||
|  |             "getegid32", | ||||||
|  |             "geteuid", | ||||||
|  |             "geteuid32", | ||||||
|  |             "getgid", | ||||||
|  |             "getgid32", | ||||||
|  |             "getgroups", | ||||||
|  |             "getgroups32", | ||||||
|  |             "getitimer", | ||||||
|  |             "getpeername", | ||||||
|  |             "getpgid", | ||||||
|  |             "getpgrp", | ||||||
|  |             "getpid", | ||||||
|  |             "getppid", | ||||||
|  |             "getpriority", | ||||||
|  |             "getrandom", | ||||||
|  |             "getresgid", | ||||||
|  |             "getresgid32", | ||||||
|  |             "getresuid", | ||||||
|  |             "getresuid32", | ||||||
|  |             "getrlimit", | ||||||
|  |             "get_robust_list", | ||||||
|  |             "getrusage", | ||||||
|  |             "getsid", | ||||||
|  |             "getsockname", | ||||||
|  |             "getsockopt", | ||||||
|  |             "get_thread_area", | ||||||
|  |             "gettid", | ||||||
|  |             "gettimeofday", | ||||||
|  |             "getuid", | ||||||
|  |             "getuid32", | ||||||
|  |             "getxattr", | ||||||
|  |             "inotify_add_watch", | ||||||
|  |             "inotify_init", | ||||||
|  |             "inotify_init1", | ||||||
|  |             "inotify_rm_watch", | ||||||
|  |             "io_cancel", | ||||||
|  |             "ioctl", | ||||||
|  |             "io_destroy", | ||||||
|  |             "io_getevents", | ||||||
|  |             "io_pgetevents", | ||||||
|  |             "io_pgetevents_time64", | ||||||
|  |             "ioprio_get", | ||||||
|  |             "ioprio_set", | ||||||
|  |             "io_setup", | ||||||
|  |             "io_submit", | ||||||
|  |             "io_uring_enter", | ||||||
|  |             "io_uring_register", | ||||||
|  |             "io_uring_setup", | ||||||
|  |             "ipc", | ||||||
|  |             "kill", | ||||||
|  |             "lchown", | ||||||
|  |             "lchown32", | ||||||
|  |             "lgetxattr", | ||||||
|  |             "link", | ||||||
|  |             "linkat", | ||||||
|  |             "listen", | ||||||
|  |             "listxattr", | ||||||
|  |             "llistxattr", | ||||||
|  |             "_llseek", | ||||||
|  |             "lremovexattr", | ||||||
|  |             "lseek", | ||||||
|  |             "lsetxattr", | ||||||
|  |             "lstat", | ||||||
|  |             "lstat64", | ||||||
|  |             "madvise", | ||||||
|  |             "membarrier", | ||||||
|  |             "memfd_create", | ||||||
|  |             "mincore", | ||||||
|  |             "mkdir", | ||||||
|  |             "mkdirat", | ||||||
|  |             "mknod", | ||||||
|  |             "mknodat", | ||||||
|  |             "mlock", | ||||||
|  |             "mlock2", | ||||||
|  |             "mlockall", | ||||||
|  |             "mmap", | ||||||
|  |             "mmap2", | ||||||
|  |             "mprotect", | ||||||
|  |             "mq_getsetattr", | ||||||
|  |             "mq_notify", | ||||||
|  |             "mq_open", | ||||||
|  |             "mq_timedreceive", | ||||||
|  |             "mq_timedreceive_time64", | ||||||
|  |             "mq_timedsend", | ||||||
|  |             "mq_timedsend_time64", | ||||||
|  |             "mq_unlink", | ||||||
|  |             "mremap", | ||||||
|  |             "msgctl", | ||||||
|  |             "msgget", | ||||||
|  |             "msgrcv", | ||||||
|  |             "msgsnd", | ||||||
|  |             "msync", | ||||||
|  |             "munlock", | ||||||
|  |             "munlockall", | ||||||
|  |             "munmap", | ||||||
|  |             "nanosleep", | ||||||
|  |             "newfstatat", | ||||||
|  |             "_newselect", | ||||||
|  |             "open", | ||||||
|  |             "openat", | ||||||
|  |             "openat2", | ||||||
|  |             "pause", | ||||||
|  |             "pidfd_open", | ||||||
|  |             "pidfd_send_signal", | ||||||
|  |             "pipe", | ||||||
|  |             "pipe2", | ||||||
|  |             "poll", | ||||||
|  |             "ppoll", | ||||||
|  |             "ppoll_time64", | ||||||
|  |             "prctl", | ||||||
|  |             "pread64", | ||||||
|  |             "preadv", | ||||||
|  |             "preadv2", | ||||||
|  |             "prlimit64", | ||||||
|  |             "pselect6", | ||||||
|  |             "pselect6_time64", | ||||||
|  |             "pwrite64", | ||||||
|  |             "pwritev", | ||||||
|  |             "pwritev2", | ||||||
|  |             "read", | ||||||
|  |             "readahead", | ||||||
|  |             "readlink", | ||||||
|  |             "readlinkat", | ||||||
|  |             "readv", | ||||||
|  |             "recv", | ||||||
|  |             "recvfrom", | ||||||
|  |             "recvmmsg", | ||||||
|  |             "recvmmsg_time64", | ||||||
|  |             "recvmsg", | ||||||
|  |             "remap_file_pages", | ||||||
|  |             "removexattr", | ||||||
|  |             "rename", | ||||||
|  |             "renameat", | ||||||
|  |             "renameat2", | ||||||
|  |             "restart_syscall", | ||||||
|  |             "rmdir", | ||||||
|  |             "rseq", | ||||||
|  |             "rt_sigaction", | ||||||
|  |             "rt_sigpending", | ||||||
|  |             "rt_sigprocmask", | ||||||
|  |             "rt_sigqueueinfo", | ||||||
|  |             "rt_sigreturn", | ||||||
|  |             "rt_sigsuspend", | ||||||
|  |             "rt_sigtimedwait", | ||||||
|  |             "rt_sigtimedwait_time64", | ||||||
|  |             "rt_tgsigqueueinfo", | ||||||
|  |             "sched_getaffinity", | ||||||
|  |             "sched_getattr", | ||||||
|  |             "sched_getparam", | ||||||
|  |             "sched_get_priority_max", | ||||||
|  |             "sched_get_priority_min", | ||||||
|  |             "sched_getscheduler", | ||||||
|  |             "sched_rr_get_interval", | ||||||
|  |             "sched_rr_get_interval_time64", | ||||||
|  |             "sched_setaffinity", | ||||||
|  |             "sched_setattr", | ||||||
|  |             "sched_setparam", | ||||||
|  |             "sched_setscheduler", | ||||||
|  |             "sched_yield", | ||||||
|  |             "seccomp", | ||||||
|  |             "select", | ||||||
|  |             "semctl", | ||||||
|  |             "semget", | ||||||
|  |             "semop", | ||||||
|  |             "semtimedop", | ||||||
|  |             "semtimedop_time64", | ||||||
|  |             "send", | ||||||
|  |             "sendfile", | ||||||
|  |             "sendfile64", | ||||||
|  |             "sendmmsg", | ||||||
|  |             "sendmsg", | ||||||
|  |             "sendto", | ||||||
|  |             "setfsgid", | ||||||
|  |             "setfsgid32", | ||||||
|  |             "setfsuid", | ||||||
|  |             "setfsuid32", | ||||||
|  |             "setgid", | ||||||
|  |             "setgid32", | ||||||
|  |             "setgroups", | ||||||
|  |             "setgroups32", | ||||||
|  |             "setitimer", | ||||||
|  |             "setpgid", | ||||||
|  |             "setpriority", | ||||||
|  |             "setregid", | ||||||
|  |             "setregid32", | ||||||
|  |             "setresgid", | ||||||
|  |             "setresgid32", | ||||||
|  |             "setresuid", | ||||||
|  |             "setresuid32", | ||||||
|  |             "setreuid", | ||||||
|  |             "setreuid32", | ||||||
|  |             "setrlimit", | ||||||
|  |             "set_robust_list", | ||||||
|  |             "setsid", | ||||||
|  |             "setsockopt", | ||||||
|  |             "set_thread_area", | ||||||
|  |             "set_tid_address", | ||||||
|  |             "setuid", | ||||||
|  |             "setuid32", | ||||||
|  |             "setxattr", | ||||||
|  |             "shmat", | ||||||
|  |             "shmctl", | ||||||
|  |             "shmdt", | ||||||
|  |             "shmget", | ||||||
|  |             "shutdown", | ||||||
|  |             "sigaltstack", | ||||||
|  |             "signalfd", | ||||||
|  |             "signalfd4", | ||||||
|  |             "sigprocmask", | ||||||
|  |             "sigreturn", | ||||||
|  |             "socket", | ||||||
|  |             "socketcall", | ||||||
|  |             "socketpair", | ||||||
|  |             "splice", | ||||||
|  |             "stat", | ||||||
|  |             "stat64", | ||||||
|  |             "statfs", | ||||||
|  |             "statfs64", | ||||||
|  |             "statx", | ||||||
|  |             "symlink", | ||||||
|  |             "symlinkat", | ||||||
|  |             "sync", | ||||||
|  |             "sync_file_range", | ||||||
|  |             "syncfs", | ||||||
|  |             "sysinfo", | ||||||
|  |             "tee", | ||||||
|  |             "tgkill", | ||||||
|  |             "time", | ||||||
|  |             "timer_create", | ||||||
|  |             "timer_delete", | ||||||
|  |             "timer_getoverrun", | ||||||
|  |             "timer_gettime", | ||||||
|  |             "timer_gettime64", | ||||||
|  |             "timer_settime", | ||||||
|  |             "timer_settime64", | ||||||
|  |             "timerfd_create", | ||||||
|  |             "timerfd_gettime", | ||||||
|  |             "timerfd_gettime64", | ||||||
|  |             "timerfd_settime", | ||||||
|  |             "timerfd_settime64", | ||||||
|  |             "times", | ||||||
|  |             "tkill", | ||||||
|  |             "truncate", | ||||||
|  |             "truncate64", | ||||||
|  |             "ugetrlimit", | ||||||
|  |             "umask", | ||||||
|  |             "uname", | ||||||
|  |             "unlink", | ||||||
|  |             "unlinkat", | ||||||
|  |             "utime", | ||||||
|  |             "utimensat", | ||||||
|  |             "utimensat_time64", | ||||||
|  |             "utimes", | ||||||
|  |             "vfork", | ||||||
|  |             "vmsplice", | ||||||
|  |             "wait4", | ||||||
|  |             "waitid", | ||||||
|  |             "waitpid", | ||||||
|  |             "write", | ||||||
|  |             "writev" | ||||||
|  |           ], | ||||||
|  |           "action": "SCMP_ACT_ALLOW" | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "names": [ | ||||||
|  |             "ptrace" | ||||||
|  |           ], | ||||||
|  |           "action": "SCMP_ACT_ALLOW" | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "names": [ | ||||||
|  |             "personality" | ||||||
|  |           ], | ||||||
|  |           "action": "SCMP_ACT_ALLOW", | ||||||
|  |           "args": [ | ||||||
|  |             { | ||||||
|  |               "index": 0, | ||||||
|  |               "value": 0, | ||||||
|  |               "op": "SCMP_CMP_EQ" | ||||||
|  |             } | ||||||
|  |           ] | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "names": [ | ||||||
|  |             "personality" | ||||||
|  |           ], | ||||||
|  |           "action": "SCMP_ACT_ALLOW", | ||||||
|  |           "args": [ | ||||||
|  |             { | ||||||
|  |               "index": 0, | ||||||
|  |               "value": 8, | ||||||
|  |               "op": "SCMP_CMP_EQ" | ||||||
|  |             } | ||||||
|  |           ] | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "names": [ | ||||||
|  |             "personality" | ||||||
|  |           ], | ||||||
|  |           "action": "SCMP_ACT_ALLOW", | ||||||
|  |           "args": [ | ||||||
|  |             { | ||||||
|  |               "index": 0, | ||||||
|  |               "value": 131072, | ||||||
|  |               "op": "SCMP_CMP_EQ" | ||||||
|  |             } | ||||||
|  |           ] | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "names": [ | ||||||
|  |             "personality" | ||||||
|  |           ], | ||||||
|  |           "action": "SCMP_ACT_ALLOW", | ||||||
|  |           "args": [ | ||||||
|  |             { | ||||||
|  |               "index": 0, | ||||||
|  |               "value": 131080, | ||||||
|  |               "op": "SCMP_CMP_EQ" | ||||||
|  |             } | ||||||
|  |           ] | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "names": [ | ||||||
|  |             "personality" | ||||||
|  |           ], | ||||||
|  |           "action": "SCMP_ACT_ALLOW", | ||||||
|  |           "args": [ | ||||||
|  |             { | ||||||
|  |               "index": 0, | ||||||
|  |               "value": 4294967295, | ||||||
|  |               "op": "SCMP_CMP_EQ" | ||||||
|  |             } | ||||||
|  |           ] | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "names": [ | ||||||
|  |             "arch_prctl" | ||||||
|  |           ], | ||||||
|  |           "action": "SCMP_ACT_ALLOW" | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "names": [ | ||||||
|  |             "modify_ldt" | ||||||
|  |           ], | ||||||
|  |           "action": "SCMP_ACT_ALLOW" | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "names": [ | ||||||
|  |             "clone" | ||||||
|  |           ], | ||||||
|  |           "action": "SCMP_ACT_ALLOW", | ||||||
|  |           "args": [ | ||||||
|  |             { | ||||||
|  |               "index": 0, | ||||||
|  |               "value": 2114060288, | ||||||
|  |               "op": "SCMP_CMP_MASKED_EQ" | ||||||
|  |             } | ||||||
|  |           ] | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "names": [ | ||||||
|  |             "clone3" | ||||||
|  |           ], | ||||||
|  |           "action": "SCMP_ACT_ERRNO", | ||||||
|  |           "errnoRet": 38 | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "names": [ | ||||||
|  |             "chroot" | ||||||
|  |           ], | ||||||
|  |           "action": "SCMP_ACT_ALLOW" | ||||||
|  |         } | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     "maskedPaths": [ | ||||||
|  |       "/proc/asound", | ||||||
|  |       "/proc/acpi", | ||||||
|  |       "/proc/kcore", | ||||||
|  |       "/proc/keys", | ||||||
|  |       "/proc/latency_stats", | ||||||
|  |       "/proc/timer_list", | ||||||
|  |       "/proc/timer_stats", | ||||||
|  |       "/proc/sched_debug", | ||||||
|  |       "/proc/scsi", | ||||||
|  |       "/sys/firmware" | ||||||
|  |     ], | ||||||
|  |     "readonlyPaths": [ | ||||||
|  |       "/proc/bus", | ||||||
|  |       "/proc/fs", | ||||||
|  |       "/proc/irq", | ||||||
|  |       "/proc/sys", | ||||||
|  |       "/proc/sysrq-trigger" | ||||||
|  |     ] | ||||||
|  |   } | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user