Revert "remove sandbox-defaults.sb"

As discussed in NixOS/nixpkgs#11001, we still need some of the old
sandbox mechanism.

This reverts commit d760c2638c.
This commit is contained in:
Shea Levy 2015-11-21 16:40:24 -05:00
parent b9b7bb1806
commit e0bd114e09
2 changed files with 64 additions and 0 deletions

View file

@ -33,3 +33,4 @@ $(d)/local-store.cc: $(d)/schema.sql.hh
clean-files += $(d)/schema.sql.hh clean-files += $(d)/schema.sql.hh
$(eval $(call install-file-in, $(d)/nix-store.pc, $(prefix)/lib/pkgconfig, 0644)) $(eval $(call install-file-in, $(d)/nix-store.pc, $(prefix)/lib/pkgconfig, 0644))
$(eval $(call install-file-in, $(d)/sandbox-defaults.sb, $(datadir)/nix, 0644))

View file

@ -0,0 +1,63 @@
(allow file-read* file-write-data (literal "/dev/null"))
(allow ipc-posix*)
(allow mach-lookup (global-name "com.apple.SecurityServer"))
(allow file-read*
(literal "/dev/dtracehelper")
(literal "/dev/tty")
(literal "/dev/autofs_nowait")
(literal "/System/Library/CoreServices/SystemVersion.plist")
(literal "/private/var/run/systemkeychaincheck.done")
(literal "/private/etc/protocols")
(literal "/private/var/tmp")
(literal "/private/var/db")
(subpath "/private/var/db/mds"))
(allow file-read*
(subpath "/usr/share/icu")
(subpath "/usr/share/locale")
(subpath "/usr/share/zoneinfo"))
(allow file-write*
(literal "/dev/tty")
(literal "/dev/dtracehelper")
(literal "/mds"))
(allow file-ioctl (literal "/dev/dtracehelper"))
(allow file-read-metadata
(literal "/var")
(literal "/tmp")
; symlinks
(literal "@sysconfdir@")
(literal "@sysconfdir@/nix")
(literal "@sysconfdir@/nix/nix.conf")
(literal "/etc/resolv.conf")
(literal "/private/etc/resolv.conf"))
(allow file-read*
(literal "/private@sysconfdir@/nix/nix.conf")
(literal "/private/var/run/resolv.conf"))
; some builders use filehandles other than stdin/stdout
(allow file*
(subpath "/dev/fd")
(literal "/dev/ptmx")
(regex #"^/dev/[pt]ty.*$"))
; allow everything inside TMP
(allow file* process-exec
(subpath (param "_GLOBAL_TMP_DIR"))
(subpath "/private/tmp"))
(allow process-fork)
(allow sysctl-read)
(allow signal (target same-sandbox))
; allow getpwuid (for git and other packages)
(allow mach-lookup
(global-name "com.apple.system.notification_center")
(global-name "com.apple.system.opendirectoryd.libinfo"))
; allow local networking
(allow network* (local ip) (remote unix-socket))