0 ratings0% found this document useful (0 votes) 96 views25 pagesLinux File Permissions Complete Guide
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here.
Available Formats
Download as PDF or read online on Scribd
2is0r2024 Linux Fle Permissions Complate Guide - deveonnected
Home > Linux System Administration > Basics > Linux File Permissions Complete Guide
Basics © Linux System Administration
Linux File Permissions Complete Guide
written by Schkn
Complete
Ifyou are new to Linux administration, you may be wondering how Linux file permissions work on Linux sys
Maybe you have been denied the read access to a file and you are trying to discover why and how to sol> *
hitpsiidevconnected.comiinux-le-permissions-complete-cuidel 11252yioz021
READ ALSO
2.3. ¢= Understanding Linux File Permissions
2.3.1. File Permissions
2.32, Directory Permissions
3. Ill - Understanding the Binary Numeral System
3.1. a Converting values from binary to decimal
3.2. b ~ Linux Permissions using the binary and decimal systems
4, Ill - What is the Linux permission mask?
5, IV How to manage permissions on a Linux system?
5.1.a- Using chmod
5.1.1, Modifying permissions using the decimal form
5.1.2. Modifying permissions using the symbolic form
5,2. b - Using chown
5.3. ¢- Using cherp
6. V- What are the suid, guid and sticky bit?
6.1. a Understanding the suid
6.2. b Why is the suid so important?
6.3, ¢- Setting the suid using chmod
6.4, d - Understanding the guid
6.5. €- Understanding the sticky bit
7.VI- Conclusion
I - What You Will Learn
Linux Fle Permissions Compl
Guide deveonnected
y to another, only to discover that you don't have the perrr
imissions work on Linux.
‘ad to train on the subject.
Here are all the concepts that you will learn if you complete the tutorial until the end:
Understand the binary numeral system used
What is the mask on Linux systems and what i
How to manage access permissions on files a
What are the suid, the sgid and the sticky bit;
II - Linux Permissions Basics
hitpstldevoonnected.cominu-fle-permissions-complete-guide!
How to read file, directory and link permissions in the command line using the Is command;
by the mask for newly created files
itis used for;
ind directories;
2252yioz021 Linux Fle Permissions Complete Guide — deveonnected
epts that you need to understand before jumping into mot
two categories:
e file, meaning that they either created it or they were assi
sions represent the set of actions that you are able to pert
0u are logged in) and the group that you belong to.
: User & Groups
Cee tac it
Coie tat) ECU nes ae Tle
But, where would you be able to see this information?
The most common way to check Linux permissions is by using the ‘Is’ command, with a‘
option.
$ 1s -al
devconnected@debian-10:~$ 1s -al
total 88
drwxr-xr-x 16 devconnected devconnected 4096 Aug 4
drwxr-xr-x 3 root root 4096 Jul 30
devconnected devconnected 786 Jul 30 -bash_history
devconnected devconnected 220 Jul 29 bash Logout
devconnected devconnected 3526 Jul 29 -bashre
devconnected devconnected 4696 Jul 30 cache
devconnected devconnected 4096 Jul 30 17: config
drwxr-xr-x 2 devconnected devconnected 4096 Jul 3@ 17:16 Desktop
hitpsiidevconnected.comiinux-le-permissions-complete-cuidel
Those are the permissions for my user (devconnected) on my home directory.
3125202021 Linux Fle Permissions Complete Guide — deveonnected
?
Here is how to understand the output of the Is command.
What are Is output columns?
drwxr-xr-x 16 devconnected sysadmins 4096 Aug 4 12:31 Des
Permissions Yo the fi or User owning the fle Group owning the Last modification 4
‘rectory file ate
File Type (directory il, ink.) Number of links File size File
For this tutorial, we are going to focus only on the first, third and fourth columns as the others are not very re
permissions anyway.
a - Understanding Linux File Types
You probably heard it before, but on Linux, everything is a file.
As a consequence, links are files, but directories are also files.
hitpsiidevconnected.comiinux-fe-permissions-complete-guidel 4252yioz021 Linux Fle Permissions Complate Guide - devconrected
When you are reading the first column of the Is output, you should pay attention to the first bit.
Linux files can have multiple types, but they are most of the time either a file (., a directory (d) or a link (I)
File Types in Linux
Type: File
Symbol : -
Type: Directory
Symbol :d
Type: Link
‘Symbol :|
hitpstldevoonnected.cominu-fle-permissions-complete-guide! 5252yioz021
READ ALSO
columns.
deyconnected
root
devconnected
devconnected
deyconnected
devconnected
devconnected
devconnected
Linux Fle Permissions Complete Guide - devconrected
al
connected
t
connected
connected
connected
connected
connected
connected
4096
4096
786
220
3526
4096
4090
4096
Aug
Jut
Jul
Jul
Jul
Jul
Jul
Jul
4 12:34
3@ 17:31
30 17:36
29:17:51
29:17:51
3@ 14:52
30 17:44
30 17:16
-bash_history
:bash_Logout
-bashre
-cache
contig
Desktop
istory, another one named .bashre and three directories |
ship
dand, you will see that “deveonnected” appears on two sep
devconnected 4096
root 4096
devconnected 786
devconnected 220
devconnected 3526
devconnected 4096
devconnected 4096
devconnected 4096
‘Aug
Jul
jul
sul
jul
Jul
jul
Jul
4
30
30
29
29
30
30
30
12:34 .
17:31 ..
-bash_history
-bash_logout
-bashre
252 .cache
17:44 .config
17:16 Desktop
The third column is called the “user” column and it is dedicated to show who is actually owning the file.
In this case, as 1 am in my home directory, | am the actual owner of this file.
Quick tip : users are visible in the /etc/passwd file.
The fourth column is called the “group”.
In Linux, users belong to groups, for example the administrators group, the sudo group or the normal user gr
hitpstldevoonnected.cominu-fle-permissions-complete-guide!
2252yioz021 Linux Fle Permissions Complete Guide — deveonnected
In this case, my “devconnected” user belongs to a group called “devconnected”
‘As you can see on the second line, the “.." folder (which is in this case the /home directory) is owned by the “roc
that belongs to a group named “root.
Quick tip : groups are visible in the /etc/group file.
ce — Understanding Linux File Permissions
File Permissions
Now that you have a better understanding of the different file types, itis time to focus on the rest of the first cx
the permissions.
Permissions are divided into three categories : user permissions, group permissions and the “other” permi
hitpsiidevconnected.comiinux-le-permissions-complete-cuidel 7252yioz021 Linux Fle Permissions Complate Guide - devconrected
READ ALSO or a dash.
Iccess and x for the permission to “execute it.
sion.
sls output.
connected 786 Jul 30 17:
6 .bash_history
Then for the user, you have the following permissions set :“r w-" which means that the “devconnected!” user ci
and write in the file but not execute it.
For the group, you have the following permissions set : "= --” which means that the “devconnected” group canr
write nor execute the file.
Finally, for the “others”, you have the same rights as the devconnected group which means that they cannot de
anything at all
Your turn : what are the permissions for this file?
-tw-r--r-- 1 devconnected devconnected 3526 Jul 29 17:51 -bashre
Answer
Here is a table of what read, write and execute permissions mean for files.
hitpstldevoonnected.cominu-fle-permissions-complete-guide! 8252yioz021 Linux Fle Permissions Complate Guide - devconrected
READ ALSO
r(or read) The user, group or others can read the file, with a command such as cat, or vi (in read-only
w(orwrite) The user, group or others can modify and save the file with commands such as nano or vi
x (or execut
The user, group or others can execute the file. This is most of the time used for scripts.
e)
Directory Permissions
drwxr-xr-x 2 devconnected devconnected 4096 Jul 29 17:57 Documents
drwxr-xr-x 3 devconnected devconnected 4096 Aug 4 09:26 Downloads
However, as you probably saw it, the same read, write and execute apply for directories.
What does it mean for a directory to be executable?
Similarly, what does it mean to be able to write to a directory?
Here is a table of what read, write and execute permissions mean for directories
Permission Description
(or read) The user, group or others can list the content of the directory (using a Is command for exa
wiorwrite) The user, group or others can add or delete files from the directory
x/or execute) The user, group or others can go through the directory for navigation.
hitpstldevoonnected.cominu-fle-permissions-complete-guide! 9252yioz021 Linux Fle Permissions Compl
‘nary Numeral System
Guide deveonnected
inary to decimal
mask and what it is used for on Linux distributions, you ne
{irectly to the next section)
numbers: zero and one.
ot very handy.
system, meaning with numbers from zero to nine,
Je binary numeral system and the decimal system.
To convert a binary number to a decimal one : from right to left, each digit represents a power of 2
Each power of 2 is summed to its preceding one to form the final decimal form.
Here's a detailed schema of it
hitpstldevoonnected.cominu-fle-permissions-complete-guide! 10252yioz021 Linux Fle Permissions Complete Guide — deveonnected
scimal Conversion
0
20
+ + O+
a
45
Ifyou need some practice, you can find some exercises on this at the end.
x2 4x2 A
4
x2 x2
oa es ee
If you don't want to do the conversion by yourself, there are plenty of tools that can convert binary numbers te
decimal numbers. This is often quicker in order to find what the decimal representation of a binary number mi
example of a tool would be this one : https://www.duplichecker.corn/binary-to-decimal.php.
Now that you have some basics about the binary numeral system, let's see how it can be applied to Linux pertr
b — Linux Permissions using the binary and decimal systems
When dealing with permissions, besides using the “wx” notation, we also use the decimal notation in order to
permissions assigned to a file or a directory.
Instead of having to describe a directory permission as “rw x r wx r wx", we give it a number which would be i
case 777.
Similarly, for a“r-~rw x rw x", we would assign it the 477 number.
hitpsiidevconnected.comiinux-le-permissions-complete-cuidel m82yioz021 Linux Fle Permissions Complete Guide — deveonnected
1m we just learned about.
Onverting the existing permissions to its decimal form assi
jon't have the permission.
Finally, this triplet is converted to decimal using the technique that we saw before.
Here's a schema that details it.
Permissions using the binary format
Complete permissions with binary
r-xX-Wwxr- =
84
With chmoa
Now that you understand the decimal symbolic used for permissions, le’s have a look at the Linux perrr*~
hitpsiidevconnected.comiinux-fe-permissions-complete-guidel 1275202021 Linux Fle Permissions Complete Guide — deveonnected
trmission mask?
Je permissions for newly created files.
‘on your Linux system.
bd@debian-11
i$ umask
mask : “022" (we are going to discuss the first zero in the 1
mwill apply the mask, consisting of applying consecutive t
The only thing you have to remember is that files are created with a 666 permission, or a“r w-rw-rw-" pert
Similarly, directories are created with a 777 permission, or a" rw xr w x rw x" permission
But those permissions are BEFORE applying the mask.
Here's the resulting set of permissions when you apply the mask to them.
Understanding the Linux mask
Mask = 022
666 777
- 022 - 022
644 755
rW-r--r-- rWXrWw-rw-
To prove it, let's create a file on your system,
$ touch test
$ Is -1 test
hitpsiidevconnected.comiinux-fe-permissions-complete-guidel 1325202021 Linux Fle Permissions Complete Guide — deveonnected
ad devconnected © Aug 5 18:
6 test
ile are" r w-r- ~~" which is the result we found with tt
onnected 4096 Aug 5 18:14 test-directory
k and how permissions are set for files and directories, let’
stem.
IV — How to manage permissions on a Linux system?
Permissions on a Linux system can be managed by using three commands: chmod, chown and chgrp.
Those commands respectively change the permissions of a file, change the owner of a file or change the group
Warning : you need to have elevated privileges (sudo) to perform those commands. Even if y«
‘own a directory, you won't be able to change the owner or the group with your user account.
a — Using chmod
Using chmod is pretty straightforward.
The chmod command modifies the permissions of a file using either the decimal form or the symbolic forn
Modifying permissions using the decimal form
In order to modify permissions using the decimal form, you have to follow this syntax.
chmod 421 devconnecte
e—oms
Command Binary Folder or directory
form
Here are some examples of the resulting file permissions given different chmod operations.
Command Resulting permissions
hitpsiidevconnected.comilinux-fe-permissions-complete-guidel 1425202021 Linux Fle Permissions Complete Guide — deveonnected
nmended!)
dermissions)
read, group can write, others can execute)
sions at all)
symbolic form
ated with a permission, you can use the symbolic notation
Here’s the syntax for the symbolic form
Symbolic form
chmod ugo + rwx devconnec:
_—™~ —~o
Command User - read, Folder or directory
group write
and and
others execute
Again, here is a table of some file permissions given different chmod operations.
Command Consequence on permissions
chmod utrwe file Adding the read, write and execute to the user (or owner of the file)
chmod gotr file ‘Adding the read permission to the group and the others category.
chmod o+Fx file Adding the read and execute permissions to the others category
chmod wr file Removing the read permission for the owner of the file.
b - Using chown
Chown is a command that sets the owner of a file or directory.
hitpsiidevconnected.comiinux-fe-permissions-complete-guidel 1525202021
chown bob filet directory1
chown bob:users file1
chown :users filet
Linux Fle Permissions Complete Guide — deveonnected
e owner of a file can't modify its ownership.
Imin devconnect
‘ional Folder or directory
toup
imples using the chown command.
armissions
‘nssigiinig web as the owner of the secretfile
Assigning bob as the owner of the file1 and of the directory1
Assigning bob as the owner and users as the group for the file?
Assigning users as the group for the file?
Great! Now you have sore understanding on the chown command.
Finally, let's dive into the chgrp command
c -— Using chgrp
Chgrp is a command that sets the group property for a file or a directory.
Similarly, it requires sudo privileges to be run.
Here's the syntax for the chgrp command.
chgrp
~-_ec——
Command
users devconnect
wa
group Folder or directory
Here are some examples using the chgrp command,
Command
Resulting permissions
hitpsiidevconnected.comiinux-fe-permissions-complete-guidel 16252yioz021 Linux Fle Permissions Complate Guide - devconrected
READ ALSO ye group for the filet
roup recursively to directory1 and children.
group to the file and giving all the changes done in the te
.d and sticky bit?
5 of Linux permissions, but they can be very useful in diffe
Suid stands for Set-User Identification and it is used by many commands on your system.
To see a quick example of where it is used, run the following command on your system
$ 1s -1 /usr/bin/su
devconnected@debian-10:~$ Us -1 /usr/bin/su
-rwsr-xr-x 1 root root 63568 Jan 10 2019 QIEiwaeeeWan"
As you probably already noticed, the user permissions are a bit different from the usual “r w x" triplet.
Instead of having an execute permission, or a dash, the execute permission is replaced by the letter s.
This means that the suid is set for this file
But what is it even used for?
The suid is used to execute a command as the owner of the file (in this case root) instead of the user th
the command in the first place (devconnected in this case).
Fine, but why would we want to do that?
- Why is the suid so important?
To illustrate why the suid is so important, lets take the example of the passwd command
Ona Linux system, the passwd command sets the password for a user. Itis often used when creating a new us
first connection password.
|devconnected@debian-10:~$ 1s -1 /usr/bin/passwd
|-rwsr-xr-x 1 root root 63736 Jul 27 2018 (IEIWASWaEEEtE)
hitpsiidevconnected.comiinus-e-permissions-complete-guidel 1782yioz021 Linux Fle Permissions Complate Guide - devconrected
ile is modified on your system.
stricted file that contains information about all the users o1
$ ls -l /etc/shadow
low 1326 Aug 7 13:53 /etc/shadow
if run a simple passwd command (as a non-sudo user), t
lis case, as devconnected).
Not at all. That's why the suid was invented.
If run the passwd command, the command will be executed as the owner of the passwd file, which is in this c
“root”.
As a consequence, the changes will be effective in the shadow file as root has the rights to write to this file.
c — Setting the suid using chmod
When using the decimal notation, you can append a “4” to the beginning of the usual form in order to set the s
the file or directory.
Using the symbolic form, the suid is symbolized by the letter s, meaning that you would run:
$ chmod uts File (to set the suid for the user)
$ chmod u-s file (to remove the suid for the user)
Fine, but what is the file is not executable?
You can still set the suid for a file even if the file is not executable. As a consequence, the suid will be displayed
capital S instead of a lowercase s.
devconnected@debian-10:~$ ls -al test
-r-Sr - 1 devconnected devconnected © Aug 5 18:06 [eRe
Here are some examples.
Command Resulting permissions
chmod 4777 fil Gives read, write, execute permissions to everybody - and the filet will be executec A 1
hitpstidevoonnected.cominu-fle-permissions-complete-guide! 18252yioz021 Linux Fle Permissions Complate Guide - devconrected
READ ALSO
ybody, the suid will be set, but the file is not executable.
2 will be executed as the owner of the file.
rissions to everybody - and the suid is not set.
is used to execute a file as a member of the group owning the file.
Using the same logic, the gui
Using the decimal form, you would append a "2" to the beginning of the usual form.
Using the symbolic form, you would simply use the letter s, like the suid, for the group.
Similarly, if the directory has its guid set but no permissions to execute the file, it will be represented with a cay
the permission line.
|devconnected@debian-10:~$ 1s -al test
-r--r-Sr-- 1 devconnected devconnected © Aug 5 18:06 ESE
Here are some examples
Command _Resulting permissions
chmod 2777 _ Gives read, write, and execute permissions to every user - and the file1 will be executed as
filet ber of the group of the file.
chmod 0777
fl Read, write, and execute permissions to every user - but the guid is not set,
let
chmod gts fi
| Set the guid active for the file1, the file will be executed a member of the group owning the
lel
chmod 2444
ai Read-only permissions to every user and the guid is set (with a capital S in the permission li
ilet
hitpstldevoonnected.cominu-fle-permissions-complete-guide! 19252yioz021 Linux Fle Permissions Complate Guide - devconrected
READ ALSO bit
permissions on a folder, he will be able to add files to it, bt
2 same Linux box. Those two users may be using the same
You may want to store your files in the tmp directory, but
Ifiles,
) be able to add files to a directory, as well as modify their
es (even if they own the permissions to add files themselve
tplaining the Sticky bit
- rw-rw-rw-t
Shared directory
User can't remove a file owner by User 2 User can add files to the directory
User 1 User 2
Using the decimal notation, you just have to stick a “1” to the beginning of the usual form,
With the symbolic notation, the sticky bit is represented with the letter t.
$ chmod +t directory (adds the sticky bit to the directory1)
$ chmod -t directory1 (removes the sticky bit from the directory1)
On the permission line, the sticky bit will be represented with a lowercase t (or an uppercase T if you don't hav
permissions for the “others” category) at the end of it.
jlevconnected@debian-10:~$ ls -1 test
-rwt 1 devconnected devconnected @ Aug 5 18:06 test
Again, here is a table with some sticky bit examples.
hitpstidevoonnected.cominufle-permissions-complete-guide! 201252yioz021 Linux Fle Permissions Complate Guide - devconrected
le filet
the filet
ong with the sticky bit for the file?
id and sticky bit set (as well as read, write and execute)
a . Jea of how Linux permissions work, how to manage them,
to set them correctly
Linux permissions are a very crucial subject, as system administrators have the responsibility to set them corre
ensure that malicious intents do not mess with file integrity,
For those who prefer a video format, here's a very great video on the subject by Chris Titus Tech,
Ifyou are looking for more Linux related tutorials, do not hesitate to check what we wrote recently
= Syslog : The Complete System Administrator Guide
= The definitive guide to centralized logging with Syslog on Linux
= Monitoring Linux logs using Rsyslog and Kibana
Linux File permissions and Ownership Explained
hitpssidevoonnected.cominux-fe-permissions-complete-guide! 210252yroz021 Linux Fle Permissions Complete Guide — deveonnected
ON SYSTEM ADMINISTRATION
nts 09 fvo
previous post
How To Install Git On Debian 1@ Buster How To Setup Telegraf InfluxDB and
‘
YOU MAY ALSO LIKE
How To Encrypt Partition on How To Flush DNS Cache on How To Find Last Log
Linux Linux Linux
6 COMMENTS
HOW TO SETUP TELEGRAF INFLUXDB AND GRAFANA ON LINUX ~ DEVCONNECTED
L..J reserved Trending How To Setup Telegraf InfluxDB and Grafana on... Linux File Permissions Co
Guide Syslog : The Complete System Administrator Guide The Definitive Guide to Centralized Logg
hitpsiidevconnected.comiinux-le-permissions-complete-cuidel 22752yioz021 Linux Fle Permissions Complate Guide - devconrected
students in my classroom. A great follow-up would be an
INKS ON LINUX — DEVCONNECTED
DB 1.7... How To Setup Telegraf influxDB and Grafana on
The Complete System Administrator Guide Monitoring Li
[AN 18 BUSTER - DEVCONNECTED
[YoU ean See) file permissions On this file are restricted, which means that you are going to neec
rights to modify this [..]
30 LINUX PERMISSIONS EXERCISES FOR SYSADMINS — DEVCONNECTED
[...1 This is the set of exercises following the article on Linux Permissions. [..]
FIND FILES AND DIRECTORIES ON LINUX EASILY - DEVCONNECTED
[..]As a reminder, here is how file permissions work on Linux. [..]
LEAVE A COMMENT
Your Comment
Name* Emall* Website
Save my name, email, and website in this browser for the next time | comment.
‘SUBMIT
hitpstldevoonnected.cominu-fle-permissions-complete-guide! 231252yioz021 Linux Fle Permissions Complate Guide - devconrected
READ ALSO
report this ad
dur comment data is processed.
yv TWITTER
About Privacy Policy
Copyright © 2021 - devconnected, All rights reserv
Any material cannot be used without our explicit consent (for online:
hitpstldevoonnected.cominu-fle-permissions-complete-guide! 241252yioz021 Linux Fle Permissions Complete Guide — deveonnected
hitpsiidevconnected.comiinux-le-permissions-complete-cuidel 25125