Run the agent in user context
During the installation of the Snow Inventory Agent for macOS, LaunchDaemons for scheduled scan, application metering and cloud application metering are installed. As LaunchDaemons, they are run by the system (root). To be able to run them in user context and not as root, they have to be changed to LaunchAgents. As LaunchAgents, they are run by the logged in user account.
To change from running as root to running as the logged in user:
Make the primary user owner of the directory /opt/snow and all files in that directory:
sudo chown -R username:wheel /opt/snow
Deactivate the Inventory, Cloud metering and Metering LaunchDaemons:
cd /Library/LaunchDaemons sudo launchctl unload com.snowsoftware.Inventory.plist sudo launchctl unload com.snowsoftware.Cloudmetering.plist sudo launchctl unload com.snowsoftware.Metering.plist
Make sure the plist files have 644 permissions:
-rw-r--r-- 1 root wheel 554 Aug 28 16:26 com.snowsoftware.Metering.plist
Move the plist files from /Library/LaunchDaemons/ to /Library/LaunchAgents/:
sudo mv com.snowsoftware.Inventory.plist /Library/LaunchAgents/com.snowsoftware.Inventory.plist sudo mv com.snowsoftware.Metering.plist /Library/LaunchAgents/com.snowsoftware.Metering.plist sudo mv com.snowsoftware.Cloudmetering.plist /Library/LaunchAgents/com.snowsoftware.Cloudmetering.plist
Change directory to LaunchAgents and load the plist files as the logged in user:
cd /Library/LaunchAgents launchctl load com.snowsoftware.Inventory.plist launchctl load com.snowsoftware.Cloudmetering.plist launchctl load com.snowsoftware.Metering.plist
Check if the LaunchAgents were loaded properly. It should look like below:
$ launchctl list | grep com.snowsoftware xxx 0 com.snowsoftware.Metering 0 com.snowsoftware.Cloudmetering 0 com.snowsoftware.Inventory
Known limitations
Environment variables for root will not be collected.
Information about a potential domain/directory service will not be collected.
Installation of Chrome extension will not work. See workaround below.
Chrome extension workaround
Disable the Chrome extension installation in the snowagent.config file:
<Setting key="saas.chrome.enabled" value="false" />
Distribute the extension via Google Chrome Adminstration console.