What Does the Dot After Linux File Permissions Mean?

Deepak Prasad
Tested on RHEL 10.2 (Coughlan)
Package coreutils 9.5
policycoreutils 3.10
libselinux-utils 3.10
acl 2.4.0
attr 2.5.2
Applies to RHEL, Rocky Linux, AlmaLinux, Fedora, and other Linux distributions with GNU ls and SELinux
Privilege Normal user for ls -l, ls -Z, and getfacl; sudo for restorecon and chcon
Scope Trailing dot and plus markers in ls -l output, SELinux context inspection, and when restorecon is appropriate. Does not cover full chmod tutorials or detailed ACL administration.
Related guides Linux ACL examples
chmod 777 command
Linux file permissions
find command

You ran ls -l and saw a dot after the mode bits — something like -rw-r--r--. instead of -rw-r--r--. That trailing character is not another read, write, or execute permission. GNU ls uses it to report alternate access information, most often a SELinux security context on RHEL-family systems.


Quick answer: what does the dot mean?

text
-rw-r--r--.
          ^
          dot

GNU ls prints . when the file has a security context but no other alternate access method. The current GNU Coreutils ls documentation defines the markers this way:

  • . — security context only
  • + — some other combination of alternate access methods
  • ?ls could not determine the alternate access information

The nine rwx characters are the normal Unix mode. The dot sits outside that mode string as a separate security-context indicator; on RHEL-family SELinux systems, it reflects the SELinux file context.


Check the SELinux context with ls -Z

To see the label behind the dot, use ls -Z or ls -lZ:

bash
ls -lZ /etc/passwd

Sample output:

output
-rw-r--r--. 1 root root system_u:object_r:passwd_file_t:s0 /etc/passwd

-rw-r--r-- is the Unix permission mode. system_u:object_r:passwd_file_t:s0 is the SELinux context stored separately from chmod bits. The trailing . only tells you that context exists and that ls did not also report another alternate access method such as an ACL.

On a file you own in your home directory, the context differs but the dot behaves the same way:

bash
ls -Z ~/dot-perm-lab/dotfile

Sample output:

output
unconfined_u:object_r:admin_home_t:s0 /root/dot-perm-lab/dotfile

Dot (.) vs plus (+) in Linux permissions

Marker Meaning
(none) No alternate access method reported
. Security context only
+ Other or additional alternate access method(s); a POSIX ACL is a common example
? ls could not determine the information

Inspect an ACL when you see +. getfacl comes from the acl package:

bash
getfacl aclfile

Sample output:

output
# file: aclfile
# owner: root
# group: root
user::rw-
user:root:rwx
group::r--
mask::rwx
other::r--

That file showed -rw-rwxr--+ in ls -l because ls detected an alternate access method beyond the security context. The mask::rwx entry is why the group permission field can display rwx even when group::r-- is more restrictive. For ACL syntax and setfacl workflows, see Linux ACL examples.

Inspect SELinux when you see .:

bash
ls -Z aclfile

Sample output:

output
unconfined_u:object_r:admin_home_t:s0 aclfile

Why chmod does not remove the dot

chmod changes only the traditional mode bits. It does not remove the SELinux security context.

bash
chmod 644 ~/dot-perm-lab/dotfile

List the file again — the mode bits change, but the trailing dot stays:

bash
ls -l ~/dot-perm-lab/dotfile

Sample output:

output
-rw-r--r--. 1 root root 9 Aug 16 15:58 /root/dot-perm-lab/dotfile

chmod 777, chmod 755, and chmod 644 are not ways to remove the trailing dot. If the dot surprises you after a permission change, inspect the context with ls -Z instead of chasing the marker with chmod.


Should you remove the dot?

Normally, no. On SELinux-enabled systems, -rw-r--r--. is expected.

The dot does not mean:

  • broken permissions
  • an ls error
  • overly restrictive Unix modes
  • an ACL problem by itself

It only means ls found a security context and no other alternate access method to report. Do not disable SELinux merely because ls -l shows a dot.


Fix an incorrect SELinux context with restorecon

When the label is wrong for the path, restore the expected context instead of stripping it.

Check the current label:

bash
ls -Z ~/dot-perm-lab/dotfile

See what policy expects for that path:

bash
matchpathcon ~/dot-perm-lab/dotfile

Sample output:

output
/root/dot-perm-lab/dotfile	system_u:object_r:admin_home_t:s0

Restore the expected label on one file. In the lab run below, the file had the wrong etc_t type before restorecon corrected it:

bash
restorecon -v ~/dot-perm-lab/dotfile

Sample output:

output
Relabeled /root/dot-perm-lab/dotfile from unconfined_u:object_r:etc_t:s0 to unconfined_u:object_r:admin_home_t:s0

Notice that restorecon corrected etc_t to admin_home_t but retained unconfined_u. By default, restorecon primarily corrects the SELinux type on an already-labeled file. matchpathcon can show a different user component (system_u here) because it reports the policy default for the path, not every component of the label already stored on the file. Use restorecon -U or -F only when you intentionally need to replace additional context components.

For a directory tree, use recursive mode:

bash
restorecon -Rv ~/dot-perm-lab

If labels under /var/log drift after a policy change, restorecon -Rv /var/log is the maintenance path — not bulk deletion of security.selinux attributes.


Can you remove the security.selinux attribute?

setfattr -x security.selinux FILE requests removal of the stored SELinux xattr, but an active SELinux policy can reject direct changes to security.* attributes. This is not the normal way to fix the dot; use restorecon when the label is incorrect.

That is not a routine maintenance step. If SELinux is enabled or later re-enabled, restore the expected context with restorecon rather than stripping labels so ls -l looks cleaner.


References


Summary

The dot after Linux permissions in ls -l output is a GNU ls marker, not an extra r, w, or x bit. It usually means the file has a SELinux security context and nothing else ls classifies as an alternate access method. A plus sign points you toward ACL inspection with getfacl; a question mark means ls could not read that metadata.

Use ls -Z when you need the actual context. chmod changes Unix modes only, so it will not remove the dot. On SELinux systems the dot is normal — fix wrong labels with matchpathcon and restorecon rather than disabling SELinux or stripping security.selinux across system directories.


Frequently Asked Questions

1. What does the dot after Linux permissions mean?

GNU ls prints a dot when the file has a security context but no other alternate access method. On SELinux systems the dot is a separate indicator from the rwx mode bits — it is not another permission character.

2. Why does chmod not remove the dot after permissions?

chmod changes the traditional Unix mode bits only. It does not remove the SELinux security context stored separately, so ls -l can still show -rw-r--r--. after chmod 644 or chmod 755.

3. What is the difference between dot and plus in ls -l permissions?

A dot means security context only. A plus means ls detected another alternate access method, commonly a POSIX ACL. A question mark means ls could not determine the alternate access information.

4. Should I remove the dot from Linux permissions?

Usually no. The dot is normal on SELinux-enabled systems and does not mean permissions are broken. Fix an incorrect label with restorecon instead of stripping security.selinux.
Omer Cakmak

Linux Administrator

Highly skilled at managing Debian, Ubuntu, CentOS, Oracle Linux, and Red Hat servers. Proficient in bash scripting, Ansible, and AWX central server management, he handles server operations on OpenStack, KVM, Proxmox, and VMware.

  • Debian
  • Ubuntu
  • Linux
  • Red Hat Enterprise Linux
  • Shell Script
  • System Administration