Skip to main content

Command Palette

Search for a command to run...

How to Change Directory Permissions in Linux

Updated
5 min read

Changing directory permissions in Linux is a key skill for managing your files and system security. Whether you want to allow others to access a folder or restrict access to yourself, understanding how permissions work is essential. In this article, I’ll guide you through the basics and show you how to change directory permissions easily.

You don’t need to be a Linux expert to follow along. I’ll explain everything in simple terms and provide clear examples. By the end, you’ll feel confident managing directory permissions on your Linux system.

Understanding Linux Directory Permissions

Linux uses a permission system to control who can read, write, or execute files and directories. These permissions help protect your data and keep your system secure.

Each directory has three types of permissions:

  • Read (r): Allows you to list the contents of the directory.
  • Write (w): Allows you to create, delete, or rename files inside the directory.
  • Execute (x): Allows you to enter the directory and access its files.

Permissions are assigned to three groups of users:

  • Owner: The user who owns the directory.
  • Group: Other users who belong to the directory’s group.
  • Others: Everyone else on the system.

For example, a directory with permissions rwxr-xr-- means:

  • Owner can read, write, and execute.
  • Group can read and execute.
  • Others can only read.

How to Check Directory Permissions

Before changing permissions, you need to see the current settings. The ls -ld command shows permissions for a directory.

ls -ld /path/to/directory

This will output something like:

drwxr-xr--
  • The first character d means it’s a directory.
  • The next nine characters show permissions for owner, group, and others.

You can also see the owner and group of the directory in the output.

Changing Directory Permissions with chmod

The main tool to change permissions is the chmod command. It lets you set permissions using either symbolic or numeric modes.

Using Symbolic Mode

Symbolic mode uses letters to add, remove, or set permissions:

  • u = owner (user)
  • g = group
  • o = others
  • a = all (owner, group, others)

Operators:

  • + adds a permission
  • - removes a permission
  • = sets exact permissions

For example, to add execute permission for others:

chmod o+x /path/to/directory

To remove write permission from the group:

chmod g-w /path/to/directory

To set read and execute permissions for everyone:

chmod a=rx /path/to/directory

Using Numeric Mode

Numeric mode uses numbers to represent permissions:

  • Read = 4
  • Write = 2
  • Execute = 1

Add these numbers for each user category:

  • Owner permissions
  • Group permissions
  • Others permissions

For example, chmod 755 means:

  • Owner: 7 (4+2+1) = read, write, execute
  • Group: 5 (4+0+1) = read, execute
  • Others: 5 (4+0+1) = read, execute

Command:

chmod 755 /path/to/directory

This is a common permission setting for directories.

Changing Ownership with chown and chgrp

Sometimes you need to change who owns the directory or its group. Use chown to change the owner and chgrp to change the group.

To change the owner:

sudo chown username /path/to/directory

To change the group:

sudo chgrp groupname /path/to/directory

You can also change both at once:

sudo chown username:groupname /path/to/directory

Changing ownership is important when managing shared directories or fixing permission issues.

Applying Permissions Recursively

If you want to change permissions for a directory and all its contents, use the -R option with chmod, chown, or chgrp.

Example:

chmod -R 755 /path/to/directory

This changes permissions for the directory and all files and subdirectories inside it.

Be careful with recursive changes, as they can affect many files.

Common Permission Settings for Directories

Here are some typical permission settings you might use:

PermissionNumericDescription
700rwx------Owner can read, write, execute; no access for others
755rwxr-xr-xOwner full access; others can read and execute
750rwxr-x---Owner full access; group can read and execute; others no access
777rwxrwxrwxEveryone has full access (use with caution)

Use stricter permissions for sensitive directories and more open permissions for shared folders.

Troubleshooting Permission Issues

If you can’t access a directory or perform actions, check these common issues:

  • Missing execute permission: Without execute permission on a directory, you can’t enter it.
  • Wrong ownership: You might not have permission if you’re not the owner or in the group.
  • Sticky bit: Sometimes directories have a sticky bit (t), which restricts file deletion to owners only.

To check sticky bit:

ls -ld /path/to/directory

Look for a t at the end of permissions, like drwxrwxrwt.

Using ACLs for Advanced Permissions

Access Control Lists (ACLs) provide more detailed permission control beyond basic owner/group/others.

To view ACLs:

getfacl /path/to/directory

To set ACLs, use setfacl. For example, to give user john read and execute permissions:

setfacl -m u:john:rx /path/to/directory

ACLs are useful when multiple users need different access levels.

Summary

Changing directory permissions in Linux is straightforward once you understand the basics. Use ls -ld to check permissions, chmod to change them, and chown or chgrp to adjust ownership. Remember to use recursive options carefully and consider ACLs for complex setups.

With these tools, you can control who accesses your directories and keep your Linux system secure.

Conclusion

Now you know how to change directory permissions in Linux confidently. Whether you’re managing your personal files or administering a server, these commands help you control access easily. Always check permissions before making changes to avoid locking yourself out.

Practice these commands on test directories to get comfortable. Over time, managing Linux permissions will become second nature, helping you keep your system organized and safe.

FAQs

How do I check the current permissions of a directory?

Use ls -ld /path/to/directory to see the permissions, owner, and group of the directory.

What does the execute permission on a directory do?

It allows you to enter the directory and access its contents.

Can I change permissions for all files inside a directory at once?

Yes, use the -R option with chmod to apply changes recursively.

What is the difference between chmod symbolic and numeric modes?

Symbolic mode uses letters and operators to modify permissions, while numeric mode uses numbers to set exact permissions.

How do I give another user access to my directory?

You can change the group ownership with chgrp or use ACLs with setfacl to grant specific permissions.

More from this blog

L

LinuxBloke | Linux Tips, Tricks & Troubleshooting

672 posts

How to Change Directory Permissions in Linux