Issue #7288 has been updated by zzak (Zachary Scott).

Category set to DOC
Target version set to 2.0.0

I was looking through lib/fileutils.rb

It seems it's using the private method symbolic_modes_to_i which takes the mode passed from FileUtils.chmod and translates it into an octal number, or absolute mode, for use with File.chmod. This then takes us to FileUtils.mode_mask which does the heavy lifting, and seems to include a special case for "X", which it translates into "0111".

chmod(1):          The execute/search bits if the file is a directory or any
		   of the execute/search bits are set in the original (unmodi-
		   fied) mode.	Operations with the perm symbol ``X'' are only
		   meaningful in conjunction with the op symbol ``+'', and are
		   ignored in all other cases.

Call me crazy, but it seems you're right and we need to add this "X" mode to our documentation.

I will try to come up with a patch for this soon.
----------------------------------------
Feature #7288: Documentation missing: FileUtils.chmod "+X", "directory"
https://bugs.ruby-lang.org/issues/7288#change-32501

Author: joerg.herzinger (Jörg Herzinger)
Status: Open
Priority: Normal
Assignee: aamine (Minero Aoki)
Category: DOC
Target version: 2.0.0


Documentation for chmods "X" (uppercase) feature is missing. This sets the execute bit on directories but not on files. Tested on my Ubuntu machine it works although not documented.
Reproducable like this:

[irb]
require 'fileutils'
FileUtils.cd "/tmp";FileUtils.touch "testfile";FileUtils.mkdir "testdir"

FileUtils.chmod "-x", "testfile"; FileUtils.chmod "-x", "testdir"
File.executable? "testdir" => false
File.executable? "testfile" => false

FileUtils.chmod "+X", "testfile"; FileUtils.chmod "+X", "testdir"
File.executable? "testdir" => true
File.executable? "testfile" => false
[/irb]

From chmods man page:
... execute (or search for directories) (x), execute/search only  if  the file is a directory or already has execute permission for some user (X) ...


-- 
http://bugs.ruby-lang.org/