How do I manage permissions in RHEL9(Linux ?
1. Basic Permission chmod
2. Advance Permission ACL (setfacl,getfacl) , chattr/lsattr
3. Special Permission (umask,Sticky bit,(SUID,SGID))
1.Basic Permission-
Chmod - Changes file/directory Command execution Permission
Chown and chgrp- Changes user/group ownership of specified file/dir
The change mode or chmod command sets permissions. The syntax is straight-forward:
chmod permissions resource-name
Here are two examples of manipulating permissions for file2:
chmod 740 file2
chmod u=rwx,g=r,o-rwx file2
But wait! Those appear to be different examples (they're not, actually). What are all those letters and numbers?
We need to discuss absolute/Octal/numeric mode and symbolic mode.
How do I use absolute/Numeric/Octal mode?
Each access level (read, write, execute) has an octal value:
Access level Absolute/Octal/Numeric value
Read 4
Write 2
Execute 1
Each identity (user, group, others) has a position:
Identity Position
User First or left-most
Group Middle
Others Last or right-most
The absolute mode syntax states the desired permissions from left to right.
How do I grant the user (owner) read, write, and execute, the group read-only, and all others no access to file2 by using absolute mode?
chmod 740 file2
The three permissions values are associated with identities:
u g o
7 4 0
The 7 is assigned to the user and is the sum of 4+2+1 or read+write+execute (full access)
The 4 is assigned to the group and is the sum of 4+0+0 (read-only)
The 0 is assigned to others and is the sum of 0+0+0 (no access)
In this example, the user has rwx, the group has r only, and all others have no access to file2.
Let's look at one more example.
How do I grant the user (owner) read and write, the group read-only, and all others read-only to file2?
chmod 644 file2
The user has 6 (read and write)
The group has 4 (read-only)
All others have 4 (read-only)
I find this easier because there are no calculations involved. I'm not concerned with adding or subtracting specific permissions based on the current settings. Instead, I say, "set the permissions to be this," and that's the end result I get. It's an absolute statement.
How do I set permissions for the Resources directory and all of its contents by using absolute mode?
chmod -R 744 Resources
How do I use symbolic mode?
Symbolic mode uses more symbols, but the symbols are simpler to understand. That's attractive to sysadmins that are new to standard Linux permissions.
Each access level has a symbol:
Access level Symbol
Read r
Write w
Execute x
Each identity has a symbol:
Identity Symbol
User u
Group g
Others o
There are also operators to manipulate the permissions:
Task Operator
Grant a level of access +
Remove a level of access -
Set a level of access =
The general chmod command syntax is the same:
command permissions directory/file
Here is an example:
How do I remove the read permissions from others for file2 by using symbolic mode?
chmod o-r file2
This example removes (-) the read (r) permission from others (o) for file2.
Here's another simple example:
How do I grant the read and write permissions to the group for file2?
chmod g+rw file2
This one gives (+) read and write (rw) to the group (g) for file2.
How do I set permissions for a directory and all of its contents by using symbolic mode?
chmod -R u=rwx,g+rw,o-rwx Resources
chmod -R 760 Resources