Skip to content

Commit e887c50

Browse files
committed
support USB in jails
1 parent 5c3840d commit e887c50

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

iocage/lib/Config/Jail/BaseConfig.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,19 @@ def _set_login_flags(self, value, **kwargs):
422422
logger=self.logger
423423
)
424424

425+
def _get_usb_device(self) -> typing.List[str]:
426+
devices = self.data["usb_device"].split() # type: typing.List[str]
427+
return devices
428+
429+
def _set_usb_device(
430+
self,
431+
value: typing.Union[typing.List[str], str]
432+
) -> None:
433+
if isinstance(value, list):
434+
self.data["usb_device"] = " ".join(value)
435+
else:
436+
self.data["usb_device"] = value
437+
425438
def _get_host_hostuuid(self):
426439
try:
427440
return self.data["host_hostuuid"]

iocage/lib/Config/Jail/Defaults.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ class JailConfigDefaults(iocage.lib.Config.Jail.BaseConfig.BaseConfig):
9292
"allow_mount_procfs": 0,
9393
"allow_mount_zfs": 0,
9494
"allow_mount_tmpfs": 0,
95+
"allow_usb": 0,
96+
"usb_device": ["ugen*"],
9597
"allow_quotas": 0,
9698
"allow_socket_af": 0,
9799
"rlimits": None,

iocage/lib/Jail.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -765,9 +765,15 @@ def devfs_ruleset(self) -> iocage.lib.DevfsRules.DevfsRuleset:
765765
if self._dhcp_enabled is True:
766766
devfs_ruleset.append("add path 'bpf*' unhide")
767767

768-
if self._allow_mount_zfs == "1":
768+
if self._allow_mount_zfs is True:
769769
devfs_ruleset.append("add path zfs unhide")
770770

771+
if self.config["allow_usb"] is True:
772+
devfs_ruleset.append("add path 'usb/*' unhide")
773+
devfs_ruleset.append("add path 'usbctl' unhide")
774+
for usb_device in self.config["usb_device"]:
775+
devfs_ruleset.append(f"add path '{usb_device}' unhide")
776+
771777
# create if the final rule combination does not exist as ruleset
772778
if devfs_ruleset not in self.host.devfs:
773779
self.logger.verbose("New devfs ruleset combination")

0 commit comments

Comments
 (0)