#
# Security Domain Policy rules for GuestStore daemon
#
#   - Needs read access to all datastore as there is no dynamic policy support
#   - Needs read+write access to /var/cache/vmware/gstore
#   - Needs read+write access to unix domain socket: /var/run/gstored.sock
#

-s cloneSys grant
-s genericSys grant
-s ioctlSys grant
-s killSys grant
-s mprotectSys grant
-s openSys grant
-s syncSys grant
-s vsiReadSys grant


-c inet_stream_socket_create grant
-c unix_socket_create grant
-c unix_dgram_socket_bind grant
-c unix_dgram_socket_connect grant
-c unix_stream_socket_bind grant
-c unix_stream_socket_connect grant
-c unix_vmklink_socket_connect grant

-p unix_stream_socket_connect vmwLocalSocketAuthentication revoke
-p unix_stream_socket_bind vmwLocalSocketAuthentication revoke

-p unix_dgram_socket_connect /dev/vmwSyslog grant
-p unix_stream_socket_bind /var/run/gstored.sock grant


# Files & file systems
# deny all
-r /

# Open up
-r /dev/char/vmkdriver/urandom r
-r /etc/localtime r
-r /etc/nsswitch.conf r
-r /etc/passwd r
-r /etc/vmware/config r
-r /etc/vmware/configstore/ rw
-r /etc/vmware/gstored/config.xml r
-r /etc/vmware/settings r
-r /etc/vmware/schemastore/ rw
-r /etc/vmware/ssl/castore.pem r
-r /etc/vmware/ssl/fipsmodule.cnf r
-r /etc/vmware/ssl/openssl.cnf r
-r /etc/vmware/vsphereFeatures/techPreview.cfg r
-r /etc/vmware/vsphereFeatures/vsphereFeatures.cfg r
-r /lib64 rx
-r /usr/lib/vmware/gstored rx
-r /usr/lib64 rx
# Recursive path creation for gstore cache needs w perm. for each path elements
-r /var w
-r /var/cache w
-r /var/cache/vmware w
-r /var/cache/vmware/gstore rw
-r /var/run/vmware/gstoredLogHeader.txt w
-r /var/run/vmware/gstored.PID w
# gstored needs read access to the GuestStore repository (configurable)
# and write access to its cache
-r /vmfs/volumes/ rw
