Search code examples
bashfile-permissionsls

What does a period in the file permissions mean?


I found a permission character in the output of 'ls -l' which i don't understand:

[root@gnurr ~]# ls -l  /etc/cron.daily/
total 32
-rwxr-xr-x  1 root root  265 Sep 10 16:04 0logwatch
-rwxr-xr-x. 1 root root  118 Aug 17 12:21 cups

There is a period after the standard permission characters for the file 'cups', but it isn't there for the file '0logwatch'

I found many of these dots all over the place - they also appear for directories or soft links, but they seem never to show up for files i created myself.

I found some posts which mentioned a '@' or a '+' at this position meaning 'extended attributes' or 'extended security information', but nothing about '.'.

Does anybody know what the dot means?


Solution

  • From the info/man pages:

    GNU 'ls' uses a '.' character to indicate a file with an SELinux security context, but no other alternate access method.

    The whole section also mentions a '+', which is relevant:

    Following the file mode bits is a single character that specifies whether an alternate access method such as an access control list applies to the file. When the character following the file mode bits is a space, there is no alternate access method. When it is a printing character, then there is such a method.

    GNU 'ls' uses a '.' character to indicate a file with an SELinux security context, but no other alternate access method.

    A file with any other combination of alternate access methods is marked with a '+' character.