Skip to content

Commit

Permalink
Merge pull request AshleyYakeley#38 from umbra/master
Browse files Browse the repository at this point in the history
Add LXC exclusive attributes
  • Loading branch information
AshleyYakeley authored May 24, 2024
2 parents eaa7646 + 2872a92 commit 75828de
Show file tree
Hide file tree
Showing 4 changed files with 158 additions and 0 deletions.
1 change: 1 addition & 0 deletions checks/checks.nix
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ in

domain-empty = test testlib.domain domain/empty;
domain-linux = test testlib.domain domain/template-linux;
domain-lxc = test testlib.domain domain/template-lxc;
domain-windows-1 = test testlib.domain domain/template-windows-1;
domain-windows-2 = test testlib.domain domain/template-windows-2;
domain-windows-3 = test testlib.domain domain/template-windows-3;
Expand Down
54 changes: 54 additions & 0 deletions checks/domain/template-lxc/expected.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
<domain>
<name>test-lxc</name>
<uuid>b208ceff-2501-4903-98eb-7421a4e1a895</uuid>
<os>
<type arch='x86_64'>exe</type>
<init>/bin/systemd</init>
<initarg>--unit emergency.service</initarg>
</os>
<features>
<privnet/>
<capabilities policy='default'>
<audit_control state='off'/>
<audit_read state='on'/>
<audit_write state='off'/>
<block_suspend state='off'/>
<bpf state='off'/>
<checkpoint_restore state='off'/>
<dac_override state='off'/>
<dac_read_search state='off'/>
<fowner state='off'/>
<fsetid state='off'/>
<ipc_lock state='off'/>
<ipc_owner state='off'/>
<kill state='on'/>
<lease state='off'/>
<linux_immutable state='off'/>
<mac_admin state='off'/>
<mac_override state='off'/>
<mknod state='off'/>
<net_admin state='off'/>
<net_bind_service state='off'/>
<net_broadcast state='on'/>
<net_raw state='off'/>
<perfmon state='off'/>
<setfcap state='off'/>
<setgid state='off'/>
<setpcap state='off'/>
<setuid state='on'/>
<syslog state='on'/>
<sys_admin state='on'/>
<sys_boot state='off'/>
<sys_chroot state='off'/>
<sys_module state='off'/>
<sys_nice state='on'/>
<sys_pacct state='off'/>
<sys_ptrace state='off'/>
<sys_rawio state='off'/>
<sys_resource state='off'/>
<sys_time state='on'/>
<sys_tty_config state='off'/>
<wake_alarm state='off'/>
</capabilities>
</features>
</domain>
57 changes: 57 additions & 0 deletions checks/domain/template-lxc/input.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
{ ... }:
{
name = "test-lxc";
uuid = "b208ceff-2501-4903-98eb-7421a4e1a895";
os = {
type = "exe";
arch = "x86_64";
init = /bin/systemd;
initarg = "--unit emergency.service";
};
features = {
privnet = {};
capabilities = {
policy = "default";
audit_control.state = false;
audit_read.state = true;
audit_write.state = false;
block_suspend.state = false;
bpf.state = false;
checkpoint_restore.state = false;
dac_override.state = false;
dac_read_search.state = false;
fowner.state = false;
fsetid.state = false;
ipc_lock.state = false;
ipc_owner.state = false;
kill.state = true;
lease.state = false;
linux_immutable.state = false;
mac_admin.state = false;
mac_override.state = false;
mknod.state = false;
net_admin.state = false;
net_bind_service.state = false;
net_broadcast.state = true;
net_raw.state = false;
perfmon.state = false;
setfcap.state = false;
setgid.state = false;
setpcap.state = false;
setuid.state = true;
syslog.state = true;
sys_admin.state = true;
sys_boot.state = false;
sys_chroot.state = false;
sys_module.state = false;
sys_nice.state = true;
sys_pacct.state = false;
sys_ptrace.state = false;
sys_rawio.state = false;
sys_resource.state = false;
sys_time.state = true;
sys_tty_config.state = false;
wake_alarm.state = false;
};
};
}
46 changes: 46 additions & 0 deletions generate-xml/domain.nix
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@ let
(subelem "bootmenu" [ (subattr "enable" typeBoolYesNo) ] [ ])
(subelem "kernel" [ ] (sub "path" typePath))
(subelem "initrd" [ ] (sub "path" typePath))
(subelem "init" [ ] typePath)
(subelem "initarg" [ ] typeString)
(subelem "cmdline" [ ] (sub "options" typeString))
(subelem "smbios" [ (subattr "mode" typeString) ] [ ])
]
Expand All @@ -85,6 +87,7 @@ let
[
(subelem "acpi" [ ] [ ])
(subelem "apic" [ ] [ ])
(subelem "privnet" [ ] [ ])
(subelem "hyperv" [ (subattr "mode" typeString) ]
[
(subelem "relaxed" [ (subattr "state" typeBoolOnOff) ] [ ])
Expand All @@ -105,6 +108,49 @@ let
(subelem "ipi" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "evmcs" [ (subattr "state" typeBoolOnOff) ] [ ])
])
(subelem "capabilities" [ (subattr "policy" typeString) ]
[
(subelem "audit_control" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "audit_read" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "audit_write" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "block_suspend" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "bpf" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "checkpoint_restore" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "dac_override" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "dac_read_search" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "fowner" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "fsetid" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "ipc_lock" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "ipc_owner" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "kill" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "lease" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "linux_immutable" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "mac_admin" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "mac_override" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "mknod" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "net_admin" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "net_bind_service" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "net_broadcast" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "net_raw" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "perfmon" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "setfcap" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "setgid" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "setpcap" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "setuid" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "syslog" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "sys_admin" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "sys_boot" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "sys_chroot" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "sys_module" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "sys_nice" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "sys_pacct" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "sys_ptrace" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "sys_rawio" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "sys_resource" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "sys_time" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "sys_tty_config" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "wake_alarm" [ (subattr "state" typeBoolOnOff) ] [ ])
])
(subelem "vmport" [ (subattr "state" typeBoolOnOff) ] [ ])
(subelem "kvm" [ ] [
(subelem "hidden" [ (subattr "state" typeBoolOnOff) ] [ ])
Expand Down

0 comments on commit 75828de

Please sign in to comment.