11

I have trouble understanding ls's manual regarding a file that has rw- mode. Here's the quote:

  1. If r, the file is readable; if , it is not readable.

  2. If w, the file is writable; if , it is not writable.

  3. The first of the following that applies:

    S     If in the owner permissions, the file is not executable and set-user-ID mode is set.  If in the group permissions, the file is not executable and set-group-ID mode is set.

    s     If in the owner permissions, the file is executable and set-user-ID mode is set.  If in the group permissions, the file is executable and setgroup-ID mode is set.

    x     The file is executable or the directory is searchable.

        The file is neither readable, writable, executable, nor set-user-ID nor set-group-ID mode, nor sticky.

In particular, it seem that two sections in bold contradict each other: according to the first one, since the mode begins with r, the file is readable, but according to the last one, the file is not readable. But, obviously, that is not the case.

So, what does that third section mean about file being "neither readable, writable..."?


Bibliography

  • apple.com seems to be the source of the text quoted above.  This is the man page (for OS X version 10.9, titled "BSD General Commands Manual"), and this is a discussion page that quotes it.
  • ss64.com also has a copy of the OS X ls man page.
  • tuhs.org has the 4.4 BSD man page.  Beware: it uses wwoorrdd for bold and _w_o_r_d for underline.
  • freebsd.org has the FreeBSD 10.1 man page, dated March 15, 2013.
  • unix.com has a copy of the bad page under the man-page/freebsd directory (for FreeBSD 11.0).  Note that they also have a copy of the correct page under man-page/posix.
  • The "A+ 4 Real StudyExam4Less Computer Series" contains the text quoted in the question, plus a couple of paragraphs about T and t, but not the entire man page.  It is talking about OS X.  You can see pages from two slightly different versions (editions?) of this book on books.google.com here and here.   certiguide.com seems to be quoting them.
  • stevens.edu is a PDF file containing the BSD (General Commands Manual) version of ls(1). It is dated September 24, 2011.

Better:

  • quora.com has the same text, but with the formatting (indentation) corrupted so badly that the meaning is ambiguous.

Better yet:

  • cyberciti.biz and hurricanelabs.com have the same text, but with the indentation corrected to the point that one could argue that it's essentially OK.  But they're both still really a mess.
  • Moved from here: stackoverflow.com/questions/31021900/… – Max Yankov Jun 24 '15 at 9:04
  • 1
    rwx -- read/write/execute – emirjonb Jun 24 '15 at 9:23
  • @emirjonb I'm not sure how this answers my question. – Max Yankov Jun 24 '15 at 9:24
  • 2
    @sawdust According to this manual excerpt, a rw- file is simultaneously readable (r), writable (w) and neither readable nor writable (-). – gronostaj Jun 24 '15 at 9:44
  • 1
    @CML I don't think that you read the question. – Max Yankov Jun 24 '15 at 17:05
16

This answer was previously posted on Stack Exchange, before I noticed the question was being moved.

Each numbered point in your quote applies in turn to each of the three characters.

If the first character is 'r', the file is readable

If the second character is 'w', the file is writable

If the third character is 'x/s/S', the file has the executable and/or set-userid/setgroupid property as appropriate

If the character is '-', then the file does not have that property.

The first three characters (after the directory identifier) apply to user permissions, the second three to group permissions, and the third to everyone else.

  • 1
    OK, this is a good answer to the question, “What does third symbol in rw- file mode mean?”  But the real question is, “How should this OS X ls(1) man page be understood?” and the answer is: “It can’t be; it’s garbled.”  The above post, which quotes and/or paraphrases a correct, coherent ls(1) man page, does not answer the question about the OS X man page. – Scott Jun 24 '15 at 17:37
  • It is still a great answer; while your answer is technically correct, this one is the most helpful to a random person that would google this man page in the future. – Max Yankov Jun 25 '15 at 7:11
  • Yes, but the question "What does the output from ls mean?" is much more thoroughly answered at What do the fields in ls -al output mean? on Unix & Linux Stack Exchange.  Also, of course, anybody who Googled such a question would find the millions of good, clear sources on the web, including the non-OS X, non-BSD versions of ls(1) – Scott Jun 26 '15 at 7:14
9

You're right — it doesn't make sense.  It looks like some sort of copy & paste error (although I see that it appears on multiple sites on the web.)

  • The (Free)BSD man page has that wording too. – user2543253 Jun 24 '15 at 12:53
  • 1
    this is not a copy & paste error: checkout the answer from rojomoke – CML Jun 24 '15 at 16:19
  • What’s your point?  rojomoke’s answer presents a coherent explanation of the classic nine-character representation of the mode bits — an explanation that is different from the incoherent one presented in the question.  I believe that it’s quite possible that some tech writer at Apple drastically reformatted something he didn’t really understand, and corrupted the meaning in the process. – Scott Jun 24 '15 at 17:36
  • The last line would make more sense were it not indented, because the - does represent an absence of a value, but indented the way it is suggests that it's part of the description of item #3, which describes the third symbol of each group. – phyrfox Jun 24 '15 at 19:21
  • Yes, that's exactly the point of @Max's question — although, if the last line were not indented, then paragraphs 1 and 2 would be redundant, because they also specify conditions under which - appears. – Scott Jun 24 '15 at 19:41
-3

When changing permissions on a file it is possible to indicate two permissions with a simple rw- or wx- meaning that BOTH r AND w are to be set to NO. In the second example BOTH w AND x are set to NO.

You could also indicate r+w- to set READ to YES and WRITE to NO. Or rx+ for setting Read AND Execute to YES.

  • 1
    I'm not sure that this is relevant to the question I asked. – Max Yankov Jun 24 '15 at 12:30
  • 1
    I'm not sure that this is relevant to this planet.     :-)    ⁠ – Scott Jun 24 '15 at 13:06
  • chmod arguments are not formatted the same way as ls -l outputs. – Peter Cordes Jun 25 '15 at 6:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.