When I ls -la, it prints many attributes. Something like this:

-rwSrwSr-- 1 www-data www-data   45 2012-01-04 05:17 README

Shamefully, I have to confess I don't know the exact meaning of each attributes. For example, what's the meaning of big S in the string -rwSrwSr--? What's the following 1? I know others roughly.

  • 21
    Eonil: There's nothing shameful about needing to ask a question, after all that's what this site is about. And as for those who say RTFM, many of us DO THAT and still cannot find the simplest answer after wading through pages of hard-to-read programmer-written documentation (and I'm a programmer). In some cases, we're on systems where the man pages were not installed. For all those reasons, and many more, sites like this are a godsend. Thanks for asking the same question I had. – Alan Aug 10 '12 at 22:10
  • 1
    Great question - very specific along with a concrete example. – Ole Apr 16 '16 at 20:06

The documentation of the ls command answers these questions. On most unix variants, look up the ls man page (man ls or online). On Linux, look up the Info documentation (info ls) or online.

The letter s denotes that the setuid (or setgid, depending on the column) bit is set. When an executable is setuid, it runs as the user who owns the executable file instead of the user who invoked the program. The letter s replaces the letter x. It's possible for a file to be setuid but not executable; this is denoted by S, where the capital S alerts you that this setting is probably wrong because the setuid bit is (almost always) useless if the file is not executable.

When a directory has setuid (or setgid) permissions, any files created in that directory will be owned by the user (or group) matching the owner (or group) of the directory.

The number after the permissions is the hard link count. A hard link is a path to a file (a name, in other words). Most files have a single path, but you can make more with the ln command. (This is different from symbolic links: a symbolic link says “oh, actually, this file is elsewhere, go to <location>”.) Directories have N+2 hard links where N is the number of subdirectories, because they can be accessed from their parent, from themselves (through the . entry), and from each subdirectory (through the .. entry).

|improve this answer|||||
  • 5
    What does it mean on OS X when its applied to a directory? For example, $ ls /Users returns drws--S---+ 12 jdoe staff 408 Jul 9 2013 jdoe – user56041 Aug 26 '15 at 12:07
  • 4
    @jww It means that files created in that directory will belong to the group that owns the directory, but that's the default on OSX anyway. See en.wikipedia.org/wiki/Setuid#setuid_and_setgid_on_directories and unix.stackexchange.com/questions/12842/… – Gilles 'SO- stop being evil' Aug 26 '15 at 12:26
  • @Gilles, When you said that a file is not "executable" ? Does it mean it does not have the executable privilege or that it is not a file type which can be executed ? – ransh Aug 28 '17 at 9:13
  • @ransh I mean the execute (x) permission. – Gilles 'SO- stop being evil' Aug 28 '17 at 11:46
  • I've submitted an edit similar to the point made in @Jag's answer below – qneill Jun 28 '18 at 15:40

According to info coreutils ls (which might not be exactly what you have):

If the setuid or setgid bit and the corresponding executable bit are both set.

If the setuid or setgid bit is set but the corresponding executable bit is not set.

The number after the permission part is the number of hard links.

|improve this answer|||||
  • 2
    Basically this is what you get with chmod g-x,g+s dir – sanmai Mar 13 '14 at 1:42

In (hopefully simpler) terms, this means. The directory is setgid. Any files created in there will be owned by that group of the owner of that folder.

However, the folder is not executable by the group, so it's shown in capital S. This is typically when a directory is being created and the directory will end up as setgid.

Hm.. Not sure if that actually sounded like plain English above..

|improve this answer|||||
  • 1
    This answer doesn't give any more or different information than existing answers. – jayhendren Dec 6 '16 at 0:35
  • 1
    @jayhendren Yes it does. It talks about directories. No other answer does that. (Gilles should probably incorporate his comment into his answer.) – Sparhawk Aug 23 '17 at 7:19

It's because of Executable is missing

s --> 'x' is enabled S --> 'x' is disabled.

see below example

$ ls -l

total 0

-rwsrw-r--. 1 bpkmails bpkmails 0 Jun 25 20:18 ca

$ chmod u-x ca

$ ls -l

total 0

-rwSrw-r--. 1 bpkmails bpkmails 0 Jun 25 20:18 ca

|improve this answer|||||
  • Could you explain what this adds to the existing answers? – Stephen Kitt Jun 25 '19 at 21:13

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.