For several releases now, Linux has supported a O_PATH flag to the open() syscall. However, it is still not documented in the open manpages.
O_PATH is documented on the open(2) man page since version 3.53. http://git.kernel.org/cgit/docs/man-pages/man-pages.git/commit/man2/open.2?id=1135dbe188a48d7fa237396ab371ebf74037c1f6
Documented since 3.53.