How to disable Incognito mode in Chrome?
The short answer: you must edit the preferences file so that the key IncognitoModeAvailability has a value of 1.

Original Instructions

In /Library/Preferences/ add a plist entry to the file com.google.Chrome.plist such that the key is IncognitoModeAvailability and the value is 1.

Here is an example: assuming the file com.google.Chrome.plist doesn't exist, use a text editor to save the following code:

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;
&lt;plist version="1.0"&gt;
&lt;dict&gt;
   &lt;key&gt;IncognitoModeAvailability&lt;/key&gt;
   &lt;integer&gt;1&lt;/integer&gt;
&lt;/dict&gt;
&lt;/plist&gt;


The full file name and path of the above should be /Library/Preferences/com.google.Chrome.plist.

Updated Instructions

Since macOS Sierra, proper plist files seem to be in some binary format by default&mdash;a format that you can't edit with a normal text editor. I found that I can open them in Apple's Xcode and it has a nice GUI&mdash;very easy to edit. If you don't have access to Xcode, I think you can use the plutil terminal command like this:

plutil -convert xml1 YOUR_FILE_NAME_HERE


In xml format, you should be able to edit it in a text editor, and a web site I read says that the xml format should work fine.

Regardless, I recently was able to disable Incognito mode using Xcode on the ~/Library/Preferences/com.google.Chrome.plist file. (Furthermore, I had to delete /Library/Preferences/com.google.Chrome.plist because my old version was deemed "corrupted" because it wasn't in a proper file format.)